반응형

Reversing.kr Easy Crack 풀이


Easy_CrackMe.exe 라는 파일이 하나 주어진다.

실행해 보면 창이 하나 뜬다.






Exeinfo로 까보았다.



별거 없다. 올리디버거로 까보면 될 것 같다.

올리디버거를 실행하자.








우클릭 > search for > all reference strings 에 들어가보았다.



여러개의 문자열들이 보인다. 이중에서 성공메세지로 추정되는 문자열을 더블클릭해주어 문자열이 사용되는 위치로 이동했다.





성공메세지를 출력하는 부분으로 보인다. 더 위로 올라가보았다.




'5y', 'R3versing' 이 문자열들과 입력값을 비교하는 것으로 추정된다.

해당 부분과 위에있는 분기점에서 바로 위에 비교구문에 breakpoint (F2)를 걸어주었다.


그리고 실행하여 1234를 넣어보았다.




첫번째 bp다. a와 [LOCAL.24+1]의 값을 비교하는데, [LOCAL.24+1]의 값은 2이다.

그렇다면 [LOCAL.24]에 우리가 입력해준 값이 들어갔을 것이다.


1234에서 2자리에 a를 넣고 길이를 늘려 1a234567890으로 다시 시도해보았다.





a와 우리가 입력한 a를 비교하면서 해당 분기를 통과한다.



그 다음분기는 조건에 맞지 않아 통과하지 못했다.





이번 분기는 '5y'와 비교한다.

a 다음자리에 5y를 넣은 1a5y2345678을 넣어 해당 분기를 통과했다.






그 다음분기는 R과 우리가 입력한 값중 하나인 2를 비교한다.

그렇다면 다음은 R3versing이 오면 된다는 것이다.


1a5yR3versing을 입력해주었다.





4010DA부터 4010FC의 동작을 잘 살펴보면 이렇다:

R3versing과 우리가 입력했던 문자열중 5번째 자리부터의 문자열을 각각 EAX와 ESI에 저장하고

EAX와 ESI에서 각각 한바이트씩 가져와 DL과 BL에 저장하고 DL과 BL을 비교한다.

비교했을 때 값이 같지 않다면 실패부분으로 이동한다.



잘 입력했다면 해당 분기는 통과한다. 그러나 출력되는 메세지는 실패였다.

원인을 알아보기 위해 실패부분으로 이동하는 부분을 찾아 보았다.




실패 부분으로 이동하기 전에 비교를 한번 더 했다.

E와 1을 비교한다. 여기서 1은 우리가 입력했던 값이므로 1을 E로 바꾸어 시도해주었다.






 성공했다



반응형

'WAR GAME > Reversing.kr' 카테고리의 다른 글

Reversing.kr [Music Player] 풀이  (0) 2018.11.03
Reversing.kr [Easy Unpack] 풀이  (0) 2018.09.19
Reversing.kr [Easy Keygen] 풀이  (0) 2018.06.19

+ Recent posts