pedump 0.6.0 → 0.6.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -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