단디연구소

[쉘코드] kernel32.dll base address 찾기 본문

연구 자료/악성코드 분석

[쉘코드] kernel32.dll base address 찾기

단디연구소 2016. 4. 29. 15:06

시스템이 재시작 되거나 시스템이 다를경우 DLL이 메모리에 로드되는 위치가 변한다. 

이러한 상황과 상관없이 API를 사용하기 위해서 커널 구조체를 이용해서 dll의 base 주소를 찾을수 있다


mov eax, fs:[eax+0x30]   // PEB

mov eax, [eax+0xc]   // PEB_LDR_DATA

mov eax, [eax+0x14]  // .exe InMemoryOrderModuleList

mov ebx, [eax]       // ntdll.dll InMemoryOrderLinks

mov ebx, [ebx]       // kernel32.dll InMemoryOrderLinks 

mov ebx, [ebx+0x10] // ebx = kernel32.dll base address


'연구 자료 > 악성코드 분석' 카테고리의 다른 글

범용 레지스터 구조  (0) 2016.05.02
[파밍] PAC를 이용한 악성코드  (0) 2016.04.14
커널 디버깅 간단하게 세팅하기!!  (0) 2016.02.04
스위치문과 봇!  (0) 2016.02.04
VMware Anti VM 우회 기법  (1) 2016.02.02
Comments