본문 바로가기
Study/Reversing

KeyFile 체크 문제 풀이, 바이너리 수정

by Melpin 2015. 5. 19.

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

댓글