C:\Windows\assembly\NativeImages_v4.0.30319_64
에있는 *.ni.dll.aux
개의 파일 형식 (데이터 레이아웃)은 무엇입니까? 이 파일들은 ngen.exe
에 의해 생성 된 보조 파일이라는 것을 알고 있습니다. 어떤 데이터에 포함되어 있습니까?`* .ni.dll.aux` 파일의 형식은 무엇입니까?
22
A
답변
2
분석 결과 상당히 간단한 형식으로 나타났습니다 (Hans Passant가 지적했듯이). 파일 수준, 레코드 수준 및 데이텀 수준 (이는 명확성을 위해 사용하는 임의의 용어입니다)의 3 가지 수준에서 길이 단어가 오는 형식 단어가 있습니다. 여기
[email protected]:~/stackoverflow/17681514$ ./job.py System.Net.ni.dll.aux
00000005 (00000204): 0b000000bc0000000d000000...00000000000000000000cccc
0000000b (000000bc): 0d0000005000000053797374...00000000000000000000cccc
0000000d: (00000050) 'System.Net, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a\x00\xcc\xcc'
00000007: (00000004) '\t\x11\x00\x00'
00000002: (00000008) '\x00i,\x03c]\xcd\x01'
00000008: (00000014) '\xf3\xd8#\x08\xf7\x08\x9a$1\x11\xb8\x18Rv\[email protected]\xa1y\xb2.'
0000000a: (00000024) '\x011.0.23-106002268\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcc\xcc'
00000004 (00000098): 010000004c0000006d73636f...00000000000000000000cccc
00000001: (0000004c) 'mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089\x00'
00000003: (00000010) '\x9d\xa5\xbb3\xcd\x1c4\xb7\x85\x1c\x08\x8f\x0c\xf7I\xcc'
0000000a: (00000024) '\x011.0.23-106002119\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcc\xcc'
00000004 (00000098): 010000004c00000053797374...00000000000000000000cccc
00000001: (0000004c) 'System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089\x00\xcc\xcc'
00000003: (00000010) '\xe30[\xdb\xd0>\xf9\x19\x05\x1a\xa7\xf2x:\xc3*'
0000000a: (00000024) '\x011.0.23-106003331\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcc\xcc'
이 (점진적 개발) 스크립트입니다 위의 덤프 :
이
은 개요입니다[email protected]:~/stackoverflow/17681514$ cat job.py
#!/usr/bin/python
import sys, os, struct
def dump(infile):
data = read(infile)
filelength = len(data)
filetype, length, data = next(data)
assert filelength == length + 8
print '%08x (%08x): %s' % (filetype, length, snippet(data))
lengthcheck = 8
while data:
recordtype, recordlength, data = next(data)
lengthcheck += 8 + recordlength
#debug('remaining data: %s' % snippet(data))
record, data = data[:recordlength], data[recordlength:]
print ' %08x (%08x): %s' % (recordtype, recordlength, snippet(record))
recordcheck = 0 # not 8 because record header was already not counted
while record:
subrecordtype, subrecordlength, record = next(record)
recordcheck += 8 + subrecordlength
datum, record = record[:subrecordlength], record[subrecordlength:]
print ' %08x: (%08x) %s' % (subrecordtype, subrecordlength, repr(datum))
assert recordcheck == recordlength
assert lengthcheck == filelength
def next(data):
'each chunk is a type word followed by a length word'
if not data:
typeword, length = 0, 0
elif len(data) > 16:
typeword = struct.unpack('<I', data[:4])[0]
length = struct.unpack('<I', data[4:8])[0]
else:
raise Exception('Invalid data length %d' % len(data))
return typeword, length, data[8:]
def read(filename):
input = open(filename, 'rb')
data = input.read()
input.close()
return data
def snippet(data):
snippet = data[:12].encode('hex')
if len(data) > 12:
snippet += '...'
if len(data) > 24:
snippet += data[-12:].encode('hex')
return snippet
def debug(message):
if __debug__:
if message:
print >>sys.stderr, message
return True
if __name__ == '__main__':
for infile in sys.argv[1:]:
dump(infile)
각 레코드는 버전 번호로 표시되는 subrecord 형 0xa는있다 일종의. 서브 레코드 유형 0x3은 길이로 판단하는 GUID 일 수 있습니다. 유형 0x1 및 0xd는 설명 적입니다. 어떤 서브 레코드 유형 0x7과 0x2가 될지 전혀 모른다. 아마도 0x7은 일치하는 .dll 로의 32 비트 오프셋이지만, 0x2 유형의 64 비트 숫자는 특별히 나에게 아무 것도 제안하지 않습니다. 유형 0x8, 20 바이트 길이의 해시 유형 일 수 있습니다. 다른 사람들이 빈칸을 채울 수 있습니다.
문자열 값은 0x0과 0xcccc로 끝납니다. 레코드 유형 0xa는 대부분 문자열 데이터이지만 앞에 0x1 바이트가 있고 고정 길이가 0x24이므로 추가 0x0s가 채워집니다. 모든 레코드 유형이 아닌 다른 레코드 유형도 0xcccc로 끝납니다.
파일은 "index.of dll.aux"에 대한 구글 검색에 의해 얻어, 여기에 발견되었다 : http://www.badelement.co.uk/Movies/Storage/Win-7-Pro_64/Windows/assembly/NativeImages_v4.0.30319_64/System.Net/d79a634a4d873717e2dab52d827ba985/
관련 문제
- 1. .vimrc 파일의 형식은 무엇입니까?
- 2. .h 파일의 표준 형식은 무엇입니까?
- 3. customs.json 구성 파일의 형식은 무엇입니까?
- 4. 국제화 파일의 파일 형식은 무엇입니까?
- 5. logstash 설정 파일의 형식은 무엇입니까
- 6. 이 구성 파일의 형식은 무엇입니까?
- 7. iTunes Artwork 파일의 형식은 무엇입니까?
- 8. 어셈블러 NASM 파일의 형식은 무엇입니까?
- 9. 압축되지 않은 MP3 파일의 형식은 무엇입니까?
- 10. IKVM 용 Remap XML 파일의 형식은 무엇입니까?
- 11. SSIS에서 .CSV 파일의 원본 형식은 무엇입니까
- 12. `.bzr.log` 파일의 형식은 문서화되어 있습니까?
- 13. 인기있는 비디오 형식은 무엇입니까?
- 14. OpenOffice 사전의 형식은 무엇입니까?
- 15. 이 데이터베이스의 형식은 무엇입니까?
- 16. 다른 개발 플랫폼에서 지역화 된 리소스 파일의 표준 형식은 무엇입니까?
- 17. selenium python에서 firefox 환경 설정을 설정하기위한 .tar.gz 파일의 형식은 무엇입니까?
- 18. ZIP 파일의 번들 하위 폴더의 올바른 이름 형식은 무엇입니까?
- 19. DNSCMD 명령으로 생성 된 dns 파일의 인코딩 형식은 무엇입니까
- 20. 확장자가 .tmp 인 스풀 파일의 파일 형식은 무엇입니까?
- 21. XML 파일의 날짜/시간에 사용할 올바른 형식은 무엇입니까?
- 22. .NET 프로젝트 소스 코드 파일의 MIME 형식은 무엇입니까?
- 23. R이 목록 목록을 읽을 수 있도록 외부 파일의 형식은 무엇입니까?
- 24. .dav 파일의 파일 형식은 무엇입니까/Java에서 .dav 파일을 읽는 방법
- 25. Xcode Instruments .trace 파일을 읽으려고합니다. .trace 파일의 파일 형식은 무엇입니까?
- 26. 나머지 XML 파일의 형식은 어떻게 설정합니까?
- 27. grails의 URL 형식은 무엇입니까?
- 28. HttpBrowserCapabilities.MinorVersion이 반환하는 형식은 무엇입니까?
- 29. org.atmosphere.spring.SpringInjector의 형식은 무엇입니까
- 30. 이 형식은 무엇입니까?
, 그 안에 많은 데이터의 침에 대한 모든 종속 어셈블리 단지 목록이 아니다 마다. 이것은 어디에서도 문서화되지 않았으며 프로필 유도 최적화와 같은 .NET 4.5 최적화와 관련이있을 수 있습니다. 어떤 문제를 해결하려고합니까? –
오프 주제가 아닌가요? – dhein