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 |