Dynamic Lifter Binrec 빌드하기
·
이것저것
binrec은 2020년 eurosys에서 발표된 동적리프터다실행파일을 입력으로 받아 S2E(symbolic execution engine)를 사용해서 LLVM-IR로 리프팅해주는 툴이다 binrec의 git repo.clone 받아오면된다https://github.com/trailofbits/binrec-tob.gitDependency로 해당 조건들을 가지고 있다ubuntu 버전이 다르면 빌드는 되는데 Lifting이 작동하지 않으니...버전을 꼬오옥 맞춰야한다(경험담)ㅜㅜ (참고) 원하는 LLVM 버전 빌드하기1. llvm-project를 clone 한다git clone https://github.com/llvm/llvm-project.git1-1. 원하는 버전이 있다면 checkout으로 원하는 버..
LLVM IR이란
·
LLVM
LLVM Pass를 제작하기 위해 공부한 내용을 정리하기 위한 글임니다 https://youtu.be/MagR2KY8MQI?si=_TIQhqHYNhkbBbfz 해당 영상을 참고해서 정리하였고, 틀린부분이 있을 수 있습니다 :) LLVM IR이란? 소스코드는 컴파일과정에서 몇가지 단계를 거쳐 실행파일로 변환됩니다. 단계들을 간단하게 살펴보겠습니다, 1. Source Code -> Intermediate Representation 첫번째 단계에서 소스코드는 parsing 후 변환과정을 거쳐 Intermediate Representation(IR)로 변환됩니다. 해당 단계는 front-end 컴파일러가 담당하며, llvm에서는 clang이 c와 c++대상으로 해당 단계를 수행하지요. 그러고 나면 LLVM-IR..