알 수없는 이진 데이터 형식을 디코딩하는 데 도움이되는 도구는 무엇입니까?
나는 Hex Workshop과 010 Editor가 모두 구조를 지원한다는 것을 알고 있습니다. 알려진 고정 형식의 경우 제한적으로 괜찮지 만, 특히 알 수없는 형식의 경우 더 복잡한 것은 사용하기 어렵습니다. 스크립팅 언어 또는 스크립팅 가능한 GUI 도구에 대한 모듈을 찾고있는 것 같습니다.
예를 들어, 제한된 알려진 정보 (아마도 매직 넘버)에서 데이터 블록 내에서 구조를 찾을 수 있기를 원합니다. 구조를 찾으면 알려진 길이와 오프셋 단어를 따라 다른 구조를 찾습니다. 그런 다음 의미가있는 곳에서 반복적으로 반복합니다.
제 꿈에서는 시스템에 이미 말한 내용을 기반으로 가능한 오프셋과 길이를 자동으로 식별 할 수도 있습니다!
답변
다음은 떠오르는 몇 가지 팁입니다.
경험상 대화 형 스크립팅 언어 (Python 사용)가 큰 도움이 될 수 있습니다. 바이너리 스트림과 몇 가지 간단한 알고리즘을 처리하는 간단한 프레임 워크를 작성할 수 있습니다. 그런 다음 바이너리를 가져와 다양한 것을 확인할 스크립트를 작성할 수 있습니다. 예를 들면 :
다양한 부분에 대한 통계 분석을 수행하십시오. 예를 들어 임의 데이터는이 부분이 아마도 압축 / 암호화되었음을 알려줍니다. 0은 부품 사이의 패딩을 의미 할 수 있습니다. 분산 된 0은 정수 값 또는 유니 코드 문자열 등을 의미 할 수 있습니다. 다양한 오프셋을 찾아보십시오. 바이너리의 일부를 2 바이트 또는 4 바이트 정수 또는 부동 소수점으로 변환하고 인쇄하여 의미가 있는지 확인하십시오. 데이터에서 반복되거나 매우 유사한 부분을 검색하는 몇 가지 함수를 작성하면 헤더를 쉽게 찾을 수 있습니다.
가능한 한 많은 문자열을 찾고 다른 인코딩 (c 문자열, 파스칼 문자열, utf8 / 16 등)을 시도하십시오. 이를위한 몇 가지 좋은 도구가 있습니다 (나는 Hex Workshop에 그런 도구가 있다고 생각합니다). 문자열은 많은 것을 알려줍니다.
행운을 빕니다!
답변
Mac OS X의 경우 제 iBored보다 훨씬 더 뛰어난 새롭고 훌륭한 도구가 있습니다. Synaliyze It! ( http://www.synalysis.net/ )
iBored에 비해 차단되지 않은 파일에 더 적합하며 스크립팅 가능성 (Lua 사용)을 포함하여 구조를 완벽하게 제어 할 수 있습니다. 또한 구조를 더 잘 시각화합니다.
답변
Tupni ; 내 지식으로는 Microsoft Research에서 직접 구할 수 없지만 유사한 프로그램 (아마도 오픈 소스)을 작성하려는 사람이 관심을 가질 수있는이 도구에 대한 문서가 있습니다.
Tupni : 입력 형식의 자동 리버스 엔지니어링 ( @ ACM 디지털 라이브러리 )
요약
최근 연구는 프로토콜 또는 파일 형식 사양의 자동 리버스 엔지니어링의 중요성을 확립했습니다. 그러나 이전 도구로 리버스 엔지니어링 된 형식은 보안 애플리케이션에 중요한 중요한 정보를 놓쳤습니다. 이 백서에서는 레코드 시퀀스, 레코드 유형 및 입력 제약을 포함한 풍부한 정보 세트로 입력 형식을 리버스 엔지니어링 할 수있는 도구 인 Tupni를 제시합니다. Tupni는 여러 입력에 대해 형식 사양을 일반화 할 수 있습니다. 우리는 Tupni의 프로토 타입을 구현하고 10 가지 형식으로 평가했습니다. 5 가지 파일 형식 (WMF, BMP, JPG, PNG 및 TIF)과 5 가지 네트워크 프로토콜 (DNS, RPC, TFTP, HTTP 및 FTP)입니다. Tupni는 테스트 입력에서 모든 레코드 시퀀스를 식별했습니다. 또한 여러 WMF 파일을 집계하여 Tupni는 WMF에 대한보다 완전한 형식 사양을 도출 할 수 있습니다. 또한 이전 리버스 엔지니어링 도구로는 불가능했던 제로 데이 취약성 서명 생성을 위해 제공하는 풍부한 정보를 사용하여 Tupni의 유용성을 시연합니다.
답변
최근에 출시 한 내 자신의 도구 인 “iBored”가이 작업의 일부를 수행 할 수 있습니다. 파일 시스템 형식 (UDF, HFS, ISO9660, FAT 등)을 시각화하고 디버깅하는 도구를 작성하고 검색, 복사 및 나중에 구조 및 템플릿 지원을 구현했습니다. 구조 지원은 매우 간단하며 템플릿은 구조를 동적으로 식별하는 방법입니다.
모든 것을 Visual BASIC 언어로 프로그래밍 할 수 있으므로 값을 테스트하고 특정 블록을 읽는 등 모든 작업을 수행 할 수 있습니다.
이 도구는 무료이며 모든 플랫폼 (Win, Mac, Linux)에서 작동하지만, 공유하기 위해 방금 공개 한 개인 도구이므로 문서화되어 있지 않습니다.
하지만 시도해보고 피드백을주고 싶다면 더 유용한 기능을 추가 할 수 있습니다.
나는 그것을 오픈 소스로 만들었지 만 REALbasic으로 작성 되었기 때문에 많은 사람들이 그러한 프로젝트에 참여할 것 같지 않습니다.
링크 : iBored 홈페이지
답변
나는 여전히 때때로 AXE, Advanced Hex Editor라는 오래된 16 진 편집기를 사용합니다. 지금은 인터넷에서 거의 사라진 것으로 보이지만 Google에서 여전히 찾을 수 있습니다. 내가 아는 마지막 버전은 3.4 버전 이었지만 실제로는 개인용 무료 버전 2.1 만 사용했습니다.
가장 흥미로운 기능이자 다양한 게임 및 그래픽 형식을 해독하는 데 가장 많이 사용했던 기능은 그래픽보기 모드입니다. 기본적으로 각 바이트가 색상 코드 픽셀로 변환 된 파일을 보여줍니다. 그리고 그렇게 간단하게 들리지만 때때로 리버스 엔지니어링 시도가 훨씬 쉬워졌습니다.
눈으로하는 것은 자동 분석을하는 것과는 정반대이며 그래픽 모드는 오프셋을 찾고 따르는 데 많이 사용되지 않을 것입니다.
최신 버전에는 사용자의 요구 사항 (스크립트, 정규성 파인더, 문법 생성기)에 맞는 것처럼 들리는 몇 가지 기능이 있지만 얼마나 좋은지 모르겠습니다.
답변
이 Hachoir 필드에 바이너리 형식을 구문 분석을위한 파이썬 라이브러리입니다, 다음 필드를 검색합니다. 일반적인 형식에 대한 많은 파서가 있지만 파일에 대한 자체 파서를 작성할 수도 있습니다 (예 : 바이너리 파일을 읽거나 쓰는 코드로 작업 할 때 일반적으로 디버깅 지원을 받기 위해 먼저 Hachoir 파서를 작성합니다). 하지만 지금은 프로젝트가 거의 비활성 상태 인 것 같습니다.