문제

다짜고짜 password를 묻는다

 

 

실행화면

처음에 그냥 실행해봤고

예상대로 Sorry~ 문자열이 나왔다.

 

 

실행파일에 쓰인 텍스트 확인

실행하자마자 텍스트를 확인해봤다

[마우스 오른쪽]-[Search For]-[All referenced text strings]를 통해 확인이 가능하다

 

DonaldDuck이라는 문자열이 눈에 띄어서 Username이라고 짐작했다

 

DonaldDuck이 있던 곳의 맨 처음으로 가서 BP를 건 후 한줄씩 실행

BP를 건 후 [F9]키로 실행해주었다

Username과 Password를 입력하라고 하여서 

Username에 DonaldDuck, Password 자리에 1234를 적어주었다

 

그러고 나니 003E1008 위치에 DonaldDuck이 뜨는 것을 확인할 수 있었다

 

 

CMP 구문 확인

우리가 만난 첫 번째 분기문에선

우리가 입력한 Username의 첫 번째 자리와 0x00(NULL값)을 비교한다는 것을 알 수 있다

우리는 Username에 값을 입력했기 때문에 

JNE 명령어로 인해 003E1030 주소로 바로 이동하게 된다

 

두 번째 CMP

다음으로 만난 CMP 문이다

CMP EAX, DWORD PTR DS:[ECX] 부분에서 우리가 입력한 password값과 ecx값을 비교하고 있다

 

ECX 값 확인

HEX 창에서 ECX 주소로 가보니 0088228F라는 값이 적혀있다

이는 16진수이므로

10진수로 바꿔주면 8,921,743이 된다

password가 8921743일 것이라고 예상할 수 있다

 

 

Username과 DonaldDuck을 비교하는 구문

앞에서 예상은 했지만 입력한 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

+ Recent posts