reversing/립케알

reversing.kr - ransomware

ddanss 2019. 8. 17. 17:02
728x90

일단 로직은 이부분을 보면 된다.

전체적으론 file파일을 열어서 그 파일에 있는 값, 입력한값 을 이용하여 푸는 문제다.

최종 연산된 값은

원래 파일의 값 ^ 입력한 값 ^ 0xFF = 최종 값

이다.

여러 아이디어가 있지만 Baaaarking독 님의 아이디어를 보았다.

파일의 값에 비해 입력한 값이 아주 작을텐데 어느 정도의 길이로 반복되는지를 잘 몰랐다.

그래서 93 9A 8B 저부분이 반복되는 것을 보고 저 부분을 모두 0이라고 가정하고 보았다.

그러면

입력값 ^ 원래 값 ^ 0xFF = 최종 값

인데 우리가 구하려는 값은 입력값 이므로

입력값 = 원본값 ^ 0xFF ^ 최종 값으로 역연산이 된다고 한다.

0과 어떤수를 XOR하면 이런식으로 0이 아닌 다른 수가 나온다.

그러므로 입력값 = 원본값 ^ 0xFF 이다.

이렇게 하면 어떤 출력값이 나오는데

이제 run.exe를 실행해서 이 값을 입력하면 file값들이 복호화된다.

그리고 file을 file.exe로 바꾸면 flag가 나온다.

반응형