2023 리버싱

[Reversing.kr] Ransomware

의성마늘햄 2023. 5. 28. 08:02

 

readme.txt를 보면 복호화된 파일 = 실행 파일

 

 

 

 

 

 

 

 

 

 

 

xor 하는 핵심부분을 찾았다....

파일을 한바이트씩 가져와서 입력한 키의 값을 XOR 연산, 연산 값을 다시 0xFF과 XOR연산하는 것으로 보인다. 

 

 

 

 

 

 

 

첫번째로 XOR 연산하기 전에 ECX값이 FFFFFFDE이었고, XOR 연산후에 ECX 값이 FFFFFFEF로 바뀐 것을 확인할 수 있다.

 

 

 

 

2번째 XOR 연산 하기 전,

EDX FFFFFFEF가 들어가있다.

 

 

 

 

2번째 XOR 연산을 한 후에 EDX FFFFFF10이 들어가 있는 것을 볼 수 있다.

 

 

 

 

 

 

13바이트가 계속 반복되는걸로 봐... 이게 플래그 길이임을 알 수 있다!!!!!!

 

 

 

파이썬 코드를 짜보았다.

exe='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'
en_exe='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'
flag =''

exe = exe.split(' ')
en_exe=en_exe.split(' ')

for i in range(len(exe)):
	flag += chr((int(en_exe[i], 16) ^ 0xff) ^ int(exe[i], 16))
print(flag)

letsplaychess 를 입력해본다.

 

exe 확장자로 바꾸고, 열어준다.

Colle System