1. 2010. 2. 26. 09:38 Processor Code/Reversing
00401000      66:C705 xxxxxxxx>MOV     WORD PTR DS:[xxxxxxxx], 1 < Break
00401007      90            NOP
00401008      90            NOP

00401001      C705 xxxxxxxx>MOV     DWORD PTR DS:[xxxxxxxx], 90900001 < Break
브레이크 포인트를 걸어두었다면,
다음처리는 00401007 일거라 예상 했지만, 그렇지 않죠.
00401001 에서 멈춰버립니다.

디버그를 감지하지 못하도록 후킹 된경우 이런방식으로
디버깅을 못하게 깨부셔 버리는 센스로군요;;

브레이크 포인트가 없다면 정상적으로 NOP 으로 가는것을 알수 있습니다.
패커들은 이런 코드를 곳곳에 두어서 브레이크 포인트를 잘못 걸면 실행이 안되도록 해두었겠네요.
이 방법 이외에도 많은 코드가 존재 합니다.
Posted by Nightly Luna
,
® © Tanny Tales
/ rss