[Reversing] AutoHotkey1_WirteUp
워게임 풀이
Reversing.Kr
This site tests your ability to Cracking & Reverse Code Engineering. Now Challenge a problem for each environment. (Windows, Linux, .Net, Flash, Java, Python, Mobile..) Admin E-Mail: gogil@reversing.kr
reversing.kr
9. AutoHotkey1
문제 파일 압축을 해제 해보니 readme.txt 파일이 있었다.

Decrypt와 EXE 키는 md5 값이며, 해당 md5을 복호화하면 인증키를 획득할 수 있다는 내용이다.
AutoHotKey?
AutoHotKey는 윈도우 응용 프로그램이나 매크로를 만들 수 있는 오픈 소스 소프트웨어이다. 보통, 반복적인 작업을 자동으로 수행하도록하거나 단축키를 설정하기 위하여 사용된다.
AutoHotKey를 설치한 후에 사용자가 원하는 대로 스크립트 코드를 작성할 수 있다.
스크립트 파일은 ahk 확장자로 저장되고, ahk 파일을 컴파일하면 exe 파일이 생성된다.

문제 파일은 exe 파일이므로 스크립트도 작성된 파일이 컴파일된 실행 파일인 셈이다.

실행하면 위와 같이 입력창이 있고 아무 문자가 입력한 후 OK 버튼을 누르게 되면 프로그램이 종료된다.
여기서 입력해야하는 패스워드가 decript's key인 것 같다.

PEiD로 파일을 확인해보니 upx로 패킹이 되어있다.
언패킹을 하기 위해서 프로그램을 설치해주었다.
https://github.com/upx/upx/releases/tag/v4.0.2
Release v4.0.2 · upx/upx
Please see the file NEWS for a detailed list of changes. Note: all versions are functionally equivalent, i.e. each version can handle all executable formats, so you only need the file that runs on ...
github.com
위 링크에서 upx-4.0.2-win64.zip 설치 (윈도우)
upx 프로그램은 무설치 방식이기 때문에 cmd 창에서 경로를 입력해서 사용할 수 있다. (볼라티빌리티와 비슷한 사용 방식인듯..) 자주 쓴다면 환경 변수로 두고 사용해도 된다.

cmd 창에서 upx 프로그램이 설치된 경로로 이동한 후 upx를 입력했을 때 위와 같은 창이 뜬다면 설치가 제대로 된 것이다!!
upx 옵션
패킹 작업을 할 때는 명령프롬프트 창에서 upx [ 대상 파일 ]로 할 수 있다.
-d: 대상 파일 자체가 upx 패킹이 되어 버리기 때문에 원본파일은 사라진다.
-o: 새로운 파일로 upx 패킹된 파일을 만든다.

언패킹이 잘 되었다.

언패킹 한 파일을 실행해보았더니 이런 에러?문구가 뜨고, 확인을 누르면 종료된다.
컴파일 후 변조가 되면 위 오류가 뜬다고 한다..
언패킹 한 파일을 올리디버거에 넣어봤다.

오류 문구로 떴던 'EXE corrupted'를 String에서 찾아서 들어가봤다.

이것은 주석된 DECRYPTED KEY 부분을 지나면 EBX에 디크립트 된 키가 뜬다.
DECRYPT KEY: 220226394582d71174103c021748c2a

그리고 AUTOHOTKEY SCRIPT를 지나면 ECX 레지스터에 메세지 관련 정보가 뜬다. 이 부분을 DUMP 영역으로 확인하면 위와 같다.
EXE'S KEY: 54593f6b9413fc4f2b4dec2da337806

Exe's key = 54593f6b9413fc4ff2b4dec2da337806

decrypt key = 220226394582d7117410e3c021748c2a
isolated pawn
