在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)
每個記錄具有這似乎是一個版本號的子記錄類型是0xA各種各樣的。子記錄類型0x3可能是一個GUID,只是根據其長度來判斷。類型0x1和0xd是描述性的。我不知道什麼subrecord類型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. jenkins歸檔文件 - 格式是什麼?
- 3. 什麼是Iphone幫助文件格式
- 4. 什麼是AudioStreamBasicDescription爲m4a文件格式
- 5. 什麼是製作文件格式
- 6. LVM配置文件是什麼格式?
- 7. 什麼是配置文件的最佳文件格式?
- 8. 這是什麼ini文件的文件格式?
- 9. 什麼是.NET PDB文件的格式(模式)?
- 10. Express'req.params的格式是什麼?
- 11. Wavefront .obj文件的規格是什麼?
- 12. InDesign創建的iPad雜誌文件的格式是什麼
- 13. manage.py的django配置文件的格式是什麼?
- 14. 我的訓練數據文件的格式是什麼?
- 15. IKVM的Remap XML文件的格式是什麼?
- 16. NOVICE SQL表示表格的純文本文件的格式是什麼?
- 17. 什麼是格式化最簡單的Excel文件格式包括
- 18. 什麼是JSch的關鍵文件格式?
- 19. Android - 音樂文件的格式是什麼?
- 20. 什麼是3D結構最簡單的文件格式?
- 21. 語言文件的最佳格式是什麼?
- 22. 什麼是文件/終端輸出格式的PHP語法?
- 23. 這是什麼圖像文件的格式?
- 24. 什麼是最小的音頻文件格式?
- 25. 什麼是VisualSVN存儲庫中的「格式」文件?
- 26. 什麼是json文件Javascript的正確格式?
- 27. KML文件中使用的時間格式是什麼?
- 28. 什麼.xlsx文件格式是這樣的?
- 29. 什麼是推薦引擎的文件輸入格式?
- 30. 什麼是最好的文件格式上傳到MongoDB
沒有太多的話,只是一個數據的吐了所有相關組件的列表每。這在任何地方都沒有記錄,可能與.NET 4.5優化有關,如配置文件指導優化。你想解決什麼問題? –
這不是題外話? – dhein