Hacking&Security/리버싱[reversing]
Angr 설치 및 사용 예제 (with Defcamp CTF 2015 - r100문제)
보안&인공지능
2021. 1. 30. 23:01
Angr는 파이썬을 활용한 바이너리 분석 도구이다.
Symbolic Execution을 통해 알지 못하는 값을 심볼로 표현한 다음 실행할 수 있다.
리버싱, 시스템 해킹 등에서도 두루두루 사용하기 좋은 툴이다.
설치하기
python3가 설치되어 있다면 설치 가능하다.
※ Z3-solver, angr를 사용하면 서로 부딪히는 현상이 발생할 수 있으므로, 파이썬 가상환경으로 분리하는 것이 좋다.
angr 설치 과정
pip3 install pyvex
pip3 install unicorn
pip3 install simuvex
pip3 install angr
사용 예제
풀어볼 예시 문제
github.com/wizleysw/CTF/tree/master/defcamp_r100
wizleysw/CTF
What I hacked in CTF. Contribute to wizleysw/CTF development by creating an account on GitHub.
github.com
먼저, ghidra를 통하여 바이너리 파일을 디컴파일을 해보았다.
그 결과, 비밀번호를 입력받아 맞으면 Nice!를 틀리면 Incorrect password를 출력하는 것을 볼 수 있었다.
그렇다면, 이 문제는 angr로 간단하게 풀 수 있다.
찾아갈 주소를 0x400844c로 가게하고, 피할 주소를 00400855로 설정해주면 된다.
import angr
p = angr.Project("(파일 경로)\\r100")
sm = p.factory.simulation_manager()
sm.explore(find=0x400844, avoid=0x400855)
print(sm.found[0].posix.dumps(0))
위와 같이 코드를 짠 다음 실행을 시키면 Code_Talkers라는 것을 확인할 수 있다.
반응형