본문 바로가기

Reversing/CodeEngn

[CodeEngn] Advance RCE L06풀이

https://ch.codeengn.com/

 

CodeEngn.com [코드엔진]

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

ch.codeengn.com


그림 1

남은 군 생활이 며칠인지 찾고 MD5 해시로 변환하여 인증을 하면 될 것 같다.

일단 파일을 실행시켜보았다.

 

그림 2

지옥의 시작이었는데,,,

확인을 누르면 끝도 없이 값이 올라간다,,,, 결국 포기하고 창 닫기를 눌렀는데 숫자가 올라간다,,,ㅎ,,, 작업 관리자로 종료를 해야 사라진다,,,

끔찌ㄱ,,,

 

EXE INFO로 확인해보았다.

그림 3

AUTOIT으로 작성된 파일이고 UPX 패킹이 되어있다고 한다.

언패킹을 진행하고 (이제 언패킹은 생략,, 앞에서 많이 했으니까,,,!)

생각해보니까 AUTOIT 디컴파일러가 있어서 넣어봤더니,,,

그림 4

답이 1초만에 나왔는데,,,

1부터 790까지니까 790을 MD5로 암호화하면 FLAG 인증 완료,,,

 

그래서 결과적으로 답은 아래와 같다.

[ 2DACE78F80BC92E6D7493423D729448E ]


그래도 Advance 문제를 이렇게 쉽게 풀고싶지 않아서 디버거로도 분석을 시도해보았다!

결론적으로는 중간에서 막히긴 했다,,


언패킹을 하고 X32 디버거로 열어주고 실행을 하였더니,,,

그림 5

또 디버거 탐지 함수가 있는 것 같다,,,

그림 6

일단 찾아서 우회해서 패치파일을 만들어 놓았다. 

그림 7

보기  편하게 그래프 모드로 확인해보았는데

그림  7에서 맨 윗 노드에서 JNE를 통해 그림 5와 같은 에러창을 띄워주는 곳으로 점프한다.

JE로 수정해서 디버거 탐지를 우회할 수 있는 패치파일을 만들어주었다.

 

이제 패치파일로 다시 분석을 진행하였다.


일단 문제 실행파일에서 메시지 박스가 어마어마하게 떴으니까 모듈 검색에서 MESSAGEBOX를 검색해보았다.

그림 8

다 BP를 걸고 실행을 시켜보았다.

했더니 그림 9와 같은 위치에서 멈췄다!

그림 9

그리고 다시 1과 함께 지옥의 창이 뜨는데

그때 확인을 눌러주면 다시 디버거에서 진행이 가능하다.

 

일단 아무것도 모르겠어서 쭉 진행을 해보았는데 어마어마어마어마어마어마하게 긴 흐름이 이어지고,,,

갑자기 위의 그림과 같은 위치로 돌아오더니 2와 함께 창이 떴다,,,

 

그게 한 흐름인지 이때 처음 알았다,, 창 하나 띄우는데 실행 흐름이 어마어마하게 길다,,,

 

그런데 도저히 모르겠어서 풀이를 찾아봤는데 실행하다보면 EBP가 나온다는데 나는 도저히 찾을 수가 없다,,, 어디있는거야,,,,

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

[CodeEngn] Advance RCE L08풀이  (2) 2021.11.13
[CodeEngn] Advance RCE L07풀이  (0) 2021.11.13
[CodeEngn] Advance RCE L05풀이  (0) 2021.11.13
[CodeEngn] Advance RCE L04풀이  (0) 2021.10.05
[CodeEngn] Advance RCE L03풀이  (0) 2021.10.05