본문 바로가기

Reversing/CodeEngn

[CodeEngn] Basic RCE L12풀이

https://ch.codeengn.com/

 

CodeEngn.com [코드엔진]

코드엔진은 국내 리버스엔지니어링 정보공유를 위해 2007년 부터 리버스엔지니어링 컨퍼런스 및 세미나, 워크숍을 현업 실무자들과 함께 운영하고 있는 비영리 커뮤니티입니다.

ch.codeengn.com


문제

문제가 엄청 긴데, KEY값이랑 KEY 값이 출력되려면 HexEdit에서 어디에 KEY값을 넣어야 하는지 구하라고 한다.

일단 파일을 실행시켜서 아무 값이나 입력했는데 check를 눌러도 반응이 없다.

Exeinfo로 확인해주었다.

실행화면(우), exeinfo(좌)

패킹도 되어있지 않고 깔끔하다.

 

X32 디버거로 열어서 문자열 찾기를 진행하였다.

문자열찾기

Congratulation이라는 성공 flag가 있길래 해당 부분으로 이동하였다.

뭔가 매우 복잡해 보이는데 모듈 분석도 안된다,,

그러길래 그냥 내 마음대로 두 군데다 BP를 걸고 실행을 시켰더니 40106B와 401082에서 자꾸 길이 샌다.

그래서 실행을 하는 중간에 두 곳 모두 JE로 수정하였다.

jcc 수정

수정을 하고 내려가다 보니 40107D에서 EAX와 7A2896BF를 비교하고 있길래 해당 숫자를 계산기로 확인해서 KEY값에 입력해보았다.

오,, KEY 값은 찾았다.

 

KEY : 2049480383

 

이제 CONGRATULATION대신 KEY값이 출력되기 위해서 HexEdit에서 어떤 영역에 key값을 overwrite 하면 되는지 찾으면 된다.

나는 HXD를 사용해주었다.

 

HXD로 열어서 내려가다 보니 성공 FLAG가 담겨있는 부분이 있다.

0X0D3B부터 0X0D62까지 값이 담겨있다. (문자열은 마지막에 NULL이 채워져 있음)

원본 HxD

따라서 해당 부분을 지우고 내가 원하는 KEY값으로 채워주면 0X0D3B부터 0X0D45(마지막은 NULL)까지 값이 담기게 된다.

수정 HxD

KEY : 2049480383

주소 영역 : 0D3B0D45

 

 

{FALG} : 20494803830D3B0D45

'Reversing > CodeEngn' 카테고리의 다른 글

[CodeEngn] Basic RCE L15풀이  (0) 2021.09.13
[CodeEngn] Basic RCE L14풀이  (0) 2021.09.13
[CodeEngn] Basic RCE L11풀이  (0) 2021.08.18
[CodeEngn] Basic RCE L10풀이  (0) 2021.08.18
[CodeEngn] Basic RCE L09풀이  (0) 2021.08.18