본문 바로가기

CAT-Security/미분류

[CSAW CTF 2012] Reversing_400







문제는 64bit, not stripped 파일 입니다





실행시 암호화된 Key값이 보입니다. 단순히 Key값만을 출력해줌을 알 수 있습니다.





IDA64로 디버깅 했을시, 단순히 값들을 입력받고 encrypt 함수를 실행시켜서 암호화 한후 그 결과값을 출력 해 줍니다.






허나 이 문제의 경우 encrypt 함수가 있고 decrypt함수도 존재 합니다.

즉 encrypt를 Call 하는 부분을 강제로 decrypt로 eip를 바꾸게 되면 키값이 decrypt가 될것이라 생각 했습니다.






gdbserver로 리모트 디버깅을 시도해서 eip를 강제로 decrypt쪽으로 분기 시키니까 키값이 보이게 되었습니다.



다른 방법으로는 코드패치가 있었습니다.

출처 : http://havu.tistory.com/28






Encrypted Key 를 출력 해 준 이후, call done을 하게 되는데, 이 done함수에는 exit를 포함 하고 있습니다.

그래서 프로그램이 종료가 되게 되는데, 4006BE ~ 4006C2까지 hex뷰를 열어서 지워보겠습니다.





코드는 다음과 같이 바뀌게 됩니다.





실행을 했을시 정상적으로 Decrypt가 됩니다.


'CAT-Security > 미분류' 카테고리의 다른 글

[윈도우 후킹] Message hooking - 1  (2) 2014.05.19
[PlaidCTF 2013] three eyed fish_100  (0) 2014.05.16
[Codegate2014] dodoCrackme_200  (0) 2014.05.13
[Reversing.kr] Direct3D_FPS  (6) 2014.05.08
[Secuinside2013] beist_attack_game_150  (0) 2014.05.02