올리로 열어 분석한결과 file파일을 복호화하는 부분이 있었다.
그부분을 해석하자면,
0xFFFFFF-- ^ Key[i] ^ 0xFF = file[i] 이다. (--부분은 run.exe의 hex차례대로)
run.exe의 뒷부분을 보면 모조리 0x00으로 들어차있다.
0x00과 xor연산을 했다면 일정하게 반복될것이므로, file파일에서 반복되는부분을 찾아냈다.
enc = [0x93,0x9A,0x8B,0x8C,0x8F,0x93,0x9E,0x86,0x9C,0x97,0x9A,0x8C,0x8C]
data = 0x00
key = []
cnt=0
for i in range(len(enc)):
if cnt%13 == 0:
cnt=0
key.append(chr(enc[cnt]^(data^0xff)))
cnt+=1
print key
>>> letsplaychess
key를 악당에게 돈을 주지않고도 얻어내었으므로, ransomeware에 넣어본다.
그리고 file을 헥스에디터로 열어보니 헤더가 MZ..으로 시작했으므로 날렵하게 .exe파일로 바꾸어준후 실행하니 답이 나왔다.
Solved!
댓글 없음:
댓글 쓰기