2015 defcamp r100
앵거로 푸는 문제중에서 가장 쉽다고 들은 15년도 defcamp 리버싱 100점 짜리이다.
바이너리를 열어보면 복잡하게 루틴이 있다.
하지만 우리는 angr를 사용을 하기 때문에 찾을 주소와 피할 주소만 찾아주면 된다.
.text:0000000000400842 jnz short loc_400855
.text:0000000000400844 mov edi, offset s ; "Nice!" <<<<<<<<< 찾을 주소
.text:0000000000400849 call _puts
.text:000000000040084E mov eax, 0
.text:0000000000400853 jmp short loc_40086B
.text:0000000000400855 ; ---------------------------------------------------------------------------
.text:0000000000400855
.text:0000000000400855 loc_400855: ; CODE XREF: main+5Aj
.text:0000000000400855 mov edi, offset aIncorrectPassw ; "Incorrect password!" <<<< 피할주소
.text:000000000040085A call _puts
.text:000000000040085F mov eax, 1
.text:0000000000400864 jmp short loc_40086B
.text:0000000000400866 ; ---------------------------------------------------------------------------
(angr) root@ubuntu:~/defcon# pypy x.py
WARNING | 2018-02-21 09:56:40,251 | angr.analyses.disassembly_utils | Your verison of capstone does not support MIPS instruction groups.
Code_Talkers