1. Angr
Angr는 바이너리 파일 분석을 위한 도구이다. 자세한 내용은 오픈 소스 홈페이지에서 확인할 수 있다.
angr의 문법들과 API를 공부하면서 파이썬을 어떻게 사용해서 개발할지에 대해 정리하고자 한다.
바이너리 분석 파일이기 때문에 CTF등의 해킹? 대회에서 많이 사용되는 분석 도구로 문제 해결된 여러 글들을 볼 수 있다.
angr와 관련된 플러그인 오픈 소스로는 angrgdb, angr-management 등 다양한 오픈소스 활동이 진행중이다.
documentation과 angr blog 및 API 문서등을 통해 확인할 수 있으며 이들을 활용한 내용들을 정리해보자.
먼저 설치부터 진행한다. Ununtu 환경이라면 문서화가 잘 되어있고 큰 어려움이 없다.
윈도우 Pycharm에서 진행할 예정이므로 윈도우에서 설치해보자.
2. Angr 설치
Angr 문서에서는 윈도우에서 가상환경으로 'pip install angr'로만 진행하면 된다고 설명하지만,
필자는 아래의 링크를 참고했다. 아래의 내용대로 설치해보자
https://jaeyung1001.tistory.com/25
위의 내용대로 설치한 뒤, Pycharm을 실행하자. 그리고 프로젝트를 만들고 setting의 python interpreter에서 패키지를 설치하듯 angr 패키지를 가상환경에 설치해주자.
angr 설치가 끝나면서 관련된 모든 라이브러리가 성공적으로 설치되었다. python버전은 3.8을 사용하고 있으며 최소 요구사항은 공식 홈페이지를 참고하자
그리고 홈페이지에 있는 기본 예제 소스 코드를 그대로 돌려보자.
https://github.com/angr/angr-doc
위의 document 오픈 소스를 프로젝트에 그대로 clone하여 대상 바이너리 파일을 읽거나 아니면 기존에 가지고 있는 바이너리 파일을 읽게해도 상관없다.
다음의 코드가 실행된다면 angr를 사용하는데 문제가 없다.
이제 angr를 볼텐데 아래의 개념이 있다. 두서없이 진행하기에 필요한 부분 및 공부할 부분들에 대해서만 진행할 예정이다.
Project
State
SimMulation
SimProcedure
'python > angr' 카테고리의 다른 글
Ghidra and Angr (0) | 2021.07.08 |
---|