알 수없는 아카이브 파일을 찌르기 전에 무엇을 알아야합니까?

StackOverflow https://stackoverflow.com/questions/295711

  •  08-07-2019
  •  | 
  •  

문제

내가 플레이하는 게임은 모든 데이터를 .dat 파일로 저장합니다. 가 있었다 일부 작업 사람들이 파일을 검사하는 데 수행됩니다. 일부도 있습니다 기존 도구, 그러나 나는 그들의 현재 상태에 대해 잘 모르겠습니다. 나는 데이터를 직접 찌르는 것이 재미있을 것이라고 생각하지만, 나는 이전에 이와 같은 것을 훨씬 덜 조사하려고 시도한 적이 없다.

헤드 플러스 먼저에 데이터 추출 목적으로 파일 형식을 검사하는 것에 대해 알아야 할 사항이 있습니까?

편집 : 파일 형식을 검사하는 것이 흥미로워 보이기 때문에 매우 일반적인 팁을 원합니다. 파일 X를 가져 와서 학습 문제에 접근하는 방법을 배우고 싶습니다.

도움이 되었습니까?

해결책

  1. 당신은 너무 멀리 가기 전에 16 진 편집자를 원할 것입니다. 원시 데이터를 글꼴 메모장 (또는 텍스트 편집기)에서 큰 빈 블록 대신 숫자로 볼 수 있습니다.
  2. 보유한 아카이브 추출기 (예 : Zip, 7Z, RAR, GZ, TAR 등)에서 개방하여 이름이 바뀌는 파일 형식인지 확인하십시오 (.pk3은 그와 비슷합니다).
  3. 파일 내 어딘가에 알려진 파일 형식의 헤더를 찾으십시오. 이는 데이터의 특정 부분이 저장되는 위치를 발견하는 데 도움이됩니다 (즉, "IPNG"를 검색하여 (압축되지 않은) PNG 파일을 찾으십시오).
  4. 특정 데이터가 저장된 위치를 찾으면 위치와 길이를 기록하고 파일의 시작 부분 근처에 해당 값 중 하나와 동일한 숫자를 찾을 수 있는지 확인하십시오. 데이터.
  5. 때때로 당신은 단지 특정 가치가 의미하는 바를 추측하거나 직관해야하며, 당신이 틀렸다면 계속 움직입니다. 당신이 그것에 대해 할 수있는 일은 많지 않습니다.
  6. 나는 그것을 발견했다 http://www.wotsit.org .dat 파일 내에서 헤더를 찾는 데 도움이되는 알려진 파일 유형 형식에 특히 유용합니다.

다른 팁

먼저 파일을 백업하십시오. 당신이 할 수있는 피해의 양을 제한하면, Ed가 제안한대로 주위를 찌르십시오.

담당자 수준을 살펴보면 16 진수, 엔지니어, 다양한 데이터 유형에 대한 표현 및 약간 불필요한 기본 프라이머를 추측합니다. 데이터를 16 진로 보여줄 수있는 좋은 도구는 물론 데이터 구조에 대한 복잡한 가정을 테스트하기 위해 빠른 스크립트를 작성하는 기능과 마찬가지로 필수적입니다. 이 모든 것이 당신에게 분명해야하지만 다른 사람을 도울 수 있으므로 언급 할 것이라고 생각했습니다.

내용을 제어 할 수없는 파일 형식을 공격하는 가장 좋은 방법 중 하나는 차별적 접근 방식을 취하는 것입니다. 파일을 저장하고 작고 제어 된 변경을 수행하고 다시 저장하십시오. 파일의 이진 비교를 수행하여 차이점을 찾으십시오 - 바람직하게는 인서트 및 삭제를 감지 할 수있는 도구를 사용하십시오. 암호화 된 파일을 다루는 경우 작은 변경으로 인해 큰 차이가 발생합니다. 압축 된 경우 차이가 국한되지 않습니다. 파일 형식이 사소한 경우 상태의 간단한 변경으로 인해 파일이 간단한 변경이 발생합니다.

또 다른 것은 일반적인 압축 기술 중 일부를보고 Zip과 Gzip을보고 "서명"을 배우는 것입니다. 이러한 형식의 대부분은 "자체 식별"이므로 압축 압축을 시작할 때 작업중 인이 이해하는 형식으로 빠른 정신 검사를 수행 할 수 있습니다.

암호화를 제외하고 아카이브 파일 형식은 기본적으로 일종의 인덱싱 메커니즘 (디렉토리 또는 정렬)이며 인덱스의 포인터를 통해 아카이브 내에서 해당 요소를 찾는 방법입니다.

표준 압축 알고리즘의 유비쿼터스로 인해 대부분의 블록이 시작되는 위치를 찾아 지수 또는 목차를 찾아 내려고하는 문제입니다.

일부는 인덱스를 한 지점 (파일 시스템과 마찬가지로)에 모두 가지고 있으며, 다른 일부는 단순히 아카이브 내의 각 요소를 아이덴티티 정보로 앞에 놓을 것입니다. 그러나 결국 어딘가에 한 블록에서 다른 블록으로 오프셋에 대한 정보가 있습니다. 데이터 유형에 대한 정보가 있습니다 (예 : GIF 파일을 저장하는 경우 GIF도 서명도 있습니다) 등.

파일 내에서 사냥하려는 패턴입니다.

어떻게 든 동일한 형식을 사용하여 두 가지 버전의 데이터를 손에 넣을 수 있다면 좋을 것입니다. 예를 들어, 게임에서는 CD와 새로운 패치 버전에서 초기 버전을 얻을 수 있습니다. 이것들은 실제로 원하는 정보를 강조 할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top