Security || AI

Angr 설치 및 사용 예제 (with Defcamp CTF 2015 - r100문제) 본문

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라는 것을 확인할 수 있다.

결과
실행 결과

반응형