본문 바로가기

Wargame/Reversing-W

reversing kr ransomware

주어진 zip파일을 풀면 이렇게 세개의 파일이 나온다.



일단 readme.txt 부터 열어보면

파일을 Decrypt 하란다. 파일 종류는 exe인 것 같다.



run.exe 을 실행하면 이런 화면이 뜬다.

Key를 입력하면 그 Key를 가지고 Decrypt 하는건가보다.

5천억을 진짜 입금할 순 없으니 살펴보자.


일단 이건 암호화 된 파일이다. 뭔지 하나도 모르겠다..



대충 아무 값이나 넣고 진행을 해보자.



흔히 보던 모습이 모이는 것 같긴하다..



올리디에 던져서 분석을 좀 진행해봤다.

위 그림의 부분은 그렇게 중요하지는 않다.

암호화된 파일을 하나씩 읽어오는 작업을 하는 부분이다.



이 부분이 진짜 중요한데, 읽어온 값하고 입력받은 키 값을 이용해서

암호화된 파일을 복호화 시키는 것이다

위의 코드를 대충 정리하자면

복호화 된 파일 값 = 원래 파일 값 ^ key값 ^ 0xFF

이런식이다. 이 걸 이용해서 코드를 짜면 해결될 것 같다.



readme.txt에서 이건 exe파일이라 했으니

exe 파일 헤더의 일부분을 긁어온다.



그리고 같은 위치의 암호화된 파일의 일부분을 긁어오자.

그리고 이 두 값을 가지고 파이썬으로 코드를 짰다.



1
2
3
4
5
6
7
8
9
10
11
12
encrypt_file = [0xDE0xC00x1B0x8C0x8C0x930x9E0x860x980x970x9A0x8C0x730x6C
            0x9A0x8B0x340x8F0x930x9E0x860x9C0x970x9A0xCC0x8C0x930x9A0x8B0x8C0x8F0x93]
origin_file = [0x4D0x5A0x900x000x030x000x000x000x040x000x000x000xFF0xFF0x00
            0x000xB80x000x000x000x000x000x000x000x400x000x000x000x000x000x000x00]
 
 
for i in range(0,32):
        key_temp = encrypt_file[i] ^ 0xff
        key = key_temp ^ origin_file[i]
        print key
 
 
cs

위와 같은 파이썬 코드이다.



실행시키면 반복되는 수들이 있다.



뽑아오면 이렇게 되는데, 이걸 문자로 변환시키면 그게 키 값이다.



키 값을 입력하면 복호화를 진행해준다.



MZ도 보이고 PE도 보이는 걸 보니

정상적으로 복호화가 된 것 같다.



복호화 됐으니 exe파일로 바꿔서 실행을 시켜보자.



키값이 나왔다.


+

올리디로 던져서 분석할 때

00401000 함수를 불러오는데..

미친듯한 스텁코드였다...

개고생했다...


반응형

'Wargame > Reversing-W' 카테고리의 다른 글

reversing kr CSHOP  (0) 2017.07.13
reversing kr PE Password  (0) 2017.07.13
reversing kr ImagePrc  (0) 2017.07.11
reversing kr Replace  (0) 2017.07.11
reversing kr Music Player  (0) 2017.07.10