-
abex' crackme1 풀이Reversing/abexcm 2019. 3. 26. 22:48
뭔가 굉장히 기분 더럽다.
해커스쿨 putty를 키고 레벨을 풀려는데 이미 한 3주째 안 켜진다.
아무것도 건드리지 않았고 뭔가 갑자기 이런 상황이 되서 곤란하지만, 일단 당분간 해커스쿨 풀이는 못 올리겠다는 생각이 들었다(vmware로 실습환경 구축? 조만간 해봐야지, 근데 잘 될지는 모르겠다).
해서 다시 나뭇잎책을 폈다.
리버싱해야지
이 크랙미는 이미 풀어본거지만 일단 풀이를 올려본다.
크랙미를 실행하면 창이 뜬다.
내 HD가 CD-Rom으로 인식되게 하라는데, 일단 지켜보자.
이건 에러창이다. 아마 성공했을 때 뜨는 창이 또 있을 것이다.
여기부터 본 프로그램의 시작이다.
예상대로 에러창 밑에 성공했을 때 뜨는 창이 있다.
-그러면 이제 저 성공창을 어떻게 띄워야 할지 고민해보자.
그래, 고민은 좀 이따 하고 실행하면서 프로그램의 진행 과정을 살펴보자.
일단 끝까지 다 실행해봤다.
음.. 뭐랄까 잡히는 게 없네
개인적으로 이 부분에서 뭔가 잡힐게 있을거 같다
일단 해석하지면
ESI에 1을 더하고 EAX에서 1을 뺀다.
JMP SHORT 00401021은 왜 있는지 사실 모르겠다.
그러고 ESI에 2를 더한 뒤, EAX에서 1을 다시 뺀다.
마지막으로 EAX값과 ESI 값을 비교하고(CMP : CoMPare 로 생각하자)
두 값이 같으면 바로 성공창이 뜨는 부분인 0040103D 로 점프하는 것 같다
(JE : Jump Equal, 두 값이 같을 경우 어디어디로 점프하는 명령)
그렇다면 EAX 값과 ESI 값을 같게 만들면 되는데,
그것보다 쉬운 방법이 있다. 야매지만.
JE 구문을 깔끔히 무시하고 바로 성공창이 뜨는 40103D로 점프하면 된다.
고로, JMP SHORT 0040103D 를 입력해주면 바로 성공창이 뜨게 된다.
그렇게 수정한 프로그램을 파일로 만든 뒤 실행시키면(crackme1 patched)
우리가 원하던 그 깔끔한 화면이 나온다.
두번째 풀이법으로 EAX값과 ESI값을 일치화시키는 걸 남기고 싶었는데
왜인지 ESI값이 401001이라서 EAX값에 401000을 더하지 않으면 안 된다
아니면 ESI값에서 401000을 빼든지..
그러면 되는구나.. 왜 멍청하게 시도도 안했지..
근데 방금 실행한 바로는 SUB ESI, 401000을 해버리면 뒤 JE 구문이 사라져서 실패했다.
고로 일단 저 JMP 하는 방법으로 만족하자 ^..
아 뭔가 허술한 풀이였다
다음 풀이는 좀 제대로 써봐야겠다
'Reversing > abexcm' 카테고리의 다른 글
abexcm1 풀이 - IDA (0) 2019.05.26 abex' crackme5 풀이 (0) 2019.03.29 abex' crackme 4 풀이 (0) 2019.03.29 abex' crackme 3 풀이 (0) 2019.03.29 abex' crackme 2 풀이 (0) 2019.03.29