EYEN
IDA 플러그인으로는 작동이 안 되는 bindiff쓰기 본문
diaphora, darumgrim 등등 다른 diffing 툴도 써봤는데 유료이거나 해결할 실마리가 안 보이는 오류가 있어서 그냥 bindiff를 쓰기로 했습니다..
다른 분들은 IDA에서 bindiff를 바로바로 볼 수 있는 것 같은데 저는 그게 안됐습니다. 조금 번거롭긴한데 어쩔 수 없죠... 사용과정이 어렵지 않아 다행입니다.
1. bindiff를 다운
https://github.com/google/bindiff/releases
저는 혹시 몰라서 다운받을 때 IDA 폴더 명을 'IDA'로 바꿨습니다.
다운로드 후 IDA에서 Edit->plugins에서 Binexport와 bindiff를 확인할 수 있습니다.
저는 여기서 BinDiff를 클릭했을 때 secondary 폴더 안의 데이터베이스를 찾을 수 없다고 떴습니다. secondary 폴더 안에 db 파일을 넣어놓고 실행했는데도 말이죠... 저 BinDiff만 클릭하면 방금 넣어놓은 db파일이 사라져버리는 신기한 경험을 할 수 있었습니다.
2. '.Binexport' 파일 생성하기
원하는 파일을 ida에서 연 뒤 edit->Plugins->Binexport를 클릭합니다.
'BinExport v2 Binary Export' 버튼을 클릭해서 원하는 폴더에 넣고 위치만 잘 기억해놓습니다.
3. Bindiff.jar 실행하기
보통 Program Files\Bindiff\bin 에 아래와 같이 실행파일들이 있을텐데요.
CLI에서 bindiff.exe를 사용해도 되지만, bindiff.jar 파일을 클릭하면
이렇게 Bindiff를 사용할 수 있게 됩니다.
4. Binexport 파일 열기
워크스페이스를 원하는 경로에 새로 열고
Diffs-> New Diff 를 클릭하면 다음과 같은 창이 뜹니다.
여기에서 아까 추출했던 .Binexport파일의 경로를 넣어주면 됩니다.
Primary file: 취약점이 존재하는 파일.BinExport
Secondary file: 취약점을 패치한 파일.BinExport
Diff Destination: Primary file vs Secondary file을 저장할 경로
이렇게 입력하고 Diff를 클릭합니다.
제가 원하는 대로 나왔습니다. 보통 두 버전에서 변경된 함수는 많아도 10개를 넘지 않더라구요.
'환경설정 및 배경지식' 카테고리의 다른 글
(5)참고자료 내용 정리 (0) | 2024.11.06 |
---|---|
레이스 컨디션 (0) | 2024.09.27 |
AFL 퍼저 공부 (0) | 2024.09.25 |
뇌를 자극하는 시스템 프로그래밍 (0) | 2024.09.25 |
Firebase 보안 규칙 (0) | 2024.05.20 |