반응형
Angr 문제를 접하고 푸는 도중에 기존에 알고있던 Angr과는 조금 바뀐 부분이 있어서 이에 대한 내용을 메모합니다.
일단 Angr을 설치하는데, Python3 환경에서 설치하여 구동한다.
참고한 블로그에 따르면, Python3의 가상환경을 생성하고 그 위에 설치한다.
그 이유는 angr의 모듈도 z3의 Solver를 이용하면서 동시에 설치하면 서로의 영역에 침범해서 모듈을 사용할 수 없다고 한다.
아래와 같은 순서대로 설치를 진행한다.
- sudo apt install python3
- sudo apt install python3-pip
- sudo apt install git
- sudo apt-get install virtualenvwrapper python2.7-dev build-essential libxml2-dev libxslt1-dev git libffi-dev cmake libreadline-dev libtool debootstrap debian-archive-keyring libglib2.0-dev libpixman-1-dev libqt4-dev graphviz-dev binutils-multiarch nasm libc6:i386 libgcc1:i386 libstdc++6:i386 libtinfo5:i386 zlib1g:i386
- vi ~/.bashrc (그냥 맨 윗줄에)
- mkdir ~/.environments
- source $(find / -name virtualenvwrapper.sh 2>/dev/null)
- source ~/.bashrc
- mkvirtualenv angr
- pip3 install angr
- git clone https://github.com/angr/angr-dev.git
- cd angr-dev
- ./setup.sh -i -e angr
나는 위 과정을 다 거쳤는데, 에러가 나왔다.
그래서 pip3를 최신버전으로 업데이트하고, pip3 install angr과 같은 명령을 몇번 반복하니 angr이 제대로 설치되었다.
[사용법]
- Project
- [변수이름] = angr.Project('[파일이름]')
- 기본속성
- 아키텍처 : [변수이름].arch
- 엔트리포인트 : [변수이름].entry
- 파일이름 : [변수이름].filename
- Loader : 가상 주소 공간을 다루기위해 CLE라는 모듈을 사용한다. 로더로 불리고, 'loader'속성으로 사용한다.
- [변수이름].loader
- Factory
- State=[변수이름].factory.full_init_state(args=['파일이름'], add_option=angr.unicorn,stdin=flag,)
unicorn옵션은 계산 속도 향상 - SM=[변수이름].factory.simulation_manager(State) : 상태 객체를 인자로 받아간다.
SM.run()으로 실행시키거나 SM.active(step활용)으로 시뮬레이션을 활성화 할 수 있다.
- State=[변수이름].factory.full_init_state(args=['파일이름'], add_option=angr.unicorn,stdin=flag,)
- Solver
- state.solver.BVV(0xFFFF,32) : 32비트 길이의 0xFFFF를 가지는 비트 벡터 생성
- state.solver.eval(변수) : eval함수를 활용하여 파이썬 정수로 변환
- state.solver.is_true() vs state.solver.is_flase() 로 참 거짓 판단
- state.solver.add(조건)
- state.solver.FPV(3.14,state.solver.fp.FSORT_DOUBLE)
- Stash
- active
- deadended
- pruned
- unsat
- unconstrained
출처 : ccurity.tistory.com/261, hyeonbell.tistory.com/169
반응형
'Rev > Info' 카테고리의 다른 글
[Malware] Formbook (0) | 2021.12.27 |
---|---|
[Excel] Very hidden Sheet VBA Macro (0) | 2021.12.27 |
IDA Plugin 개발 - 1 (0) | 2021.06.24 |
Decompilation failure - positive sp value has been found (0) | 2021.01.13 |
RecStudio - Decompile [MIPS] (0) | 2019.10.28 |