2013-06-04 1 views
0

현재 .DLL 라이브러리에서 일부 데이터를 추출하려고합니다. 파일 구조를 알아 냈습니다 (0x3c00에서 시작하여 zlib로 압축 된 1039 개의 데이터 블록이 있음). , 마지막 하나는 뚱뚱한 테이블). fat 테이블 자체는 1038 개의 블록 (8 바이트 + base64 인코딩 된 문자열 - 파일 이름)으로 나뉩니다. 지금까지 본 바이트 5는 파일 이름의 길이입니다..DLL에서 데이터 추출 : 알 수없는 파일 오프셋

내 문제는 바이트 1-4가 사용되는 것을 이해할 수없는 것입니다. 내 첫 번째 추측은 .DLL 내부의 파일 블록을 찾기위한 오프셋 (주로 값이 전체적으로 증가하기 때문에 주로 발생합니다. 표)는, 그러나, 예를 들어,이 경우, 최초의 "블록"이다 : 30 00 00 00

  • 를 Base64 인코딩 파일명 : 59 해야하는

    1. 오프셋 : 2E 78 00 00
    2. 파일명 길이 6D 46 30 64 47 78 6C 58 32 6C 75 64 47 56 79 5A 6D 46 6A 5A 56 78 42 59 33 52 70 64 6D 56 51 5A 58 4A 72 63 31 4E 6F 62 33 63 75 59 77 3D 3D

    아직 이전에 말했듯이 블록 자체는 0x3c00이므로 상황이 맞지 않습니다. 두 번째 블록 (0x3f0b부터 시작, 오프셋은 0x167e라고 가정)에 대해서도 동일합니다.

    아이디어가 있습니까?

  • 답변

    0

    어쨌든 롤

    을 내 자신의 질문에 대답, 그 숫자 은 첫 번째는 어떤 임의의 번호에서 대신보다 첫째의 실제 위치에서 시작한다는 사실을 제외하고 파일 블록의 실제 오프셋입니다 블록. 그 외에도 오프셋의 각 커플 간의 차이는 해당 블록의 길이와 일치합니다.

    관련 문제