ollydbg 유동(?)을 포함한 바이너리 패턴

by 미래도 posted May 28, 2016
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄

사실 알분은 이미 알겠지만..

모르는 분도 있을듯해서 정리합니다.

(사실 앞으로는 필요없을수도...? ㅁㄴㅇㄹ..)

 

뻘짓을 해서 그런지 그러다 찾은건데요.

사소한 팁입니다.. (팁게시판에 올릴려했더니, 안 써져서..)

 

본론

ITH소스를 보면 "XX" 요런게 있습니다.

ex)

  const uint8_t bytes[] = {
    0xe8, XX4,              // 004b00dc   e8 7f191300      call .005e1a60 ; jichi: hook after here
    0xbe, XX4,              // 004b00e1   be d0e87b00      mov esi,.007be8d0
    0x8b,0xc8,              // 004b00e6   8bc8             mov ecx,eax
    0x2b,0xf0               // 004b00e8   2bf0             sub esi,eax
  };

 

간단히는 유동패턴(이라해야되나?),

XX에 어떤게 들어가도 상관없이 찾는 방식입니다.
e8 00 00 00 00 be ee ee ee ee 8b c8 2b f0 이든

~~e8 ee ee ee ee be 00 00 00 00 8b c8 2b f0 이든

찾아지는거죠.

 

보통 아랄 파인딩 가이드를 보면

12 34 55 aa bb cc 요렇게 찾으라고 하는데요.

 

앞으로 파인딩 가이드에 위 방식을 파인딩 가이드에 추가하면 좋을거 같습니다.

 

방법

그래서 어떻게 쓰냐?

 

ollydbg에서는

바이너리 검색(ctrl+b)에서

유동부분을 "?"로 검색하면 됩니다.

위에서 예시를 들었던 것의 경우에는,

 

e8 ?? ?? ?? ?? be ?? ?? ?? ?? 8b c8 2b f0  

요렇게 입력해서 검색하면 됩니다.

 

 

====

유용성?

 

실제로, VNR에서 CS2다루는 방식에서 이렇게 사용하는건 좋은거 같고요.

위의 예시라던가. 생각해보시면 아시겠지만..

유동부분은 대체로 주소를 포함하는 명령어의 경우가 대부분이니. 이런식으로 활용하면 패턴에는 크게 관계없죠.

 

아무튼 사소한 잡담입니다.(근데 기분이.. 이미 아시는 분이 대부분인거 같다.)


Articles

2 3 4 5 6 7 8 9 10