간단한 AutoHotkey 문제다.

 

문제에서 요구하는건 DecryptKey와 EXE's Key다.

 

AutoHotkey는 AutoHotkey 언어로된 소스코드를 exe로 컴파일할 때 디컴파일방지를 위해 나름대로 패스워드를 지정해서 디컴파일 시 이 패스워드를 정확히 입력해줘야 디컴파일이 정상적으로 이루어지게 된다. 이 디컴파일 시 필요한 패스워드가 위에서 요구하는 DecryptKey이고 Exe's Key는 디컴파일된 소스코드내에서 사용자에게 요구하고 있는 값으로 소스코드만 볼 수 있으면 찾아낼 수 있다.

 

DecryptKey같은 경우 바이너리가 실행될 때 메모리상에서 평문형태로 존재하고있어 쉽게 찾을 수가 있다.

 

어려운 문제는 아니었는데 처음에 UPX로 패킹되어있는걸 언팩한 바이너리로 분석을 하다가 미궁에 빠졌었다. 언팩한 파일을 실행하면 crc 체크 영역에 걸려서 에러루틴으로 빠지는데 이 부분을 분석하기 시작한게 문제였다. 결론적으로 내가 했던 행위는 AutoHotkey2 문제를 풀기위한 행위였고 AutoHotkey1에서 원하는 요구사항을 이루는데는 전혀 상관이없는 행위었다.

 

이걸 뒤늦게 깨닫긴 했는데 어차피 AutoHotkey2 문제도 풀어보게될 거니까 그때 도움이 될거라 생각한다. 쨋든 패킹된 바이너리를 실행해서 OEP까지 간다음 crc체크를 통해 에러가 터졌을때 출력되는 문자열 영역을 기준으로 바로 위에있는 crc체크 함수 내부를 분석하다보면 다음과 같이 Hash처리된 값하나가 ebx에 박히는걸 볼 수 있었다.   

 

 

요게 DecryptKey고 이걸가지고 exe2ahk.exe를 통해 디컴파일을 수행하면 다음과 같이 소스코드 내에서 exe's Key를 확인할 수 있다.

 

 

요거 두개를 md5 복호화해주는 사이트에서 돌려주면 정답을 구할 수 있다.

 

 

 

 

'Wargame > reversing.kr' 카테고리의 다른 글

reversing.kr PEPassword  (0) 2018.07.03
reversing.kr AutoHotkey2  (0) 2018.07.01
Reversing.kr Twist1  (0) 2018.02.27
Reversing.kr Easy_ELF  (0) 2018.02.17
Reversing.kr CSHOP  (0) 2018.02.16
블로그 이미지

JeonYoungSin

메모 기록용 공간

,