核心概念
바이너리 코드와 함수 이름 간의 관계를 학습하여 함수 이름을 정확하게 예측하는 새로운 접근법을 제안한다.
摘要
이 논문은 바이너리 함수 이름 예측을 위한 새로운 접근법인 BLens를 소개한다. BLens는 다음과 같은 핵심 내용을 포함한다:
- 다양한 바이너리 코드 임베딩 모델(CLAP, DEXTER, PALMTREE)을 앙상블하여 함수 패치를 생성하고, 이를 대조적 캡셔닝 작업을 통해 함수 이름 표현 공간과 정렬시킨다.
- 함수 이름 생성을 위해 새로운 마스크 언어 모델(MLM) 기반 디코더인 LORD를 제안한다. LORD는 유연한 자동회귀 프로세스를 사용하여 정확도를 높인다.
- 실험 결과, BLens는 기존 최신 모델들에 비해 크로스 바이너리 설정에서 F1 16.8%, RougeL 36.4%, Bleu 77.8% 향상을 보였다. 크로스 프로젝트 설정에서는 F1 53.9%, RougeL 63.7%, Bleu 585% 향상을 보였다.
- 사례 연구를 통해 BLens가 실제 유용한 함수 이름을 생성할 수 있음을 확인했다.
統計資料
함수 이름 예측 모델의 성능 향상은 매우 중요하다. 정확한 함수 이름은 역공학 작업에서 효과적으로 코드를 탐색하고 이해하는 데 도움을 준다.
크로스 바이너리 설정에서 BLens는 F1 0.772, RougeL 0.698, Bleu 0.582를 달성했다. 이는 기존 최고 모델 대비 각각 16.8%, 36.4%, 77.8% 향상된 수치이다.
크로스 프로젝트 설정에서 BLens는 F1 0.460, RougeL 0.393, Bleu 0.242를 달성했다. 이는 기존 최고 모델 대비 각각 53.9%, 63.7%, 585% 향상된 수치이다.
引述
"함수 이름은 역공학 작업에서 인간 역공학 엔지니어에게 큰 도움을 줄 수 있다."
"기존 접근법은 함수 이름 예측을 기계 번역 문제로 다루지만, 우리는 이를 이미지 캡셔닝 문제로 다룬다."
"우리의 접근법은 바이너리 코드와 함수 이름 간의 관계를 학습하여 더 나은 일반화 성능을 달성한다."