BinDiff 도구를 사용하는 방법을 배우려고하지만 할 수 있습니다. ” 비교를 위해 두 바이너리를 여는 방법을 알아냅니다. 설명서를 훑어 보는 동안 IDA Pro가 필요한 것 같습니다.
IDA Pro없이 BinDiff를 사용할 수 있습니까 (예 : IDA 무료 사용)?
댓글
- 관련 : BinDiff의 대안 reverseengineering.stackexchange.com/q/26196/3934 ?
답변
예, 이제 Ghidra로 가능합니다.
최신 버전 BinDiff 6 , Ghidra 디스어셈블러에 대한 실험적 지원이 있습니다. Diffing에 필요한 .BinExport 형식으로 Ghidra 디스 어셈블리를 내보낼 수있는 확장과 함께 제공됩니다.
필수 소프트웨어
- zynamics 웹 사이트
- 최신 Java 런타임 (OpenJDK 11 이상)
- Ghidra 9.1.2 ( https://ghidra-sre.org/releaseNotes_9.1.2.html )
Ghidra 확장 프로그램 설치
BinDiff를 설치 한 후 “BinExport”를 찾습니다. 확장자를 설치합니다.
기본값은
- Windows :
C:\Program Files\BinDiff\extra\ghidra
- Linux :
/opt/bindiff/extra/ghidra
- macOS :
/Applications/BinDiff/Extra/Ghidra
ghidra_BinExport.zip
파일의 경우 다른 Ghidra 확장 프로그램처럼 확장 프로그램을 설치할 수 있습니다.
- Ghidra를 시작한 다음
File
를 선택합니다. |Install Extensions...
. -
+
버튼을 클릭하여Add extension
합니다. -
Select Extension
대화 상자에서ghidra_BinExport.zip
가 포함 된 디렉토리로 이동합니다. -
.zip을 선택합니다. 파일을 열고
OK
-
OK
를 클릭하여 확인하고 다시 시작 메시지를 닫습니다. 그런 다음 Ghidra를 다시 시작합니다.
를 클릭합니다.
사용법
이 버전의 Ghidra 용 Java 기반 내보내기 프로그램은 IDA Pro 용 기본 C ++ 버전과 비교할 때 다음과 같은 기능을 제공합니다.
| | Ghidra | IDA | | --------------------------------------- | ------ | --- | | Protocol Buffer based full export | ✓¹ | ✓ | | Statistics text file | - | ✓ | | Text format for debugging | - | ✓ | | BinNavi export into PostgreSQL database | - | ✓ | ¹ No operand trees
설치 버전 확인
- Ghidra에서
File
|Install Extensions...
. -
BinExport
가 나열되고 올바른Install Path
가 있는지 확인합니다. li>
호출
- Ghidra에서 프로젝트를 열거 나 새 프로젝트를 만듭니다.
- 아직 수행하지 않은 경우 내보낼 바이너리를 엽니 다. 코드 브라우저 도구를 사용하고 Ghidra의 초기 분석을 실행합니다. “공격적인 명령 찾기”옵션을 활성화하여 내보내기에서 더 나은 범위를 얻을 수 있습니다.
- 프로젝트보기에서 바이너리를 마우스 오른쪽 버튼으로 클릭하여 내보내기 및 선택
Export...
- 드롭 다운 목록에서
Binary BinExport (v2) for BinDiff
- 선택 출력 파일의 경로입니다. 원래 파일 이름 일 수 있습니다.
.BinExport
가 추가됩니다. -
OK
를 클릭합니다.
를 선택합니다.
BinDiff 내 보낸 파일
내 보낸 파일을 비교하여 결과를 UI에 표시 할 수 있습니다.
- 위의 지침에 따라 두 개의 바이너리를 내 보냅니다. 다음 단계에서는
primary.BinExport
및secondary.BinExport
를 가정합니다. -
명령 줄에서 BinDiff 엔진을 실행합니다. with
bindiff primary.BinExport secondary.BinExport
현재 디렉토리에
primary_vs_secondary.BinDiff
파일이 생성됩니다.bindiff
명령은 시스템 경로에 있어야합니다. -
bindiff --ui
또는 운영 체제의 런처를 사용하세요. -
새 작업 공간을 만들거나 기존 작업 공간을 엽니 다.
-
Diffs
|Add Existing Diff...
를 선택합니다. -
, 2 단계에서 생성 한
primary_vs_secondary.BinDiff
를 선택합니다. -
OK
,Add
. diff는 이제 왼쪽의 트리보기에 표시되며 두 번 클릭하여 열 수 있습니다. -
일반적으로 BinDiff를 사용하여 일치하는 함수의 호출 그래프 또는 흐름 그래프를 표시합니다. .
오픈 소스
마지막으로 BinExport 확장 (및 IDA Pro 플러그인)은 오픈 소스이며 사용할 수 있습니다. GitHub 에서. v11
태그는 BinDiff 6에 해당합니다.
댓글
- 감사합니다. ' IDA Pro에 대한 의존성을 제거하게되어 기쁩니다!