[CodeEngn] BASIC RCE L12
Reversing/Reversing (Wargame)

[CodeEngn] BASIC RCE L12

파일 확인

실행

사용자로부터 KEY를 입력받고 정답 KEY와 비교하는 프로그램이다.

파일 분석

문자열들 중 "Congratulation,~"을 찾아 해당 문자열을 참조하는 위치로 이동한다.

해당 코드 주변을 살펴보면

사용자가 입력한 값을 원본 key값과 비교하고 비교 후 "Congratulation"으로 넘어가는 cmp문이 있을텐데 cmp esi, 0보다는 cmp eax, 7A2896BF가 더 key값 비교하는 명령같다.

16을 입력해봤다.

eax 레지스터에 입력한 값 16 (=0x10)이 저장된 것을 알 수 있다.

그렇다면, 0x7A2896BF (=2049480383)을 입력해보면

Congratulation 창이 뜬다!

>> Key: 2049480383

HxD

이 영역이 Congratulation 메시지가 저장된 위치이므로, 이 위치에 Key값을 입력하면 될 것이다.

>> 0x0D3B ~ 0x0D45

→ 문자열은 항상 그 끝을 NULL 로 처리하면서 끝을 알리기 때문에 Null 1byte까지 포함해줘야한다!

 

 

 

SMALL

'Reversing > Reversing (Wargame)' 카테고리의 다른 글

[CodeEngn] BASIC RCE L14  (0) 2021.06.01
[CodeEngn] BASIC RCE L13  (0) 2021.06.01
[CodeEngn] BASIC RCE L11  (0) 2021.05.28
[HackCTF] strncmp  (0) 2021.05.28
[CodeEngn] BASIC RCE L08  (0) 2021.05.11