System/Reversing

DLL 바이너리 수정으로 BreakPoint 걸기

pyozzi 2019. 10. 7. 19:23

프로그램을 분석하다보면, 안티디버깅의 탐지로 인해

일반적인 디버거(x64dbg, windbg...)의 동적분석이 불가능한 경우가 있다.

디버거로 탐지를 우회하는 방법도 있지만, CheatEngine은 탐지 안하는 경우가 많기 때문에

해당 툴로 동적분석을 진행할 수 있다.


CheatEngine자체의 BP기능을 사용할 수도 있지만, 이것 또한 사용하지 못하는 경우에는

아래와 같은 방법으로 BP를 걸 수 있다.


[ DLL 바이너리 수정 ]

DLL의 2Byte opcode를 "EB FE"로 수정하면 해당 부분에서 BP가 걸린듯한 효과를 볼 수 있다.

또한, "int3"(CC) Interrupt를 탐지하는 안티 디버깅도 우회할 수 있다.


"EB FE"는 자기 자신으로 JMP하는 opcode로서, CheatEngine으로 수정한 opcode위치로 이동해보면

무한 루프로 JMP하고 있는 것을 확인할 수 있다.