OEP 찾는 방법들

Code 2012. 8. 19. 21:18

OEP 찾는 방법들
    - 코드 섹션으로 들어가는 방법들


* 기본 방법
SHIFT+F9 , Run to Exception , ESTO
를 프로그램 실행될때까지 반복해서, 개수를 알아낸뒤
Restart해서 실행 바로 전까지만 다시 반복


* OllyScript


   - esto를 위의 개수만큼 쓴다.


   - 카운터를 쓴다.
var count
mov count,0
loop:
esto
inc count
cmp count, 16
jne loop


    - esp 이용
    //===================================================================
// Exception 이 끝나는 곳까지 간다.
var k
var l
// 400000 으로 가게 된다
//BreakPoint나 Exception 이 생기면 lab1으로 점프, 루프를 돌게 됨
eoe lab1    //Exception이 생기면 lab1으로 점프
run

lab1:
mov k,esp
add k,1C  //1c ?
mov l,[k]
//log l
cmp l,400000
je lab2
esto

lab2:
eoe        //eoe 풀기
msg "exception end"

//exception 풀기
//SHIFT+F9를 하고, 다음으로 진행하기 위해, 다음행에 bp를 걸고, 다시 SHIFT+F9
mov x,eip
add x,2
bp x
esto        //SHIFT+F9
bc eip        //Breakpoint Clear

//====================================================================


* Memory Map 에 BreakPoint
    OllyDbg의 Memory Map 창을 연다
    주소가 400000근처에 있는 code에
        - 우클릭 set memory breakpoint on access




반응형

'Code' 카테고리의 다른 글

Window, Process, Module, Thread 정보  (1) 2012.08.19
Time  (0) 2012.08.19
UNICODE in Console  (0) 2012.08.19
RTTI  (0) 2012.08.19
pragma 정리  (0) 2012.08.19
Posted by codens