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가 나온다.
반응형