BinDiff 도구를 사용하려면 IDA Pro가 있어야합니까?

BinDiff 도구를 사용하는 방법을 배우려고하지만 할 수 있습니다. ” 비교를 위해 두 바이너리를 여는 방법을 알아냅니다. 설명서를 훑어 보는 동안 IDA Pro가 필요한 것 같습니다.

IDA Pro없이 BinDiff를 사용할 수 있습니까 (예 : IDA 무료 사용)?

댓글

답변

예, 이제 Ghidra로 가능합니다.

최신 버전 BinDiff 6 , Ghidra 디스어셈블러에 대한 실험적 지원이 있습니다. Diffing에 필요한 .BinExport 형식으로 Ghidra 디스 어셈블리를 내보낼 수있는 확장과 함께 제공됩니다.

필수 소프트웨어

Ghidra 확장 프로그램 설치

BinDiff를 설치 한 후 “BinExport”를 찾습니다. 확장자를 설치합니다.

기본값은

  • Windows : C:\Program Files\BinDiff\extra\ghidra
  • Linux : /opt/bindiff/extra/ghidra
  • macOS : /Applications/BinDiff/Extra/Ghidra

ghidra_BinExport.zip 파일의 경우 다른 Ghidra 확장 프로그램처럼 확장 프로그램을 설치할 수 있습니다.

  1. Ghidra를 시작한 다음 File를 선택합니다. | Install Extensions....
  2. + 버튼을 클릭하여 Add extension합니다.
  3. Select Extension 대화 상자에서 ghidra_BinExport.zip가 포함 된 디렉토리로 이동합니다.

  4. .zip을 선택합니다. 파일을 열고 OK

  5. 를 클릭합니다.

  6. 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 

설치 버전 확인

  1. Ghidra에서 File | Install Extensions....
  2. BinExport가 나열되고 올바른 Install Path

가 있는지 확인합니다. li>

호출

  1. Ghidra에서 프로젝트를 열거 나 새 프로젝트를 만듭니다.
  2. 아직 수행하지 않은 경우 내보낼 바이너리를 엽니 다. 코드 브라우저 도구를 사용하고 Ghidra의 초기 분석을 실행합니다. “공격적인 명령 찾기”옵션을 활성화하여 내보내기에서 더 나은 범위를 얻을 수 있습니다.
  3. 프로젝트보기에서 바이너리를 마우스 오른쪽 버튼으로 클릭하여 내보내기 및 선택 Export...
  4. 드롭 다운 목록에서 Binary BinExport (v2) for BinDiff
  5. 를 선택합니다.

  6. 선택 출력 파일의 경로입니다. 원래 파일 이름 일 수 있습니다. .BinExport가 추가됩니다.
  7. OK를 클릭합니다.

BinDiff 내 보낸 파일

내 보낸 파일을 비교하여 결과를 UI에 표시 할 수 있습니다.

  1. 위의 지침에 따라 두 개의 바이너리를 내 보냅니다. 다음 단계에서는 primary.BinExportsecondary.BinExport를 가정합니다.
  2. 명령 줄에서 BinDiff 엔진을 실행합니다. with

    bindiff primary.BinExport secondary.BinExport 

    현재 디렉토리에 primary_vs_secondary.BinDiff 파일이 생성됩니다. bindiff 명령은 시스템 경로에 있어야합니다.

  3. bindiff --ui 또는 운영 체제의 런처를 사용하세요.

  4. 새 작업 공간을 만들거나 기존 작업 공간을 엽니 다.

  5. Diffs | Add Existing Diff...를 선택합니다.

  6. , 2 단계에서 생성 한 primary_vs_secondary.BinDiff를 선택합니다.

  7. OK, Add. diff는 이제 왼쪽의 트리보기에 표시되며 두 번 클릭하여 열 수 있습니다.

  8. 일반적으로 BinDiff를 사용하여 일치하는 함수의 호출 그래프 또는 흐름 그래프를 표시합니다. .

오픈 소스

마지막으로 BinExport 확장 (및 IDA Pro 플러그인)은 오픈 소스이며 사용할 수 있습니다. GitHub 에서. v11 태그는 BinDiff 6에 해당합니다.

댓글

  • 감사합니다. ' IDA Pro에 대한 의존성을 제거하게되어 기쁩니다!

답변

Bindiff는 IDA의 플러그인이거나 독립형 일 수 있지만 바이너리를 비교하려면 여전히 IDA 데이터베이스가 필요합니다.

여기에 이미지 설명 입력

댓글

  • IDA를 설치하지 않고도 .idb를 열 수 있을지 의심 스럽습니다.
  • @ismael_akez : IDA없이 데이터베이스 파일을 생성 할 수 있나요?

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다