13 Security Lab

BAP (BinaryAnalysisPlatform) 사용해보기 본문

Computer Science/Tools

BAP (BinaryAnalysisPlatform) 사용해보기

Maj0r Tom 2018. 4. 9. 22:09

1. Binary Analysis Platform (BAP) ? 


https://github.com/BinaryAnalysisPlatform/bap



바이너리 분석 도구


ARM, x86, x86-64, PowerPC, MIPS 아키텍처의 Instruction 바이너리에 대해서 Binary Lifting 기능을 제공한다.


Binary Lifting 이란 바이너리 수준의 명령코드에서 그 레벨을 한단계 높여 추상화하여 표현하는 것을 의미한다.


예를 들면 0과 1로 이루어진 기계어 또는 니모닉코드를 그 보다 높은 C언어 수준 또는 C언어보다는 낮지만 추상화 된 언어로 표현한다.


Binary Lifting 을 통해 추상화 되는 수준에 대해서는 정해진 부분은 없지만 기계보다 사람에게 친숙한 쪽으로 Lifting 시키는 것을 의미한다.



2. BAP 설치 



지원 환경

Debian and Red Hat derivatives OS

OCaml runtime Env.


테스트 환경

Ubuntu 16.04

Vmware 12 (RAM 4G)



1) OCaml runtime 환경을 위한 OPAM 설치


https://opam.ocaml.org/doc/Install.html 


wget https://raw.github.com/ocaml/opam/master/shell/opam_installer.sh -O - | sh -s /usr/local/bin






2) OPAM 설정 및 BAP 설치


>>opam init --comp=4.05.0              # install the compiler

설정 파일 생성 여부 질문에 y



>> eval `opam config env`               # activate opam environment

# 출력 결과 따로 없음



>> opam depext --install bap            # install bap

# opam plugin depext 설치 여부에 y




아래와 같이 권한 문제 발생한다면





Sudo 명령으로 실행



추가 질문에 y (15분정도 걸림)




추가 질문에 y (45+)




확보 된 RAM이 충분치 않다면 아래와 같이 fork 작업 시에 메모리 할당 실패 에러가 난다.. (VM환경이라..)

따라서 설치 시 충분한 메모리 확보 필요하다 (Mem 4G 로 재시작.. 성공)



감격의 성공.. ㅜㅜ 한 시간 넘게 걸린듯.. (랩탑, VMware환경)



제대로 설치 되었는지 확인 위해 명령어 "bap" 실행







3. BAP 예제코드 실행


예제 바이너리는 Github에 업로드 되어있는 것을 사용

아래와 같이 >> bap "바이너리 경로" 형태로 실행하게 된다.


Comments