Current binary analysis research focus on the back-end rather than the front-end. In this thesis, we list various design choices that can improve the efficiency of the binary analyses. To show efficient of our design choices, we design and implement new binary analysis platform B2R2. B2R2 is fast with respect to lifting binary code and evaluation of the IRs. Since our platform is written purely in functional programming language, f# without any external dependencies, it is easy to supports pure parallelism. B2R2's IR contains metadata for boosting the data-flow analyses. Hence, any binary analysis technique can benefit from our IRs.
현재의 바이너리 분석 연구들은 주로 프론트엔드가 아닌 백엔드에 중점을 두고 있다. 본 학위 논문에서는 바이너리 분석의 효율을 올릴 수 있는 몇 가지의 설계 관점들을 나열하고 해당 관점들의 효율성을 보이기 위해서 새로운 바이너리 분석 플랫폼인 B2R2을 설계 및 개발한다. B2R2은 바이너리 코드를 빠르게 리프팅 할 수 있으며, 빠른 중간 표현 연산이 가능하다. B2R2은 어떠한 외부 종속성 없이 f#이라는 함수형 언어로 작성되어 있어, 병렬화가 쉽게 가능하며 B2R2은 중간 표현이 메타정보를 담고 있어 빠른 데이터 흐름 분석이 가능하다. 따라서 모든 바이너리 분석 기술들이 우리의 중간 표현을 사용함으로써 이득을 얻을 수 있다.