다짜고짜 password를 묻는다
처음에 그냥 실행해봤고
예상대로 Sorry~ 문자열이 나왔다.
실행하자마자 텍스트를 확인해봤다
[마우스 오른쪽]-[Search For]-[All referenced text strings]를 통해 확인이 가능하다
DonaldDuck이라는 문자열이 눈에 띄어서 Username이라고 짐작했다
BP를 건 후 [F9]키로 실행해주었다
Username과 Password를 입력하라고 하여서
Username에 DonaldDuck, Password 자리에 1234를 적어주었다
그러고 나니 003E1008 위치에 DonaldDuck이 뜨는 것을 확인할 수 있었다
우리가 만난 첫 번째 분기문에선
우리가 입력한 Username의 첫 번째 자리와 0x00(NULL값)을 비교한다는 것을 알 수 있다
우리는 Username에 값을 입력했기 때문에
JNE 명령어로 인해 003E1030 주소로 바로 이동하게 된다
다음으로 만난 CMP 문이다
CMP EAX, DWORD PTR DS:[ECX] 부분에서 우리가 입력한 password값과 ecx값을 비교하고 있다
HEX 창에서 ECX 주소로 가보니 0088228F라는 값이 적혀있다
이는 16진수이므로
10진수로 바꿔주면 8,921,743이 된다
password가 8921743일 것이라고 예상할 수 있다
앞에서 예상은 했지만 입력한 Username과 'DonaldDuck' 문자열을 비교하는 구문이 있는 것을 확인할 수 있다.
따라서 Username이 DonaldDuck이라는 것이 확실해졌다
'Study > Reversing' 카테고리의 다른 글
CodeEngn Challenge : Basic RCE L11 (0) | 2021.05.06 |
---|---|
CodeEngn Challenge : Basic RCE L10 (0) | 2021.05.06 |
CodeEngn Challenge : Advance RCE L03 (0) | 2021.04.28 |
CodeEngn Challenge : Basic RCE L09 (0) | 2021.04.07 |
CodeEngn Challenge : Basic RCE L06 (0) | 2021.04.07 |