본문 바로가기

High Level Technique/Reversing

Obfuscation (난독화)

Obfuscation (난독화)





위 소스코드를 보면 IsDebuggerPresent()를 이용해서 현재 프로그램이 디버깅 중인지 아닌지 판단을 할 수 있습니다.


IDA를 이용해 해당 부분을 살펴보도록 하겠습니다.




위 사진을 보면 CALL IsDebuggerPresent가 나타납니다. 그리고 디버깅 중이라면 "디버깅 중"이 출력되고 디버깅 중이 아니라면 "정상 실행 중"이 출력이 됩니다.



여기서 IDA를 이용해서 정적분석을 진행하면  IsDebuggerPresent()가 있다는 것을 알게되므로 이 부분을 나타나지 않도록 해야합니다.





해당 부분이 IsDebuggerPresent() 부분입니다.


해당 부분에서 EB를 넣어 코드를 수정해주면 정적분석시에 IsDebuggerPresent()인지 알 수 없게되어 분석할때 혼동을 줄 수 있습니다.



그런데.. 직접 수정을 해보는데 왜 안되는것일까...

'High Level Technique > Reversing' 카테고리의 다른 글

Native API  (0) 2016.08.24
C++ 분석  (0) 2016.08.13
Debug Blocker  (0) 2016.08.10
PE Image Switching  (2) 2016.08.10
Self Creation Debugging  (0) 2016.08.09