본문 바로가기
hacking/reversing

codeengn : crackme 1

by 스퀴시 2020. 2. 4.
728x90
SMALL

예제 1번 풀이. 예제 1번은 정말 간단하지만 어려운 문제

 

 


GetDriveType의 리턴 값이 EAX에 저장되고 EAX-2 , ESI +3 후 둘이 비교해서 같으면 오류 문을 건너뛰는 루틴임을 알 수 있다. (EAX : 1, ESI : 3)
정말 간단한 풀이로는 그냥 00401026 번지의 내용을 JE -> JMP로 수정 후 크랙파일로 저장하면 된다. 혹은 책에 나왔듯이 Zero flag를 1로 수정해주면 된다. 
어려운 풀이 - GetDriveType 함수를 구글링 해보면


리턴 값이 3 이면 하드디스크, 리턴값이 5이면 CD-ROM이다. 그리고 위에 루틴을 비교했을 시 EAX - 2 , ESI + 3 --> 5 - 2  == 0 + 3 이므로 따라서 GetDriveType의 리턴 값을 5로 수정해주면 된다. 그래서 위에 방식은 너무 간단하여 시도해 보았으나 쉽지 않았다…. 다음번에 도전하겠다. ㅠㅠ 

LIST

'hacking > reversing' 카테고리의 다른 글

reversing.kr : Replace  (0) 2020.02.19
reversing.kr : musicPlayer  (0) 2020.02.06
reversing.kr : Easy UnpackMe  (0) 2020.02.05