pedump 0.6.0 → 0.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -261,7 +261,7 @@ class PEdump
261
261
 
262
262
  # http://ntcore.com/files/richsign.htm
263
263
  class RichHdr < String
264
- attr_accessor :offset, :key # xor key
264
+ attr_accessor :offset, :skip, :key # xor key
265
265
 
266
266
  class Entry < Struct.new(:version,:id,:times)
267
267
  def inspect
@@ -270,8 +270,21 @@ class PEdump
270
270
  end
271
271
 
272
272
  def self.from_dos_stub stub
273
+ #stub.hexdump
273
274
  key = stub[stub.index('Rich')+4,4]
274
275
  start_idx = stub.index(key.xor('DanS'))
276
+ skip = 0
277
+ if start_idx
278
+ skip = 4
279
+ else
280
+ PEdump.logger.warn "[?] cannot find rich_hdr start_idx, using heuristics"
281
+ start_idx = stub.index("$\x00\x00\x00\x00\x00\x00\x00")
282
+ unless start_idx
283
+ PEdump.logger.warn "[?] heuristics failed :("
284
+ return nil
285
+ end
286
+ start_idx += 8
287
+ end
275
288
  end_idx = stub.index('Rich')+8
276
289
  if stub[end_idx..-1].tr("\x00",'') != ''
277
290
  t = stub[end_idx..-1]
@@ -279,14 +292,16 @@ class PEdump
279
292
  PEdump.logger.error "[!] non-zero dos stub after rich_hdr: #{t.inspect}"
280
293
  return nil
281
294
  end
295
+ #stub[start_idx, end_idx-start_idx].hexdump
282
296
  RichHdr.new(stub[start_idx, end_idx-start_idx]).tap do |x|
283
297
  x.key = key
284
298
  x.offset = stub.offset + start_idx
299
+ x.skip = skip
285
300
  end
286
301
  end
287
302
 
288
303
  def dexor
289
- self[4..-9].sub(/\A(#{Regexp::escape(key)}){3}/,'').xor(key)
304
+ self[skip..-9].sub(/\A(#{Regexp::escape(key)}){3}/,'').xor(key)
290
305
  end
291
306
 
292
307
  def decode
@@ -382,6 +397,13 @@ class PEdump
382
397
  def va2file va, h={}
383
398
  return nil if va.nil?
384
399
 
400
+ va0 = va # save for log output of original addr
401
+ if pe?
402
+ # most common case, do nothing
403
+ elsif te?
404
+ va = va - te_shift()
405
+ end
406
+
385
407
  sections.each do |s|
386
408
  if (s.VirtualAddress...(s.VirtualAddress+s.VirtualSize)).include?(va)
387
409
  offset = va - s.VirtualAddress
@@ -413,9 +435,9 @@ class PEdump
413
435
  # TODO: not all VirtualAdresses == 0 case
414
436
 
415
437
  if h[:quiet]
416
- logger.debug "[?] can't find file_offset of VA 0x#{va.to_i.to_s(16)} (quiet=true)"
438
+ logger.debug "[?] can't find file_offset of VA 0x#{va0.to_i.to_s(16)} (quiet=true)"
417
439
  else
418
- logger.error "[?] can't find file_offset of VA 0x#{va.to_i.to_s(16)}"
440
+ logger.error "[?] can't find file_offset of VA 0x#{va0.to_i.to_s(16)}"
419
441
  end
420
442
  nil
421
443
  end
@@ -546,6 +568,8 @@ class PEdump
546
568
  pe_imports(f)
547
569
  elsif ne(f)
548
570
  ne(f).imports
571
+ else
572
+ []
549
573
  end
550
574
  end
551
575
 
@@ -633,7 +657,7 @@ class PEdump
633
657
  nil
634
658
  else
635
659
  hint = f.read(2).unpack('v').first
636
- name = f.gets("\x00").chomp("\x00")
660
+ name = f.gets("\x00").to_s.chomp("\x00")
637
661
  if !name.empty? && name !~ GOOD_FUNCTION_NAME_RE
638
662
  n_bad_names += 1
639
663
  if n_bad_names > MAX_ERRORS
@@ -1,5 +1,6 @@
1
1
  require 'pedump'
2
2
  require 'pedump/packer'
3
+ require 'pedump/rich'
3
4
  require 'pedump/version_info'
4
5
  require 'optparse'
5
6
 
@@ -798,10 +799,12 @@ class PEdump::CLI
798
799
 
799
800
  def dump_rich_hdr data
800
801
  if decoded = data.decode
801
- puts " LIB_ID VERSION TIMES_USED "
802
+ puts " ID VER COUNT DESCRIPTION"
802
803
  decoded.each do |row|
803
- printf " %5d %2x %7d %4x %7d %3x\n",
804
- row.id, row.id, row.version, row.version, row.times, row.times
804
+ # printf " %5d %4x %7d %4x %12d %8x\n",
805
+ # row.id, row.id, row.version, row.version, row.times, row.times
806
+ printf " %4x %4x %12d %s\n",
807
+ row.id, row.version, row.times, ::PEdump::RICH_IDS[(row.id<<16) + row.version]
805
808
  end
806
809
  else
807
810
  puts "# raw:"
@@ -15,7 +15,15 @@ class PEdump::Loader
15
15
 
16
16
  # shortcuts
17
17
  alias :pe :pe_hdr
18
- def ep; @pe_hdr.ioh.AddressOfEntryPoint; end
18
+
19
+ def ep
20
+ if @pe_hdr
21
+ @pe_hdr.try(:ioh).try(:AddressOfEntryPoint)
22
+ elsif @te_hdr
23
+ @te_hdr.AddressOfEntryPoint - @delta
24
+ end
25
+ end
26
+
19
27
  def ep= v; @pe_hdr.ioh.AddressOfEntryPoint=v; end
20
28
 
21
29
  ########################################################################
@@ -23,12 +31,24 @@ class PEdump::Loader
23
31
  ########################################################################
24
32
 
25
33
  def initialize io = nil, params = {}
34
+ # @delta is for EFI TE loading, based on https://github.com/gdbinit/TELoader/blob/master/teloader.cpp
35
+ @delta = 0
26
36
  @pedump = PEdump.new(io, params)
27
37
  if io
28
38
  @mz_hdr = @pedump.mz
29
39
  @dos_stub = @pedump.dos_stub
30
40
  @pe_hdr = @pedump.pe
31
- @image_base = params[:image_base] || @pe_hdr.try(:ioh).try(:ImageBase) || 0
41
+ @te_hdr = @pedump.te
42
+
43
+ @image_base = params[:image_base]
44
+ if @pe_hdr
45
+ @image_base ||= @pe_hdr.try(:ioh).try(:ImageBase)
46
+ elsif @te_hdr
47
+ @image_base ||= @te_hdr.ImageBase
48
+ @delta = @pedump.te_shift
49
+ end
50
+ @image_base ||= 0
51
+
32
52
  load_sections @pedump.sections, io
33
53
  end
34
54
  @find_limit = params[:find_limit] || DEFAULT_FIND_LIMIT
@@ -38,7 +58,7 @@ class PEdump::Loader
38
58
  if section_hdrs.is_a?(Array)
39
59
  @sections = section_hdrs.map do |x|
40
60
  raise "unknown section hdr: #{x.inspect}" unless x.is_a?(PEdump::IMAGE_SECTION_HEADER)
41
- Section.new(x, :deferred_load_io => f, :image_base => @image_base )
61
+ Section.new(x, :deferred_load_io => f, :image_base => @image_base, :delta => @delta )
42
62
  end
43
63
  if f.respond_to?(:seek) && f.respond_to?(:read)
44
64
  #
@@ -249,10 +269,12 @@ class PEdump::Loader
249
269
  def names
250
270
  return @names if @names
251
271
  @names = {}
252
- if oep = @pe_hdr.try(:ioh).try(:AddressOfEntryPoint)
253
- oep += @image_base
254
- @names[oep] = 'start'
272
+
273
+ oep = ep()
274
+ if oep
275
+ @names[oep + @image_base] = 'start'
255
276
  end
277
+
256
278
  _parse_imports
257
279
  _parse_exports
258
280
  #TODO: debug info
@@ -10,15 +10,16 @@ class PEdump::Loader
10
10
  @hdr = x.dup
11
11
  end
12
12
  @data = EMPTY_DATA.dup
13
+ @delta = args[:delta] || 0
13
14
  @deferred_load_io = args[:deferred_load_io]
14
- @deferred_load_pos = args[:deferred_load_pos] || (@hdr && @hdr.PointerToRawData)
15
+ @deferred_load_pos = args[:deferred_load_pos] || (@hdr && (@hdr.PointerToRawData - @delta))
15
16
  @deferred_load_size = args[:deferred_load_size] || (@hdr && @hdr.SizeOfRawData)
16
17
  @image_base = args[:image_base] || 0
17
18
  end
18
19
 
19
20
  def name; @hdr.Name; end
20
- def va ; @hdr.VirtualAddress + @image_base; end
21
- def rva ; @hdr.VirtualAddress; end
21
+ def va ; @hdr.VirtualAddress + @image_base - @delta; end
22
+ def rva ; @hdr.VirtualAddress - @delta; end
22
23
  def vsize; @hdr.VirtualSize; end
23
24
  def flags; @hdr.Characteristics; end
24
25
  def flags= f; @hdr.Characteristics= f; end
@@ -51,6 +52,7 @@ class PEdump::Loader
51
52
  @data.size > 0 ? @data.size.to_s(16) : (@deferred_load_io ? "<defer>" : 0)
52
53
  ]
53
54
  r << (" dlpos=%8x" % @deferred_load_pos) if @deferred_load_pos
55
+ r << (" delta=%3x" % @delta) if @delta != 0
54
56
  r << ">"
55
57
  end
56
58
  end
@@ -0,0 +1,562 @@
1
+ class PEdump
2
+ # data from https://raw.githubusercontent.com/dishather/richprint/master/comp_id.txt
3
+ RICH_IDS = {
4
+ 0x00010000 => "[---] Unmarked objects",
5
+ 0x00000000 => "[---] Unmarked objects (old)",
6
+ 0x01047086 => "[ C ] VS2019 v16.6.2 build 28806",
7
+ 0x01037086 => "[ASM] VS2019 v16.6.2 build 28806",
8
+ 0x01057086 => "[C++] VS2019 v16.6.2 build 28806",
9
+ 0x00ff7086 => "[RES] VS2019 v16.6.2 build 28806",
10
+ 0x01027086 => "[LNK] VS2019 v16.6.2 build 28806",
11
+ 0x01007086 => "[EXP] VS2019 v16.6.2 build 28806",
12
+ 0x01017086 => "[IMP] VS2019 v16.6.2 build 28806",
13
+ 0x01047085 => "[ C ] VS2019 v16.6.0 build 28805",
14
+ 0x01037085 => "[ASM] VS2019 v16.6.0 build 28805",
15
+ 0x01057085 => "[C++] VS2019 v16.6.0 build 28805",
16
+ 0x00ff7085 => "[RES] VS2019 v16.6.0 build 28805",
17
+ 0x01027085 => "[LNK] VS2019 v16.6.0 build 28805",
18
+ 0x01007085 => "[EXP] VS2019 v16.6.0 build 28805",
19
+ 0x01017085 => "[IMP] VS2019 v16.6.0 build 28805",
20
+ 0x01046fc6 => "[ C ] VS2019 v16.5.5 build 28614",
21
+ 0x01036fc6 => "[ASM] VS2019 v16.5.5 build 28614",
22
+ 0x01056fc6 => "[C++] VS2019 v16.5.5 build 28614",
23
+ 0x00ff6fc6 => "[RES] VS2019 v16.5.5 build 28614",
24
+ 0x01026fc6 => "[LNK] VS2019 v16.5.5 build 28614",
25
+ 0x01006fc6 => "[EXP] VS2019 v16.5.5 build 28614",
26
+ 0x01016fc6 => "[IMP] VS2019 v16.5.5 build 28614",
27
+ 0x01046fc4 => "[ C ] VS2019 v16.5.2 build 28612 (*)",
28
+ 0x01036fc4 => "[ASM] VS2019 v16.5.2 build 28612 (*)",
29
+ 0x01056fc4 => "[C++] VS2019 v16.5.2 build 28612 (*)",
30
+ 0x00ff6fc4 => "[RES] VS2019 v16.5.2 build 28612 (*)",
31
+ 0x01026fc4 => "[LNK] VS2019 v16.5.2 build 28612 (*)",
32
+ 0x01016fc4 => "[IMP] VS2019 v16.5.2 build 28612 (*)",
33
+ 0x01006fc4 => "[EXP] VS2019 v16.5.2 build 28612 (*)",
34
+ 0x01046fc3 => "[ C ] VS2019 v16.5.1 build 28611 (*)",
35
+ 0x01036fc3 => "[ASM] VS2019 v16.5.1 build 28611 (*)",
36
+ 0x01056fc3 => "[C++] VS2019 v16.5.1 build 28611 (*)",
37
+ 0x00ff6fc3 => "[RES] VS2019 v16.5.1 build 28611 (*)",
38
+ 0x01026fc3 => "[LNK] VS2019 v16.5.1 build 28611 (*)",
39
+ 0x01016fc3 => "[IMP] VS2019 v16.5.1 build 28611 (*)",
40
+ 0x01006fc3 => "[EXP] VS2019 v16.5.1 build 28611 (*)",
41
+ 0x01046fc2 => "[ C ] VS2019 v16.5.0 build 28610 (*)",
42
+ 0x01036fc2 => "[ASM] VS2019 v16.5.0 build 28610 (*)",
43
+ 0x01056fc2 => "[C++] VS2019 v16.5.0 build 28610 (*)",
44
+ 0x00ff6fc2 => "[RES] VS2019 v16.5.0 build 28610 (*)",
45
+ 0x01026fc2 => "[LNK] VS2019 v16.5.0 build 28610 (*)",
46
+ 0x01016fc2 => "[IMP] VS2019 v16.5.0 build 28610 (*)",
47
+ 0x01006fc2 => "[EXP] VS2019 v16.5.0 build 28610 (*)",
48
+ 0x01046e9f => "[ C ] VS2019 v16.4.6 build 28319 (*)",
49
+ 0x01036e9f => "[ASM] VS2019 v16.4.6 build 28319 (*)",
50
+ 0x01056e9f => "[C++] VS2019 v16.4.6 build 28319 (*)",
51
+ 0x00ff6e9f => "[RES] VS2019 v16.4.6 build 28319 (*)",
52
+ 0x01026e9f => "[LNK] VS2019 v16.4.6 build 28319 (*)",
53
+ 0x01006e9f => "[EXP] VS2019 v16.4.6 build 28319 (*)",
54
+ 0x01016e9f => "[IMP] VS2019 v16.4.6 build 28319 (*)",
55
+ 0x01046e9c => "[ C ] VS2019 v16.4.4 build 28316 (*)",
56
+ 0x01036e9c => "[ASM] VS2019 v16.4.4 build 28316 (*)",
57
+ 0x01056e9c => "[C++] VS2019 v16.4.4 build 28316 (*)",
58
+ 0x00ff6e9c => "[RES] VS2019 v16.4.4 build 28316 (*)",
59
+ 0x01026e9c => "[LNK] VS2019 v16.4.4 build 28316 (*)",
60
+ 0x01006e9c => "[EXP] VS2019 v16.4.4 build 28316 (*)",
61
+ 0x01016e9c => "[IMP] VS2019 v16.4.4 build 28316 (*)",
62
+ 0x01046e9b => "[ C ] VS2019 v16.4.3 build 28315",
63
+ 0x01036e9b => "[ASM] VS2019 v16.4.3 build 28315",
64
+ 0x01056e9b => "[C++] VS2019 v16.4.3 build 28315",
65
+ 0x00ff6e9b => "[RES] VS2019 v16.4.3 build 28315",
66
+ 0x01026e9b => "[LNK] VS2019 v16.4.3 build 28315",
67
+ 0x01006e9b => "[EXP] VS2019 v16.4.3 build 28315",
68
+ 0x01016e9b => "[IMP] VS2019 v16.4.3 build 28315",
69
+ 0x01046e9a => "[ C ] VS2019 v16.4.0 build 28314 (*)",
70
+ 0x01036e9a => "[ASM] VS2019 v16.4.0 build 28314 (*)",
71
+ 0x01056e9a => "[C++] VS2019 v16.4.0 build 28314 (*)",
72
+ 0x00ff6e9a => "[RES] VS2019 v16.4.0 build 28314 (*)",
73
+ 0x01026e9a => "[LNK] VS2019 v16.4.0 build 28314 (*)",
74
+ 0x01016e9a => "[IMP] VS2019 v16.4.0 build 28314 (*)",
75
+ 0x01006e9a => "[EXP] VS2019 v16.4.0 build 28314 (*)",
76
+ 0x01046dc9 => "[ C ] VS2019 v16.3.2 build 28105 (*)",
77
+ 0x01036dc9 => "[ASM] VS2019 v16.3.2 build 28105 (*)",
78
+ 0x01056dc9 => "[C++] VS2019 v16.3.2 build 28105 (*)",
79
+ 0x00ff6dc9 => "[RES] VS2019 v16.3.2 build 28105 (*)",
80
+ 0x01026dc9 => "[LNK] VS2019 v16.3.2 build 28105 (*)",
81
+ 0x01016dc9 => "[IMP] VS2019 v16.3.2 build 28105 (*)",
82
+ 0x01006dc9 => "[EXP] VS2019 v16.3.2 build 28105 (*)",
83
+ 0x01046d01 => "[ C ] VS2019 v16.2.3 build 27905 (*)",
84
+ 0x01036d01 => "[ASM] VS2019 v16.2.3 build 27905 (*)",
85
+ 0x01056d01 => "[C++] VS2019 v16.2.3 build 27905 (*)",
86
+ 0x00ff6d01 => "[RES] VS2019 v16.2.3 build 27905 (*)",
87
+ 0x01026d01 => "[LNK] VS2019 v16.2.3 build 27905 (*)",
88
+ 0x01016d01 => "[IMP] VS2019 v16.2.3 build 27905 (*)",
89
+ 0x01006d01 => "[EXP] VS2019 v16.2.3 build 27905 (*)",
90
+ 0x01046c36 => "[ C ] VS2019 v16.1.2 build 27702 (*)",
91
+ 0x01036c36 => "[ASM] VS2019 v16.1.2 build 27702 (*)",
92
+ 0x01056c36 => "[C++] VS2019 v16.1.2 build 27702 (*)",
93
+ 0x00ff6c36 => "[RES] VS2019 v16.1.2 build 27702 (*)",
94
+ 0x01026c36 => "[LNK] VS2019 v16.1.2 build 27702 (*)",
95
+ 0x01016c36 => "[IMP] VS2019 v16.1.2 build 27702 (*)",
96
+ 0x01006c36 => "[EXP] VS2019 v16.1.2 build 27702 (*)",
97
+ 0x01046b74 => "[ C ] VS2019 v16.0.0 build 27508",
98
+ 0x01036b74 => "[ASM] VS2019 v16.0.0 build 27508",
99
+ 0x01056b74 => "[C++] VS2019 v16.0.0 build 27508",
100
+ 0x00ff6b74 => "[RES] VS2019 v16.0.0 build 27508",
101
+ 0x01026b74 => "[LNK] VS2019 v16.0.0 build 27508",
102
+ 0x01006b74 => "[EXP] VS2019 v16.0.0 build 27508",
103
+ 0x01016b74 => "[IMP] VS2019 v16.0.0 build 27508",
104
+ 0x01046996 => "[ C ] VS2017 v15.9.11 build 27030 (*)",
105
+ 0x01036996 => "[ASM] VS2017 v15.9.11 build 27030 (*)",
106
+ 0x01056996 => "[C++] VS2017 v15.9.11 build 27030 (*)",
107
+ 0x00ff6996 => "[RES] VS2017 v15.9.11 build 27030 (*)",
108
+ 0x01026996 => "[LNK] VS2017 v15.9.11 build 27030 (*)",
109
+ 0x01016996 => "[IMP] VS2017 v15.9.11 build 27030 (*)",
110
+ 0x01006996 => "[EXP] VS2017 v15.9.11 build 27030 (*)",
111
+ 0x01046993 => "[ C ] VS2017 v15.9.7 build 27027 (*)",
112
+ 0x01036993 => "[ASM] VS2017 v15.9.7 build 27027 (*)",
113
+ 0x01056993 => "[C++] VS2017 v15.9.7 build 27027 (*)",
114
+ 0x00ff6993 => "[RES] VS2017 v15.9.7 build 27027 (*)",
115
+ 0x01026993 => "[LNK] VS2017 v15.9.7 build 27027 (*)",
116
+ 0x01016993 => "[IMP] VS2017 v15.9.7 build 27027 (*)",
117
+ 0x01006993 => "[EXP] VS2017 v15.9.7 build 27027 (*)",
118
+ 0x01046992 => "[ C ] VS2017 v15.9.5 build 27026 (*)",
119
+ 0x01036992 => "[ASM] VS2017 v15.9.5 build 27026 (*)",
120
+ 0x01056992 => "[C++] VS2017 v15.9.5 build 27026 (*)",
121
+ 0x00ff6992 => "[RES] VS2017 v15.9.5 build 27026 (*)",
122
+ 0x01026992 => "[LNK] VS2017 v15.9.5 build 27026 (*)",
123
+ 0x01016992 => "[IMP] VS2017 v15.9.5 build 27026 (*)",
124
+ 0x01006992 => "[EXP] VS2017 v15.9.5 build 27026 (*)",
125
+ 0x01046991 => "[ C ] VS2017 v15.9.4 build 27025 (*)",
126
+ 0x01036991 => "[ASM] VS2017 v15.9.4 build 27025 (*)",
127
+ 0x01056991 => "[C++] VS2017 v15.9.4 build 27025 (*)",
128
+ 0x00ff6991 => "[RES] VS2017 v15.9.4 build 27025 (*)",
129
+ 0x01026991 => "[LNK] VS2017 v15.9.4 build 27025 (*)",
130
+ 0x01016991 => "[IMP] VS2017 v15.9.4 build 27025 (*)",
131
+ 0x01006991 => "[EXP] VS2017 v15.9.4 build 27025 (*)",
132
+ 0x0104698f => "[ C ] VS2017 v15.9.1 build 27023 (*)",
133
+ 0x0103698f => "[ASM] VS2017 v15.9.1 build 27023 (*)",
134
+ 0x0105698f => "[C++] VS2017 v15.9.1 build 27023 (*)",
135
+ 0x00ff698f => "[RES] VS2017 v15.9.1 build 27023 (*)",
136
+ 0x0102698f => "[LNK] VS2017 v15.9.1 build 27023 (*)",
137
+ 0x0101698f => "[IMP] VS2017 v15.9.1 build 27023 (*)",
138
+ 0x0100698f => "[EXP] VS2017 v15.9.1 build 27023 (*)",
139
+ 0x0104686c => "[ C ] VS2017 v15.8.5 build 26732 (*)",
140
+ 0x0103686c => "[ASM] VS2017 v15.8.5 build 26732 (*)",
141
+ 0x0105686c => "[C++] VS2017 v15.8.5 build 26732 (*)",
142
+ 0x00ff686c => "[RES] VS2017 v15.8.5 build 26732 (*)",
143
+ 0x0102686c => "[LNK] VS2017 v15.8.5 build 26732 (*)",
144
+ 0x0101686c => "[IMP] VS2017 v15.8.5 build 26732 (*)",
145
+ 0x0100686c => "[EXP] VS2017 v15.8.5 build 26732 (*)",
146
+ 0x0104686a => "[ C ] VS2017 v15.8.9? build 26730 (*)",
147
+ 0x0103686a => "[ASM] VS2017 v15.8.9? build 26730 (*)",
148
+ 0x0105686a => "[C++] VS2017 v15.8.9? build 26730 (*)",
149
+ 0x00ff686a => "[RES] VS2017 v15.8.9? build 26730 (*)",
150
+ 0x0102686a => "[LNK] VS2017 v15.8.9? build 26730 (*)",
151
+ 0x0101686a => "[IMP] VS2017 v15.8.9? build 26730 (*)",
152
+ 0x0100686a => "[EXP] VS2017 v15.8.9? build 26730 (*)",
153
+ 0x01046869 => "[ C ] VS2017 v15.8.4 build 26729 (*)",
154
+ 0x01036869 => "[ASM] VS2017 v15.8.4 build 26729 (*)",
155
+ 0x01056869 => "[C++] VS2017 v15.8.4 build 26729 (*)",
156
+ 0x00ff6869 => "[RES] VS2017 v15.8.4 build 26729 (*)",
157
+ 0x01026869 => "[LNK] VS2017 v15.8.4 build 26729 (*)",
158
+ 0x01016869 => "[IMP] VS2017 v15.8.4 build 26729 (*)",
159
+ 0x01006869 => "[EXP] VS2017 v15.8.4 build 26729 (*)",
160
+ 0x01046866 => "[ C ] VS2017 v15.8.0 build 26726 (*)",
161
+ 0x01036866 => "[ASM] VS2017 v15.8.0 build 26726 (*)",
162
+ 0x01056866 => "[C++] VS2017 v15.8.0 build 26726 (*)",
163
+ 0x00ff6866 => "[RES] VS2017 v15.8.0 build 26726 (*)",
164
+ 0x01026866 => "[LNK] VS2017 v15.8.0 build 26726 (*)",
165
+ 0x01016866 => "[IMP] VS2017 v15.8.0 build 26726 (*)",
166
+ 0x01006866 => "[EXP] VS2017 v15.8.0 build 26726 (*)",
167
+ 0x01046741 => "[ C ] VS2017 v15.7.5 build 26433 (*)",
168
+ 0x01036741 => "[ASM] VS2017 v15.7.5 build 26433 (*)",
169
+ 0x01056741 => "[C++] VS2017 v15.7.5 build 26433 (*)",
170
+ 0x00ff6741 => "[RES] VS2017 v15.7.5 build 26433 (*)",
171
+ 0x01026741 => "[LNK] VS2017 v15.7.5 build 26433 (*)",
172
+ 0x01016741 => "[IMP] VS2017 v15.7.5 build 26433 (*)",
173
+ 0x01006741 => "[EXP] VS2017 v15.7.5 build 26433 (*)",
174
+ 0x0104673f => "[ C ] VS2017 v15.7.4 build 26431 (*)",
175
+ 0x0103673f => "[ASM] VS2017 v15.7.4 build 26431 (*)",
176
+ 0x0105673f => "[C++] VS2017 v15.7.4 build 26431 (*)",
177
+ 0x00ff673f => "[RES] VS2017 v15.7.4 build 26431 (*)",
178
+ 0x0102673f => "[LNK] VS2017 v15.7.4 build 26431 (*)",
179
+ 0x0101673f => "[IMP] VS2017 v15.7.4 build 26431 (*)",
180
+ 0x0100673f => "[EXP] VS2017 v15.7.4 build 26431 (*)",
181
+ 0x0104673e => "[ C ] VS2017 v15.7.3 build 26430 (*)",
182
+ 0x0103673e => "[ASM] VS2017 v15.7.3 build 26430 (*)",
183
+ 0x0105673e => "[C++] VS2017 v15.7.3 build 26430 (*)",
184
+ 0x00ff673e => "[RES] VS2017 v15.7.3 build 26430 (*)",
185
+ 0x0102673e => "[LNK] VS2017 v15.7.3 build 26430 (*)",
186
+ 0x0101673e => "[IMP] VS2017 v15.7.3 build 26430 (*)",
187
+ 0x0100673e => "[EXP] VS2017 v15.7.3 build 26430 (*)",
188
+ 0x0104673d => "[ C ] VS2017 v15.7.2 build 26429 (*)",
189
+ 0x0103673d => "[ASM] VS2017 v15.7.2 build 26429 (*)",
190
+ 0x0105673d => "[C++] VS2017 v15.7.2 build 26429 (*)",
191
+ 0x00ff673d => "[RES] VS2017 v15.7.2 build 26429 (*)",
192
+ 0x0102673d => "[LNK] VS2017 v15.7.2 build 26429 (*)",
193
+ 0x0101673d => "[IMP] VS2017 v15.7.2 build 26429 (*)",
194
+ 0x0100673d => "[EXP] VS2017 v15.7.2 build 26429 (*)",
195
+ 0x0104673c => "[ C ] VS2017 v15.7.1 build 26428 (*)",
196
+ 0x0103673c => "[ASM] VS2017 v15.7.1 build 26428 (*)",
197
+ 0x0105673c => "[C++] VS2017 v15.7.1 build 26428 (*)",
198
+ 0x00ff673c => "[RES] VS2017 v15.7.1 build 26428 (*)",
199
+ 0x0102673c => "[LNK] VS2017 v15.7.1 build 26428 (*)",
200
+ 0x0101673c => "[IMP] VS2017 v15.7.1 build 26428 (*)",
201
+ 0x0100673c => "[EXP] VS2017 v15.7.1 build 26428 (*)",
202
+ 0x01046614 => "[ C ] VS2017 v15.6.7 build 26132 (*)",
203
+ 0x01036614 => "[ASM] VS2017 v15.6.7 build 26132 (*)",
204
+ 0x01056614 => "[C++] VS2017 v15.6.7 build 26132 (*)",
205
+ 0x00ff6614 => "[RES] VS2017 v15.6.7 build 26132 (*)",
206
+ 0x01026614 => "[LNK] VS2017 v15.6.7 build 26132 (*)",
207
+ 0x01016614 => "[IMP] VS2017 v15.6.7 build 26132 (*)",
208
+ 0x01006614 => "[EXP] VS2017 v15.6.7 build 26132 (*)",
209
+ 0x01046613 => "[ C ] VS2017 v15.6.6 build 26131 (*)",
210
+ 0x01036613 => "[ASM] VS2017 v15.6.6 build 26131 (*)",
211
+ 0x01056613 => "[C++] VS2017 v15.6.6 build 26131 (*)",
212
+ 0x00ff6613 => "[RES] VS2017 v15.6.6 build 26131 (*)",
213
+ 0x01026613 => "[LNK] VS2017 v15.6.6 build 26131 (*)",
214
+ 0x01016613 => "[IMP] VS2017 v15.6.6 build 26131 (*)",
215
+ 0x01006613 => "[EXP] VS2017 v15.6.6 build 26131 (*)",
216
+ 0x01046611 => "[ C ] VS2017 v15.6.3 build 26129 (*)",
217
+ 0x01036611 => "[ASM] VS2017 v15.6.3 build 26129 (*)",
218
+ 0x01056611 => "[C++] VS2017 v15.6.3 build 26129 (*)",
219
+ 0x00ff6611 => "[RES] VS2017 v15.6.3 build 26129 (*)",
220
+ 0x01026611 => "[LNK] VS2017 v15.6.3 build 26129 (*)",
221
+ 0x01016611 => "[IMP] VS2017 v15.6.3 build 26129 (*)",
222
+ 0x01006611 => "[EXP] VS2017 v15.6.3 build 26129 (*)",
223
+ 0x01046610 => "[ C ] VS2017 v15.6.0 build 26128 (*)",
224
+ 0x01036610 => "[ASM] VS2017 v15.6.0 build 26128 (*)",
225
+ 0x01056610 => "[C++] VS2017 v15.6.0 build 26128 (*)",
226
+ 0x00ff6610 => "[RES] VS2017 v15.6.0 build 26128 (*)",
227
+ 0x01026610 => "[LNK] VS2017 v15.6.0 build 26128 (*)",
228
+ 0x01016610 => "[IMP] VS2017 v15.6.0 build 26128 (*)",
229
+ 0x01006610 => "[EXP] VS2017 v15.6.0 build 26128 (*)",
230
+ 0x010464eb => "[ C ] VS2017 v15.5.6 build 25835 (*)",
231
+ 0x010364eb => "[ASM] VS2017 v15.5.6 build 25835 (*)",
232
+ 0x010564eb => "[C++] VS2017 v15.5.6 build 25835 (*)",
233
+ 0x00ff64eb => "[RES] VS2017 v15.5.6 build 25835 (*)",
234
+ 0x010264eb => "[LNK] VS2017 v15.5.6 build 25835 (*)",
235
+ 0x010164eb => "[IMP] VS2017 v15.5.6 build 25835 (*)",
236
+ 0x010064eb => "[EXP] VS2017 v15.5.6 build 25835 (*)",
237
+ 0x010464ea => "[ C ] VS2017 v15.5.4 build 25834",
238
+ 0x010364ea => "[ASM] VS2017 v15.5.4 build 25834",
239
+ 0x010564ea => "[C++] VS2017 v15.5.4 build 25834",
240
+ 0x00ff64ea => "[RES] VS2017 v15.5.4 build 25834",
241
+ 0x010264ea => "[LNK] VS2017 v15.5.4 build 25834",
242
+ 0x010064ea => "[EXP] VS2017 v15.5.4 build 25834",
243
+ 0x010164ea => "[IMP] VS2017 v15.5.4 build 25834",
244
+ 0x010464e7 => "[ C ] VS2017 v15.5.2 build 25831 (*)",
245
+ 0x010364e7 => "[ASM] VS2017 v15.5.2 build 25831 (*)",
246
+ 0x010564e7 => "[C++] VS2017 v15.5.2 build 25831 (*)",
247
+ 0x00ff64e7 => "[RES] VS2017 v15.5.2 build 25831 (*)",
248
+ 0x010264e7 => "[LNK] VS2017 v15.5.2 build 25831 (*)",
249
+ 0x010164e7 => "[IMP] VS2017 v15.5.2 build 25831 (*)",
250
+ 0x010064e7 => "[EXP] VS2017 v15.5.2 build 25831 (*)",
251
+ 0x010463cb => "[ C ] VS2017 v15.4.5 build 25547 (*)",
252
+ 0x010363cb => "[ASM] VS2017 v15.4.5 build 25547 (*)",
253
+ 0x010563cb => "[C++] VS2017 v15.4.5 build 25547 (*)",
254
+ 0x00ff63cb => "[RES] VS2017 v15.4.5 build 25547 (*)",
255
+ 0x010263cb => "[LNK] VS2017 v15.4.5 build 25547 (*)",
256
+ 0x010163cb => "[IMP] VS2017 v15.4.5 build 25547 (*)",
257
+ 0x010063cb => "[EXP] VS2017 v15.4.5 build 25547 (*)",
258
+ 0x010463c6 => "[ C ] VS2017 v15.4.4 build 25542 (*)",
259
+ 0x010363c6 => "[ASM] VS2017 v15.4.4 build 25542 (*)",
260
+ 0x010563c6 => "[C++] VS2017 v15.4.4 build 25542 (*)",
261
+ 0x00ff63c6 => "[RES] VS2017 v15.4.4 build 25542 (*)",
262
+ 0x010263c6 => "[LNK] VS2017 v15.4.4 build 25542 (*)",
263
+ 0x010163c6 => "[IMP] VS2017 v15.4.4 build 25542 (*)",
264
+ 0x010063c6 => "[EXP] VS2017 v15.4.4 build 25542 (*)",
265
+ 0x010463a3 => "[ C ] VS2017 v15.3.3 build 25507 (*)",
266
+ 0x010363a3 => "[ASM] VS2017 v15.3.3 build 25507 (*)",
267
+ 0x010563a3 => "[C++] VS2017 v15.3.3 build 25507 (*)",
268
+ 0x00ff63a3 => "[RES] VS2017 v15.3.3 build 25507 (*)",
269
+ 0x010263a3 => "[LNK] VS2017 v15.3.3 build 25507 (*)",
270
+ 0x010163a3 => "[IMP] VS2017 v15.3.3 build 25507 (*)",
271
+ 0x010063a3 => "[EXP] VS2017 v15.3.3 build 25507 (*)",
272
+ 0x010463a2 => "[ C ] VS2017 v15.3 build 25506 (*)",
273
+ 0x010363a2 => "[ASM] VS2017 v15.3 build 25506 (*)",
274
+ 0x010563a2 => "[C++] VS2017 v15.3 build 25506 (*)",
275
+ 0x00ff63a2 => "[RES] VS2017 v15.3 build 25506 (*)",
276
+ 0x010263a2 => "[LNK] VS2017 v15.3 build 25506 (*)",
277
+ 0x010163a2 => "[IMP] VS2017 v15.3 build 25506 (*)",
278
+ 0x010063a2 => "[EXP] VS2017 v15.3 build 25506 (*)",
279
+ 0x010461b9 => "[ C ] VS2017 v15.0 build 25017 (*)",
280
+ 0x010361b9 => "[ASM] VS2017 v15.0 build 25017 (*)",
281
+ 0x010561b9 => "[C++] VS2017 v15.0 build 25017 (*)",
282
+ 0x00ff61b9 => "[RES] VS2017 v15.0 build 25017 (*)",
283
+ 0x010261b9 => "[LNK] VS2017 v15.0 build 25017 (*)",
284
+ 0x010161b9 => "[IMP] VS2017 v15.0 build 25017 (*)",
285
+ 0x010061b9 => "[EXP] VS2017 v15.0 build 25017 (*)",
286
+ 0x01045e97 => "[ C ] VS2015 UPD3.1 build 24215",
287
+ 0x01055e97 => "[C++] VS2015 UPD3.1 build 24215",
288
+ 0x01025e97 => "[LNK] VS2015 UPD3.1 build 24215",
289
+ 0x01005e97 => "[EXP] VS2015 UPD3.1 build 24215",
290
+ 0x01015e97 => "[IMP] VS2015 UPD3.1 build 24215",
291
+ 0x01045e95 => "[ C ] VS2015 UPD3 build 24213",
292
+ 0x01035e92 => "[ASM] VS2015 UPD3 build 24210",
293
+ 0x01055e95 => "[C++] VS2015 UPD3 build 24213",
294
+ 0x00ff5e92 => "[RES] VS2015 UPD3 build 24210",
295
+ 0x01025e95 => "[LNK] VS2015 UPD3 build 24213",
296
+ 0x01005e95 => "[EXP] VS2015 UPD3 build 24213",
297
+ 0x01015e95 => "[IMP] VS2015 UPD3 build 24213",
298
+ 0x01045e92 => "[ C ] VS2015 Update 3 [14.0] build 24210 (*)",
299
+ 0x01055e92 => "[C++] VS2015 Update 3 [14.0] build 24210 (*)",
300
+ 0x01025e92 => "[LNK] VS2015 Update 3 [14.0] build 24210 (*)",
301
+ 0x01015e92 => "[IMP] VS2015 Update 3 [14.0] build 24210 (*)",
302
+ 0x01005e92 => "[EXP] VS2015 Update 3 [14.0] build 24210 (*)",
303
+ 0x01045d6e => "[ C ] VS2015 UPD2 build 23918",
304
+ 0x01035d6e => "[ASM] VS2015 UPD2 build 23918",
305
+ 0x01055d6e => "[C++] VS2015 UPD2 build 23918",
306
+ 0x00ff5d6e => "[RES] VS2015 UPD2 build 23918",
307
+ 0x01025d6e => "[LNK] VS2015 UPD2 build 23918",
308
+ 0x01005d6e => "[EXP] VS2015 UPD2 build 23918",
309
+ 0x01015d6e => "[IMP] VS2015 UPD2 build 23918",
310
+ 0x01045bd2 => "[ C ] VS2015 UPD1 build 23506",
311
+ 0x01035bd2 => "[ASM] VS2015 UPD1 build 23506",
312
+ 0x01055bd2 => "[C++] VS2015 UPD1 build 23506",
313
+ 0x00ff5bd2 => "[RES] VS2015 UPD1 build 23506",
314
+ 0x01025bd2 => "[LNK] VS2015 UPD1 build 23506",
315
+ 0x01005bd2 => "[EXP] VS2015 UPD1 build 23506",
316
+ 0x01015bd2 => "[IMP] VS2015 UPD1 build 23506",
317
+ 0x010459f2 => "[ C ] VS2015 [14.0] build 23026",
318
+ 0x010359f2 => "[ASM] VS2015 [14.0] build 23026",
319
+ 0x010559f2 => "[C++] VS2015 [14.0] build 23026",
320
+ 0x00ff59f2 => "[RES] VS2015 [14.0] build 23026",
321
+ 0x010259f2 => "[LNK] VS2015 [14.0] build 23026",
322
+ 0x010059f2 => "[EXP] VS2015 [14.0] build 23026",
323
+ 0x010159f2 => "[IMP] VS2015 [14.0] build 23026",
324
+ 0x00e0527a => "[ C ] VS2013 Nobemver CTP [12.0] build 21114 (*)",
325
+ 0x00df527a => "[ASM] VS2013 Nobemver CTP [12.0] build 21114 (*)",
326
+ 0x00e1527a => "[C++] VS2013 Nobemver CTP [12.0] build 21114 (*)",
327
+ 0x00db527a => "[RES] VS2013 Nobemver CTP [12.0] build 21114 (*)",
328
+ 0x00de527a => "[LNK] VS2013 Nobemver CTP [12.0] build 21114 (*)",
329
+ 0x00dd527a => "[IMP] VS2013 Nobemver CTP [12.0] build 21114 (*)",
330
+ 0x00dc527a => "[EXP] VS2013 Nobemver CTP [12.0] build 21114 (*)",
331
+ 0x00e09eb5 => "[ C ] VS2013 UPD5 build 40629",
332
+ 0x00e19eb5 => "[C++] VS2013 UPD5 build 40629",
333
+ 0x00db9eb5 => "[RES] VS2013 Update 5 [12.0] build 40629 (*)",
334
+ 0x00de9eb5 => "[LNK] VS2013 UPD5 build 40629",
335
+ 0x00dc9eb5 => "[EXP] VS2013 UPD5 build 40629",
336
+ 0x00dd9eb5 => "[IMP] VS2013 UPD5 build 40629",
337
+ 0x00df9eb5 => "[ASM] VS2013 UPD5 build 40629",
338
+ 0x00e0797d => "[ C ] VS2013 UPD4 build 31101 (*)",
339
+ 0x00e1797d => "[C++] VS2013 UPD4 build 31101 (*)",
340
+ 0x00db797d => "[RES] VS2013 UPD4 build 31101 (*)",
341
+ 0x00de797d => "[LNK] VS2013 UPD4 build 31101 (*)",
342
+ 0x00dc797d => "[EXP] VS2013 UPD4 build 31101 (*)",
343
+ 0x00dd797d => "[IMP] VS2013 UPD4 build 31101 (*)",
344
+ 0x00df797d => "[ASM] VS2013 UPD4 build 31101 (*)",
345
+ 0x00e07803 => "[ C ] VS2013 UPD3 build 30723 (*)",
346
+ 0x00e17803 => "[C++] VS2013 UPD3 build 30723 (*)",
347
+ 0x00db7803 => "[RES] VS2013 UPD3 build 30723 (*)",
348
+ 0x00de7803 => "[LNK] VS2013 UPD3 build 30723 (*)",
349
+ 0x00dc7803 => "[EXP] VS2013 UPD3 build 30723 (*)",
350
+ 0x00dd7803 => "[IMP] VS2013 UPD3 build 30723 (*)",
351
+ 0x00df7803 => "[ASM] VS2013 UPD3 build 30723 (*)",
352
+ 0x00e07725 => "[ C ] VS2013 UPD2 build 30501",
353
+ 0x00e17725 => "[C++] VS2013 UPD2 build 30501",
354
+ 0x00db7725 => "[RES] VS2013 Update 2 [12.0] build 30501 (*)",
355
+ 0x00de7725 => "[LNK] VS2013 UPD2 build 30501",
356
+ 0x00dc7725 => "[EXP] VS2013 UPD2 build 30501",
357
+ 0x00dd7725 => "[IMP] VS2013 UPD2 build 30501",
358
+ 0x00df7725 => "[ASM] VS2013 UPD2 build 30501",
359
+ 0x00e07674 => "[ C ] VS2013 Update2 RC [12.0] build 30324 (*)",
360
+ 0x00df7674 => "[ASM] VS2013 Update2 RC [12.0] build 30324 (*)",
361
+ 0x00e17674 => "[C++] VS2013 Update2 RC [12.0] build 30324 (*)",
362
+ 0x00db7674 => "[RES] VS2013 Update2 RC [12.0] build 30324 (*)",
363
+ 0x00de7674 => "[LNK] VS2013 Update2 RC [12.0] build 30324 (*)",
364
+ 0x00dd7674 => "[IMP] VS2013 Update2 RC [12.0] build 30324 (*)",
365
+ 0x00dc7674 => "[EXP] VS2013 Update2 RC [12.0] build 30324 (*)",
366
+ 0x00e0520d => "[ C ] VS2013 build 21005",
367
+ 0x00e1520d => "[C++] VS2013 build 21005",
368
+ 0x00db520d => "[RES] VS2013 build 21005",
369
+ 0x00de520d => "[LNK] VS2013 build 21005",
370
+ 0x00dc520d => "[EXP] VS2013 build 21005",
371
+ 0x00dd520d => "[IMP] VS2013 build 21005",
372
+ 0x00df520d => "[ASM] VS2013 build 21005",
373
+ 0x00e0515b => "[ C ] VS2013 RC [12.0] build 20827 (*)",
374
+ 0x00df515b => "[ASM] VS2013 RC [12.0] build 20827 (*)",
375
+ 0x00e1515b => "[C++] VS2013 RC [12.0] build 20827 (*)",
376
+ 0x00db515b => "[RES] VS2013 RC [12.0] build 20827 (*)",
377
+ 0x00de515b => "[LNK] VS2013 RC [12.0] build 20827 (*)",
378
+ 0x00dd515b => "[IMP] VS2013 RC [12.0] build 20827 (*)",
379
+ 0x00dc515b => "[EXP] VS2013 RC [12.0] build 20827 (*)",
380
+ 0x00e05089 => "[ C ] VS2013 Preview [12.0] build 20617 (*)",
381
+ 0x00df5089 => "[ASM] VS2013 Preview [12.0] build 20617 (*)",
382
+ 0x00e15089 => "[C++] VS2013 Preview [12.0] build 20617 (*)",
383
+ 0x00db5089 => "[RES] VS2013 Preview [12.0] build 20617 (*)",
384
+ 0x00de5089 => "[LNK] VS2013 Preview [12.0] build 20617 (*)",
385
+ 0x00dd5089 => "[IMP] VS2013 Preview [12.0] build 20617 (*)",
386
+ 0x00dc5089 => "[EXP] VS2013 Preview [12.0] build 20617 (*)",
387
+ 0x00ceee66 => "[ C ] VS2012 UPD4 build 61030",
388
+ 0x00cfee66 => "[C++] VS2012 UPD4 build 61030",
389
+ 0x00cdee66 => "[ASM] VS2012 UPD4 build 61030",
390
+ 0x00c9ee66 => "[RES] VS2012 UPD4 build 61030",
391
+ 0x00ccee66 => "[LNK] VS2012 UPD4 build 61030",
392
+ 0x00caee66 => "[EXP] VS2012 UPD4 build 61030",
393
+ 0x00cbee66 => "[IMP] VS2012 UPD4 build 61030",
394
+ 0x00ceecc2 => "[ C ] VS2012 UPD3 build 60610 (*)",
395
+ 0x00cfecc2 => "[C++] VS2012 UPD3 build 60610 (*)",
396
+ 0x00cdecc2 => "[ASM] VS2012 UPD3 build 60610 (*)",
397
+ 0x00c9ecc2 => "[RES] VS2012 UPD3 build 60610 (*)",
398
+ 0x00ccecc2 => "[LNK] VS2012 UPD3 build 60610 (*)",
399
+ 0x00caecc2 => "[EXP] VS2012 UPD3 build 60610 (*)",
400
+ 0x00cbecc2 => "[IMP] VS2012 UPD3 build 60610 (*)",
401
+ 0x00ceeb9b => "[ C ] VS2012 UPD2 build 60315 (*)",
402
+ 0x00cfeb9b => "[C++] VS2012 UPD2 build 60315 (*)",
403
+ 0x00cdeb9b => "[ASM] VS2012 UPD2 build 60315 (*)",
404
+ 0x00c9eb9b => "[RES] VS2012 UPD2 build 60315 (*)",
405
+ 0x00cceb9b => "[LNK] VS2012 UPD2 build 60315 (*)",
406
+ 0x00caeb9b => "[EXP] VS2012 UPD2 build 60315 (*)",
407
+ 0x00cbeb9b => "[IMP] VS2012 UPD2 build 60315 (*)",
408
+ 0x00cec7a2 => "[ C ] VS2012 UPD1 build 51106 (*)",
409
+ 0x00cfc7a2 => "[C++] VS2012 UPD1 build 51106 (*)",
410
+ 0x00cdc7a2 => "[ASM] VS2012 UPD1 build 51106 (*)",
411
+ 0x00c9c7a2 => "[RES] VS2012 UPD1 build 51106 (*)",
412
+ 0x00ccc7a2 => "[LNK] VS2012 UPD1 build 51106 (*)",
413
+ 0x00cac7a2 => "[EXP] VS2012 UPD1 build 51106 (*)",
414
+ 0x00cbc7a2 => "[IMP] VS2012 UPD1 build 51106 (*)",
415
+ 0x00cec751 => "[ C ] VS2012 November CTP [11.0] build 51025 (*)",
416
+ 0x00cdc751 => "[ASM] VS2012 November CTP [11.0] build 51025 (*)",
417
+ 0x00cfc751 => "[C++] VS2012 November CTP [11.0] build 51025 (*)",
418
+ 0x00c9c751 => "[RES] VS2012 November CTP [11.0] build 51025 (*)",
419
+ 0x00ccc751 => "[LNK] VS2012 November CTP [11.0] build 51025 (*)",
420
+ 0x00cbc751 => "[IMP] VS2012 November CTP [11.0] build 51025 (*)",
421
+ 0x00cac751 => "[EXP] VS2012 November CTP [11.0] build 51025 (*)",
422
+ 0x00cec627 => "[ C ] VS2012 build 50727",
423
+ 0x00cfc627 => "[C++] VS2012 build 50727",
424
+ 0x00c9c627 => "[RES] VS2012 build 50727",
425
+ 0x00cdc627 => "[ASM] VS2012 build 50727",
426
+ 0x00cac627 => "[EXP] VS2012 build 50727",
427
+ 0x00cbc627 => "[IMP] VS2012 build 50727",
428
+ 0x00ccc627 => "[LNK] VS2012 build 50727",
429
+ 0x00aa9d1b => "[ C ] VS2010 SP1 build 40219",
430
+ 0x00ab9d1b => "[C++] VS2010 SP1 build 40219",
431
+ 0x009d9d1b => "[LNK] VS2010 SP1 build 40219",
432
+ 0x009a9d1b => "[RES] VS2010 SP1 build 40219",
433
+ 0x009b9d1b => "[EXP] VS2010 SP1 build 40219",
434
+ 0x009c9d1b => "[IMP] VS2010 SP1 build 40219",
435
+ 0x009e9d1b => "[ASM] VS2010 SP1 build 40219",
436
+ 0x00aa766f => "[ C ] VS2010 build 30319",
437
+ 0x00ab766f => "[C++] VS2010 build 30319",
438
+ 0x009d766f => "[LNK] VS2010 build 30319",
439
+ 0x009a766f => "[RES] VS2010 build 30319",
440
+ 0x009b766f => "[EXP] VS2010 build 30319",
441
+ 0x009c766f => "[IMP] VS2010 build 30319",
442
+ 0x009e766f => "[ASM] VS2010 build 30319",
443
+ 0x00aa520b => "[ C ] VS2010 Beta 2 [10.0] build 21003 (*)",
444
+ 0x009e520b => "[ASM] VS2010 Beta 2 [10.0] build 21003 (*)",
445
+ 0x00ab520b => "[C++] VS2010 Beta 2 [10.0] build 21003 (*)",
446
+ 0x009a520b => "[RES] VS2010 Beta 2 [10.0] build 21003 (*)",
447
+ 0x009d520b => "[LNK] VS2010 Beta 2 [10.0] build 21003 (*)",
448
+ 0x009c520b => "[IMP] VS2010 Beta 2 [10.0] build 21003 (*)",
449
+ 0x009b520b => "[EXP] VS2010 Beta 2 [10.0] build 21003 (*)",
450
+ 0x00aa501a => "[ C ] VS2010 Beta 1 [10.0] build 20506 (*)",
451
+ 0x009e501a => "[ASM] VS2010 Beta 1 [10.0] build 20506 (*)",
452
+ 0x00ab501a => "[C++] VS2010 Beta 1 [10.0] build 20506 (*)",
453
+ 0x009a501a => "[RES] VS2010 Beta 1 [10.0] build 20506 (*)",
454
+ 0x009d501a => "[LNK] VS2010 Beta 1 [10.0] build 20506 (*)",
455
+ 0x009c501a => "[IMP] VS2010 Beta 1 [10.0] build 20506 (*)",
456
+ 0x009b501a => "[EXP] VS2010 Beta 1 [10.0] build 20506 (*)",
457
+ 0x00837809 => "[ C ] VS2008 SP1 build 30729",
458
+ 0x00847809 => "[C++] VS2008 SP1 build 30729",
459
+ 0x00947809 => "[RES] VS2008 SP1 [9.0] build 30729 (*)",
460
+ 0x00957809 => "[ASM] VS2008 SP1 build 30729",
461
+ 0x00927809 => "[EXP] VS2008 SP1 build 30729",
462
+ 0x00937809 => "[IMP] VS2008 SP1 build 30729",
463
+ 0x00917809 => "[LNK] VS2008 SP1 build 30729",
464
+ 0x0083521e => "[ C ] VS2008 build 21022",
465
+ 0x0084521e => "[C++] VS2008 build 21022",
466
+ 0x0091521e => "[LNK] VS2008 build 21022",
467
+ 0x0094521e => "[RES] VS2008 build 21022",
468
+ 0x0092521e => "[EXP] VS2008 build 21022",
469
+ 0x0093521e => "[IMP] VS2008 build 21022",
470
+ 0x0095521e => "[ASM] VS2008 build 21022",
471
+ 0x008350e2 => "[ C ] VS2008 Beta 2 [9.0] build 20706 (*)",
472
+ 0x009550e2 => "[ASM] VS2008 Beta 2 [9.0] build 20706 (*)",
473
+ 0x008450e2 => "[C++] VS2008 Beta 2 [9.0] build 20706 (*)",
474
+ 0x009450e2 => "[RES] VS2008 Beta 2 [9.0] build 20706 (*)",
475
+ 0x009150e2 => "[LNK] VS2008 Beta 2 [9.0] build 20706 (*)",
476
+ 0x009350e2 => "[IMP] VS2008 Beta 2 [9.0] build 20706 (*)",
477
+ 0x009250e2 => "[EXP] VS2008 Beta 2 [9.0] build 20706 (*)",
478
+ 0x006dc627 => "[ C ] VS2005 build 50727",
479
+ 0x006ec627 => "[C++] VS2005 build 50727",
480
+ 0x0078c627 => "[LNK] VS2005 build 50727",
481
+ 0x007cc627 => "[RES] VS2005 build 50727",
482
+ 0x007ac627 => "[EXP] VS2005 build 50727",
483
+ 0x007bc627 => "[IMP] VS2005 build 50727",
484
+ 0x007dc627 => "[ASM] VS2005 build 50727",
485
+ 0x006dc490 => "[ C ] VS2005 [8.0] build 50320 (*)",
486
+ 0x007dc490 => "[ASM] VS2005 [8.0] build 50320 (*)",
487
+ 0x006ec490 => "[C++] VS2005 [8.0] build 50320 (*)",
488
+ 0x007cc490 => "[RES] VS2005 [8.0] build 50320 (*)",
489
+ 0x0078c490 => "[LNK] VS2005 [8.0] build 50320 (*)",
490
+ 0x007bc490 => "[IMP] VS2005 [8.0] build 50320 (*)",
491
+ 0x007ac490 => "[EXP] VS2005 [8.0] build 50320 (*)",
492
+ 0x006dc427 => "[ C ] VS2005 Beta 2 [8.0] build 50215 (*)",
493
+ 0x007dc427 => "[ASM] VS2005 Beta 2 [8.0] build 50215 (*)",
494
+ 0x006ec427 => "[C++] VS2005 Beta 2 [8.0] build 50215 (*)",
495
+ 0x007cc427 => "[RES] VS2005 Beta 2 [8.0] build 50215 (*)",
496
+ 0x0078c427 => "[LNK] VS2005 Beta 2 [8.0] build 50215 (*)",
497
+ 0x007bc427 => "[IMP] VS2005 Beta 2 [8.0] build 50215 (*)",
498
+ 0x007ac427 => "[EXP] VS2005 Beta 2 [8.0] build 50215 (*)",
499
+ 0x006d9e9f => "[ C ] VS2005 Beta 1 [8.0] build 40607 (*)",
500
+ 0x007d9e9f => "[ASM] VS2005 Beta 1 [8.0] build 40607 (*)",
501
+ 0x006e9e9f => "[C++] VS2005 Beta 1 [8.0] build 40607 (*)",
502
+ 0x007c9e9f => "[RES] VS2005 Beta 1 [8.0] build 40607 (*)",
503
+ 0x00789e9f => "[LNK] VS2005 Beta 1 [8.0] build 40607 (*)",
504
+ 0x007b9e9f => "[IMP] VS2005 Beta 1 [8.0] build 40607 (*)",
505
+ 0x007a9e9f => "[EXP] VS2005 Beta 1 [8.0] build 40607 (*)",
506
+ 0x006d9d76 => "[ C ] Windows Server 2003 SP1 DDK (for AMD64) build 40310 (*)",
507
+ 0x007d9d76 => "[ASM] Windows Server 2003 SP1 DDK (for AMD64) build 40310 (*)",
508
+ 0x006e9d76 => "[C++] Windows Server 2003 SP1 DDK (for AMD64) build 40310 (*)",
509
+ 0x007c9d76 => "[RES] Windows Server 2003 SP1 DDK (for AMD64) build 40310 (*)",
510
+ 0x00789d76 => "[LNK] Windows Server 2003 SP1 DDK (for AMD64) build 40310 (*)",
511
+ 0x007b9d76 => "[IMP] Windows Server 2003 SP1 DDK (for AMD64) build 40310 (*)",
512
+ 0x007a9d76 => "[EXP] Windows Server 2003 SP1 DDK (for AMD64) build 40310 (*)",
513
+ 0x005f178e => "[ C ] VS2003 (.NET) SP1 build 6030",
514
+ 0x0060178e => "[C++] VS2003 (.NET) SP1 build 6030",
515
+ 0x005a178e => "[LNK] VS2003 (.NET) SP1 build 6030",
516
+ 0x000f178e => "[ASM] VS2003 (.NET) SP1 build 6030",
517
+ 0x005e178e => "[RES] VS.NET 2003 SP1 [7.1] build 6030 (*)",
518
+ 0x005c178e => "[EXP] VS2003 (.NET) SP1 build 6030",
519
+ 0x005d178e => "[IMP] VS2003 (.NET) SP1 build 6030",
520
+ 0x005f0fc3 => "[ C ] Windows Server 2003 SP1 DDK build 4035 (*)",
521
+ 0x000f0fc3 => "[ASM] Windows Server 2003 SP1 DDK build 4035 (*)",
522
+ 0x00600fc3 => "[C++] Windows Server 2003 SP1 DDK build 4035 (*)",
523
+ 0x005e0fc3 => "[RES] Windows Server 2003 SP1 DDK build 4035 (*)",
524
+ 0x005a0fc3 => "[LNK] Windows Server 2003 SP1 DDK build 4035 (*)",
525
+ 0x005d0fc3 => "[IMP] Windows Server 2003 SP1 DDK build 4035 (*)",
526
+ 0x005c0fc3 => "[EXP] Windows Server 2003 SP1 DDK build 4035 (*)",
527
+ 0x005f0c05 => "[ C ] VS2003 (.NET) build 3077",
528
+ 0x00600c05 => "[C++] VS2003 (.NET) build 3077",
529
+ 0x000f0c05 => "[ASM] VS2003 (.NET) build 3077",
530
+ 0x005e0bec => "[RES] VS2003 (.NET) build 3052",
531
+ 0x005c0c05 => "[EXP] VS2003 (.NET) build 3077",
532
+ 0x005d0c05 => "[IMP] VS2003 (.NET) build 3077",
533
+ 0x005a0c05 => "[LNK] VS2003 (.NET) build 3077",
534
+ 0x005e0c05 => "[RES] VS.NET 2003 [7.1] build 3077 (*)",
535
+ 0x001c24fa => "[ C ] VS2002 (.NET) build 9466",
536
+ 0x001d24fa => "[C++] VS2002 (.NET) build 9466",
537
+ 0x004024fa => "[ASM] VS2002 (.NET) build 9466",
538
+ 0x003d24fa => "[LNK] VS2002 (.NET) build 9466",
539
+ 0x004524fa => "[RES] VS2002 (.NET) build 9466",
540
+ 0x003f24fa => "[EXP] VS2002 (.NET) build 9466",
541
+ 0x001924fa => "[IMP] VS2002 (.NET) build 9466",
542
+ 0x001c23d8 => "[ C ] Windows XP SP1 DDK build 9176 (*)",
543
+ 0x004023d8 => "[ASM] Windows XP SP1 DDK build 9176 (*)",
544
+ 0x001d23d8 => "[C++] Windows XP SP1 DDK build 9176 (*)",
545
+ 0x004523d8 => "[RES] Windows XP SP1 DDK build 9176 (*)",
546
+ 0x003d23d8 => "[LNK] Windows XP SP1 DDK build 9176 (*)",
547
+ 0x001923d8 => "[IMP] Windows XP SP1 DDK build 9176 (*)",
548
+ 0x003f23d8 => "[EXP] Windows XP SP1 DDK build 9176 (*)",
549
+ 0x000a2636 => "[ C ] VS98 (6.0) SP6 build 8804",
550
+ 0x000b2636 => "[C++] VS98 (6.0) SP6 build 8804",
551
+ 0x00152306 => "[ C ] VC++ 6.0 SP5 build 8804",
552
+ 0x00162306 => "[C++] VC++ 6.0 SP5 build 8804",
553
+ 0x000420ff => "[LNK] VC++ 6.0 SP5 imp/exp build 8447",
554
+ 0x000606c7 => "[RES] VS98 (6.0) SP6 cvtres build 1736",
555
+ 0x000a1fe8 => "[ C ] VS98 (6.0) build 8168",
556
+ 0x000b1fe8 => "[C++] VS98 (6.0) build 8168",
557
+ 0x000606b8 => "[RES] VS98 (6.0) cvtres build 1720",
558
+ 0x00041fe8 => "[LNK] VS98 (6.0) imp/exp build 8168",
559
+ 0x00060684 => "[RES] VS97 (5.0) SP3 cvtres 5.00.1668",
560
+ 0x00021c87 => "[IMP] VS97 (5.0) SP3 link 5.10.7303",
561
+ }
562
+ end