F9로 EntryPoint 찾기
EntryPoint에서 우클릭 > 다음을 찾기 > 문자열 참조
GetDlgItmText 함수 호출 이후 breakpoint를 잡고 텍스트박스에 R3versingE 입력하면 해당 중단점에서 실행이 멈춘다.
cmp로 a와 esp+5가 같아야 넘어갈 수 있다.
ESP+5이므로 ESP가 가지는 주소를 보면, 입력한 값을 가리키는 것을 알 수 있다.
esp + 5 = 0x0019f7f0 + 5 = 0x0019f7f5 즉, 입력한 값 기준 3이 있는 부분에 해당한다.
따라서 해당 값을 a로 바꿔줘야 넘어갈 수 있다. (password = ?a??)
x32dbg에는 문자열 부분이 안 나타나서 IDA로 확인했을 때 5y랑 2바이트만큼 비교하고 있었다.
따라서 password = ?a5y??
5y 다음 문자들과 R3versing 문자 하나하나를 반복문으로 비교한다.
따라서 password = ?a5yR3versing
마지막으로 입력한 문자열의 첫 문자와 E를 비교한다.
password = Ea5yR3versing
[CodeEngn] Basic RCE L14 (0) | 2021.06.01 |
---|---|
[CodeEngn] Basic RCE L13 (0) | 2021.06.01 |
CodeEngn Basic RCE L12 (0) | 2021.05.23 |
CodeEngn Basic RCE L11 (0) | 2021.05.23 |
CodeEngn Basic RCE L09 (0) | 2021.05.23 |