힌트의 내용은 위와 같다.
복호화 된 파일을 실행하라는 뜻인것 같다.
동봉된 run.exe를 실행하면 다음과 같이 나온다.
아무거나 입력해 봤는데 문제가 생긴것 같다.
키 값을 이용해서 복호화를 하는 것 같다. 아마 그렇다면 현재 파일은 망가져 있을 것이다.
우선 die를 이용해서 프로그램을 분석해 봤을때 upx패커로 패킹이 되어있어
언패킹 해준 다음에 분석에 들어갔다.
key : 를 기준으로 string을 검색하였고 프로그램의 흐름을 알아 볼 수 있었다.
요약하자면 위와 같다.
위는 현재 암호화된 파일의 hex
아래는 정상적인 .exe 파일의 hex이다.
PE구조를 보면 시작 부분과 DOS부분의 일치 할 것이기 때문에
이를 기반으로 복호화 하는 파이썬 코드를 짠다면
encrypt = "DE C0 1B 8C 8C 93 9E 86 98 97 9A 8C 73 6C 9A 8B 34 8F 93 9E 86 9C 97 9A CC 8C 93 9A 8B 8C 8F 93 9E 86 9C 97 9A 8C 8C 93 9A 8B 8C 8F 93 9E 86 9C"
encrypt = encrypt.split(" ")
decrypt = "4D 5A 90 00 03 00 00 00 04 00 00 00 FF FF 00 00 B8 00 00 00 00 00 00 00 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00"
decrypt = decrypt.split(" ")
ans = ""
for t in range(0,len(encrypt)) :
ans+=chr(int(encrypt[t],16)^ 0xff ^ int(decrypt[t],16))
print(ans)
다음과 같을 것이다.
똑같은 문자 "letsplaychess"가 반복 되는걸로 봐서 이것이 key일 것이다.
file을 복호화 한뒤 확장자를 exe로 바꿔주고 실행하면 정답이 나온다.
'정보보안 > Reversing.Kr' 카테고리의 다른 글
CShop[Reversing.Kr] (0) | 2022.08.09 |
---|---|
EasyELF[Reversing.Kr] (0) | 2022.08.07 |
Position[Reversing.Kr] (0) | 2022.08.07 |
ImagePrc[Reversing.Kr] (0) | 2022.08.03 |
Replace[Reversing.Kr] (0) | 2022.08.01 |