파일을 받으니 실행파일과 영문모를 파일 그리고 readme가 나온다.




readme를 읽어보니 실행파일을 복호화 하라고 한다.


실행파일을 통해 암호화된 file을 복호화 하는 문제같다.



이 실행파일은 키값을 입력하면 키값에 따라 file이 바뀐다.



file을 Hxd로 열어봤는데 이렇게 나온다. 


readme에서 file은 pe파일 이라고 했으므로 파일 시작부분이 MZ로 바뀌도록 복호화 하면 될거같다.





upx패킹을 풀어주고 복호화 해주는 실행파일의 메인함수를 보니 리버싱을 방해하기위해 의미없는 명령어를 매우 많이 넣어놨다.


따라서 아이다로 디컴파일이 불가능하다.



string검색을 통해 실행이 시작되는 부분으로 왔다. 


key를 입력받는다.



그 후에 file을 오픈한다.


file을 오픈해서 file을 한 바이트씩 받아와 key값과 간단한 연산을 통해 file을 변경시킨다.


밑은 연산하는 부분이다.



연산하는 부분을 분석해 보니 xor연산 두번이 끝이다.......


분석결과 키값^file^0xFF=복호화될값 이렇게 된다.


즉 내가 abcd를 키값으로 설정했으면


file의 첫번째 바이트가 0xDE였으므로 


0x61^0xDE^0xFF=0x4D 가 되야한다.


이런식으로 키값을 찾아가다보면 파일의 크기만큼 키값을 받는건 절대 아닐거라 생각하고,


분명히 키값을 반복해서 사용할거라 생각해서 수작업으로 키값이 반복될때까지 키값을 추측해보았다.



이러한 문자열이 나오고 이 문자열들이 계속 반복되는것을 보아 letsplaychess라는 키값을 얻을수 있었다.


이 키값을 통해 file을 복호화 하니 실행파일로 우리가 자주보던 PE구조를 가진 파일의 형태를 볼수있었다. 




확장자 EXE를 추가해주고 파일을 실행해 보려 했으나 DLL이 없다면서 실행되지 않았다.


역시나 이 실행파일 역시 upx패킹이 되어있어 풀어주고 디컴파일을 해보니 Key를 출력해보는 부분을 찾았다.



'문제 > Reversing.kr' 카테고리의 다른 글

Reversing.kr Replace  (0) 2017.01.23
Reversing.kr ImagePrc  (0) 2017.01.23
Reversing.kr x64 Lotto  (0) 2016.10.06
Reversing.kr HateIntel  (0) 2016.10.05
Reversing.kr Music Player  (0) 2016.10.04

+ Recent posts