[Reversing] Malwarebytes CrackMe: a step-by-step tutorial 악성코드 분석 훈련용 샘플로 MalwareByte에서 제작하였다.Malwarebytes Crackme로 분석 연습용이며, CrackMe에서 다양한 기술을 보여주므로 좋은 경험이 되었다. > https://blog.malwarebytes.com/tag/malwarebytes-crackme/> https://jeongzzang.com/99 - 샘플 파일 다운로드> 훈련용 파일
[Reversing] PEB Structure 참고> https://5kyc1ad.tistory.com/328> https://sanseolab.tistory.com/47 kd> dt _PEBnt!_PEB +0x000 InheritedAddressSpace : UChar +0x001 ReadImageFileExecOptions : UChar +0x002 BeingDebugged : UChar +0x003 SpareBool : UChar +0x004 Mutant : Ptr32 Void +0x008 ImageBaseAddress : Ptr32 Void +0x00c Ldr : Ptr32 _PEB_LDR_DATA - 링크 +0x010 ProcessParameters : Ptr32 _RTL_USER_PROCESS..
[Reversing] RaiseException dwExceptionCode_SEH 0x00000000 STATUS_SUCCESS 0x00000001 STATUS_WAIT_1 0x00000002 STATUS_WAIT_2 0x00000003 STATUS_WAIT_3 0x0000003F STATUS_WAIT_63 0x00000080 STATUS_ABANDONED 0x000000BF STATUS_ABANDONED_WAIT_63 0x000000C0 STATUS_USER_APC 0x000000FF STATUS_ALREADY_COMPLETE 0x00000100 STATUS_KERNEL_APC 0x00000101 STATUS_ALERTED 0x00000102 STATUS_TIMEOUT 0x00000103 STATUS..
[Reversing] Process Hollowing 기법 프로레스 할로잉 기법은 자식 프로세스를 이용하여 프로세스 자체를 인젝션하는 것으로 간략하게 말하자면 절차는 자식 프로레스를 서스펜드 상태로 만든 뒤 기존 악성 프로세스의 정보를 얻어 자식 프로세스의 각 위치에 매핑을 한다. 이후 메모리를 할당과 악성 데이터를 삽입한 후 서스펜드 상태를 풀어주게 되면 악성 행위를 하게된다.. source code> https://github.com/theevilbit/injection/tree/master/ProcessHollowing 프로세스 생성(SUSPENDED) BOOL CreateProcessA( LPCSTR lpApplicationName, LPSTR lpCommandLine, LPSECURITY_ATT..
[Reversing] Packer, Crypter, and Protector 참조> https://blog.malwarebytes.com/threat-analysis/2015/12/malware-crypters-the-deceptive-first-layer/ Packing패킹은 포장한다는 의미로 두가지 종류로 분류할 수 있다.첫번째로는 파일 사이즈를 줄이는 목적으로 컴프레서가 있으며 대표적으로 UPX 패커가 있다 실행 압축이라고도 불린다. 두번째는 파일을 보호하는데 목적으로 프로텍터가 있다. 사이즈는 늘어나지만 안티리버싱이나 난독화를 통해 분석이 어렵도록 한다. Compressor 일반적으로 'runtime packers" 약자이다. 해당 기술은 실행 가능한 압축으로 이런 종류의 압축은 파일을 더 작게 ..
[Reversing] Inline Code Patch [Reversing] Inline Code Patch ② 원하는 코드를 직접 수정하기 어려운 경우 코드 케이브라고 하는 패치 코드를 삽입한 후 실행해 프로그램을 패치시키는 기법을 인라인 코드(Inline Code Patch)라고 합니다.또 하나의 개념은 코드 게이브(Code Cave) 입니다. 흐름을 변경하여 삽입된 코드 영역을 거쳐서 수행되도록 하는 기법을 말합니다. 위 파일을 통해 실습을 할 것입니다.[프로그램 실행시 팝업창] - 살펴보니, 텍스트 박스에 unpack me와 같은 문자가 보입니다.- x64 dbg를 통해 살펴보겠습니다. 1. x64 dbg & 흐름분석- EntryPoint로 이동을 하겠습니다.401000 PUSHAD- PUSHAD를..
[Reversing] Printf()함수 스택프레임(Stack Frame) [Reversing] 스택프레임(Stack Frame)이전 게시물의 예제 중 printf("%d\n", x); 부분에 대해 간략하게 설명을 하겠습니다. printf() 함수 호출4010BB PUSH PROJECT1.41C798- 해당 41C798 주소에는 "%d\n" 문자가 있는걸 알수있습니다.[printf() 함수 호출 전 PUSH 부분] - printf() 함수의 스택 프레임을 생성합니다. 다음을 보시게 되면 순서데로 작성해보겠습니다. PUSH EBP- 스택에 현재의 EBP를 저장합니다. MOV EBP, ESP- printf()의 ESP 값을 EBP에 옮겨주었습니다. PUSH ESI- 스택에 ESI를 저장합니다.- ESI는 데..
- Total
- Today