crackme 15 를 올리디버거로 열어본 뒤
all reperenced text string 을 보면
solved 라는 문장과
File Monitor 라는 눈에띄는 문장이 보인다.
FileMonitor 를 실행시키면 다음과 같은 창을 볼 수 있는대
project1.exe를 입력하면 문제에 관한 이벤트만 볼 수 있다.
C:\Document and Settings\Adminstrator\바탕화면\keyfile\kernel32.dll 파일을 찾고있는대
아무 텍스트파일을 이름을 바꿔서 같은 위치에 넣어두면 다음과 같은 결과를 얻을 수 있다.
이재 디버거로 가서 solved 스트링의 위치로 가보자.
EDX에 solve 를 넣고 call 하는것을 볼 수 있다.
그럼 이 넣는 부분을 실행하기 위해서는 이 함수부분에 진입해야 한다.
함수 제일 위를 보면, JMP 구문이 작동해 이 넣는부분을 넘어가는 것을 볼 수 있다.
00442514 JMP Project1.004425A7
부분을 NOP 로 해준다.
아니면 solved 문자열이 mov 되는 곳으로 바로 이동시켜도 문제가 해결되는것을 볼 수 있다.
00442574 JE SHORT Project1.004425C7
부분도 NOP로 해주면 문제가 풀린다.
어셈코드를 바로 수정할 수 도 있지만
hex dump 부분의 바이너리 수정 기능으로 변경할 수도 있다.
하단의 빨간 박스부분을
90 90 90 90 90 이나
EB 7A 90 90 90 으로 수정하려면
Binary > Edit 을 선택해 입력해주면 된다.
그럼 위의 어셈코드도 수정되는것을 확인할 수 있다.
'Study > Reversing' 카테고리의 다른 글
crackme2 (0) | 2015.05.25 |
---|---|
nag 제거, PE 헤더 (0) | 2015.05.21 |
키젠문제 풀이 (0) | 2015.05.18 |
Unpack, Back To User mode (0) | 2015.05.18 |
어셈블리 명령어 (0) | 2015.05.15 |
댓글