일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- 시스템
- Smashing The Stack For Fun And Profit
- reversing
- 카이사르
- 번역
- grep
- 정답
- general skills
- #picoCTF2018
- 리버싱
- KOISTUDY
- dreamhack
- WEB
- cryptography
- picoCTF2018
- writeup
- 해킹 공부
- write up
- 시스템해킹
- #hacking
- Hxd
- Aleph One
- 해설
- picoCTF
- 버퍼오버플로우
- forensics
- Protostar
- CTF
- 스택
- 리눅스
Archives
- Today
- Total
Security || AI
Angr 설치 및 사용 예제 (with Defcamp CTF 2015 - r100문제) 본문
Hacking&Security/리버싱[reversing]
Angr 설치 및 사용 예제 (with Defcamp CTF 2015 - r100문제)
보안&인공지능 2021. 1. 30. 23:01Angr는 파이썬을 활용한 바이너리 분석 도구이다.
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
먼저, 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라는 것을 확인할 수 있다.
반응형
'Hacking&Security > 리버싱[reversing]' 카테고리의 다른 글
어셈블리 ROL, ROR 코드 구현 (0) | 2021.02.04 |
---|---|
기드라(Ghidra) 설치 및 실행 (0) | 2019.03.13 |
올리디버거 실행오류(Themida, Winlicense) 해결법 (0) | 2019.01.06 |
GDB에 PEDA설치하기 (0) | 2018.10.18 |