반응형 Security33 PEB구조체 LDR을 이용한 Kernel32.dll주소 찾기. 실제 악성코드을 분석하며 적용된 방법으로 PEB의 LDR값을 참조하여 Kernel32.dll의 ImageBase를 획득하는 과정을 정리할게요~!! ※LDR이란?- PEB구조체 내부의 구성 변수로 MSDN에서는 다음과 같이 설명합니다.A pointer to a PEB_LDR_DATA structure that contains information about the loaded modules for the process.즉, 프로세스에 로드된 모듈에 대한 정보를 담고있는 구조체(_LDR_TABLE_ENTRY)를 가리키는 포인터이다. ※악성코드에서 Kernel32.dll의 ImageBase를 가져오는 방법.- 다음은 악성코드에서 사용되는 코드입니다. -코드설명 : 라인바이라인으로... ① MOV EAX,DWO.. 2017. 12. 7. ※CONTEXT 정리 CONTEXT는 말그대로 문맥인데 특정 Thread의 레지스터 정보를 담고 있다.처음에 접근하게 된 계기는 인젝션기법중 Process hollowing라는 기법이 있는데 Context구조체를 사용하기 때문에 정리를 위해 글을 작성했습니다. 아무튼! 해당 인젝션 기법은 다음의 API들을 사용합니다. ※Injection기법 사용API 1) NtUnmapViewOfSection 2) NtReadVirtualMemory 3) NtWriteVirtualMemory 4) NtGetContextThread 5) NtSetContextThread 6) NtResumeThread 위 API중 SetContext와 GetConxtThread의 형태는 다음과 같다.BOOL WINAPI GetThreadContext( _In.. 2017. 12. 6. ※SEH(Structed Exception Handler)란? . ※SEH(Structed Exception Handler)란? Windows에서 제공하는 예외처리 시스템. ※예외처리방법 프로그램 실행중 예외가 발생할 경우 발생한 예외처리는 해당 프로세스에게 맡기며 별도의 SEH가 존재하지 않으면 Windows에서 처리합니다. 그러나 디버깅중에는 Windows는 예외처리를 디버거에게 맡긴다. 이를 이용하여 안티디버깅이 가능합니다. ※안티디버깅 코드 디버깅중에 예외처리를 디버거에서 맡는다는 특징을 이용하여 안티디버깅 코드를 작성해 보았습니다. 올리디버거로 디버깅결과, 예외처리를 디버거에서 처리하기때문에 프로세스의 예외처리루틴이 동작하지 않아 "정상 작동중!"이 출력과 debugflag가 TRUE로 변환되지 않는 것을 볼 수 있습니다. ※SEH Chain 예외처리 루틴.. 2017. 8. 23. ※PEB(Process Environment Block)란? 다시 복습!복습! ※PEB(Process Environment Block)?- 유저레벨에서 프로세스의 정보를 담는 구조체 ※PEB구조체 : Windows 7 typedef struct _PEB{ UCHAR InheritedAddressSpace; UCHAR ReadImageFileExecOptions; UCHAR BeingDebugged;// 디버깅중 인지를 체크 UCHAR BitField; ULONG ImageUsesLargePages: 1; ULONG IsProtectedProcess: 1; ULONG IsLegacyProcess: 1; ULONG IsImageDynamicallyRelocated: 1; ULONG SpareBits: 4; PVOID Mutant; PVOID ImageBaseAddre.. 2017. 8. 21. 이전 1 2 3 4 5 6 7 ··· 9 다음 반응형