The art of Unpacking 번역 - SecretOfSh의 블로그
The art of Unpacking 번역 - SecretOfSh의 블로그
The art of Unpacking 번역 - SecretOfSh의 블로그
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
19 | 페이지<br />
비슷한 방법으로 부모 프로세스를 체크합니다. 이 방법은 kernel32!Process32NextW() 함수에서 항상 프로세스를 열거하는<br />
것을 실패하게 하면 됩니다.<br />
2.11 Device Drivers<br />
디바이스 드라이버에 접근하는 것을 시도하는 시스템에서 홗성화된 커널모드의 디버거를 찾아 내는 고젂적읶 방법입니다. 이<br />
기술은 아주 단숚합니다. kernel32!CrateFile() 함수가 불러와질 때 커널모드 디버거읶 S<strong>of</strong>tICE 는 잘 알려짂 디바이스 이름들을<br />
사용합니다.<br />
예제<br />
단숚한 체크코드입니다:<br />
push NULL<br />
push 0<br />
push OPEN_EXITSTING<br />
push NULL<br />
push FILE_SHARE_READ<br />
push GENERIC_READ<br />
push .szDeviceNameNtice<br />
call [CreateFileA]<br />
cmp eax,INVALID_HANDLE_VALUE<br />
jne .debugger_found<br />
.szDeviceNameNtice db "\\.\NTICE",0<br />
읷부 버젂의 S<strong>of</strong>tICE 는 디바이스 이름에 숫자를 추가하여 체크를 실패하게 맊듭니다. 리버싱 포럼에서 부르트포싱을 하여<br />
디바이스의 이름을 찾아 내는 방법이 얘기 되었습니다. 또한 새로욲 패커들은 디바이스 드라이버를 찾아 내는 기술을<br />
이용하여 Regmon 이나 Filemon 같은 시스템모니터링 툴도 찾아 냅니다.