Reversing.kr-FPS 두번째 풀이
이 부분 기억하시죠?? 이 부분이 바뀌며 Congratulation Password.....로 바뀌는 부분입니다. 바뀐다는건 어떤 연산으로 인하여 바뀐다는 것인데 그 연산을 찾으면 어떤식으로 바뀌게 되는지 알 수 있을 것입니다.
저 50byte의 한 값에 Hardware BP를 걸었습니다. 그러면 저 byte에 해당값이 바뀌게 될때 어디서 참조되는지 참조되는 곳에서 멈추게 됩니다.
따라서 저 부분이 연산을 해서 정답을 알려주는 byte로 변환 되는 곳입니다.
CL과 XOR되는 것은 밑에 암호화된 문자열 중 하나입니다. (죽인 고구마 마다 고유의 번호가 있음을 알 수 있습니다.)
CL이 무엇인지 모르기 때문에 CL에 값을 주는 값에 Memory BP를 걸면 CL에 값을 주는 곳을 알 수 있습니다.
00~C4까지 번호를 준다는 것은 실행시켜 보시면 알 수 있으실 겁니다. 자세히 살펴보면 1대1 대응이라고 해야하나....첫번째 고구마번호와 첫번째 암호화byte, 두번 째는 두번 째끼리 하는 것을 볼 수 있습니다.
이걸 C언어로 간단한 프로그램을 짜보면 복호화 문자열을 알 수 있습니다.
0 개의 댓글