metasm 1.0.3 → 1.0.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (114) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +3 -0
  3. data.tar.gz.sig +0 -0
  4. data/Gemfile +3 -2
  5. data/metasm.gemspec +3 -2
  6. data/metasm.rb +4 -1
  7. data/metasm/compile_c.rb +2 -2
  8. data/metasm/cpu/arc/decode.rb +0 -21
  9. data/metasm/cpu/arc/main.rb +4 -4
  10. data/metasm/cpu/arm/decode.rb +1 -5
  11. data/metasm/cpu/arm/main.rb +3 -3
  12. data/metasm/cpu/arm64/decode.rb +2 -6
  13. data/metasm/cpu/arm64/main.rb +5 -5
  14. data/metasm/cpu/bpf/decode.rb +3 -35
  15. data/metasm/cpu/bpf/main.rb +5 -5
  16. data/metasm/cpu/bpf/render.rb +1 -12
  17. data/metasm/cpu/cy16/decode.rb +0 -6
  18. data/metasm/cpu/cy16/main.rb +3 -3
  19. data/metasm/cpu/cy16/render.rb +0 -11
  20. data/metasm/cpu/dalvik/decode.rb +4 -26
  21. data/metasm/cpu/dalvik/main.rb +20 -2
  22. data/metasm/cpu/dalvik/opcodes.rb +3 -2
  23. data/metasm/cpu/{mips/compile_c.rb → ebpf.rb} +5 -2
  24. data/metasm/cpu/ebpf/debug.rb +61 -0
  25. data/metasm/cpu/ebpf/decode.rb +142 -0
  26. data/metasm/cpu/ebpf/main.rb +58 -0
  27. data/metasm/cpu/ebpf/opcodes.rb +97 -0
  28. data/metasm/cpu/ebpf/render.rb +36 -0
  29. data/metasm/cpu/ia32/debug.rb +39 -1
  30. data/metasm/cpu/ia32/decode.rb +111 -90
  31. data/metasm/cpu/ia32/decompile.rb +45 -37
  32. data/metasm/cpu/ia32/main.rb +10 -0
  33. data/metasm/cpu/ia32/parse.rb +6 -0
  34. data/metasm/cpu/mcs51/decode.rb +1 -1
  35. data/metasm/cpu/mcs51/main.rb +11 -0
  36. data/metasm/cpu/mips/decode.rb +8 -18
  37. data/metasm/cpu/mips/main.rb +3 -3
  38. data/metasm/cpu/mips/opcodes.rb +1 -1
  39. data/metasm/cpu/msp430/decode.rb +2 -6
  40. data/metasm/cpu/msp430/main.rb +3 -3
  41. data/metasm/cpu/openrisc.rb +11 -0
  42. data/metasm/cpu/openrisc/debug.rb +106 -0
  43. data/metasm/cpu/openrisc/decode.rb +182 -0
  44. data/metasm/cpu/openrisc/decompile.rb +350 -0
  45. data/metasm/cpu/openrisc/main.rb +70 -0
  46. data/metasm/cpu/openrisc/opcodes.rb +109 -0
  47. data/metasm/cpu/openrisc/render.rb +37 -0
  48. data/metasm/cpu/ppc/decode.rb +0 -25
  49. data/metasm/cpu/ppc/main.rb +6 -6
  50. data/metasm/cpu/ppc/opcodes.rb +3 -4
  51. data/metasm/cpu/python/decode.rb +0 -20
  52. data/metasm/cpu/python/main.rb +1 -1
  53. data/metasm/cpu/sh4/decode.rb +2 -6
  54. data/metasm/cpu/sh4/main.rb +25 -23
  55. data/metasm/cpu/st20/decode.rb +0 -7
  56. data/metasm/cpu/webasm.rb +11 -0
  57. data/metasm/cpu/webasm/debug.rb +31 -0
  58. data/metasm/cpu/webasm/decode.rb +321 -0
  59. data/metasm/cpu/webasm/decompile.rb +386 -0
  60. data/metasm/cpu/webasm/encode.rb +104 -0
  61. data/metasm/cpu/webasm/main.rb +81 -0
  62. data/metasm/cpu/webasm/opcodes.rb +214 -0
  63. data/metasm/cpu/x86_64/compile_c.rb +13 -9
  64. data/metasm/cpu/x86_64/parse.rb +1 -1
  65. data/metasm/cpu/z80/decode.rb +0 -27
  66. data/metasm/cpu/z80/main.rb +3 -3
  67. data/metasm/cpu/z80/render.rb +0 -11
  68. data/metasm/debug.rb +43 -8
  69. data/metasm/decode.rb +62 -14
  70. data/metasm/decompile.rb +793 -466
  71. data/metasm/disassemble.rb +188 -131
  72. data/metasm/disassemble_api.rb +30 -17
  73. data/metasm/dynldr.rb +2 -2
  74. data/metasm/encode.rb +8 -2
  75. data/metasm/exe_format/autoexe.rb +2 -0
  76. data/metasm/exe_format/coff.rb +21 -3
  77. data/metasm/exe_format/coff_decode.rb +12 -0
  78. data/metasm/exe_format/coff_encode.rb +6 -3
  79. data/metasm/exe_format/dex.rb +13 -3
  80. data/metasm/exe_format/elf.rb +12 -2
  81. data/metasm/exe_format/elf_decode.rb +59 -1
  82. data/metasm/exe_format/main.rb +2 -0
  83. data/metasm/exe_format/mz.rb +1 -0
  84. data/metasm/exe_format/pe.rb +25 -3
  85. data/metasm/exe_format/wasm.rb +402 -0
  86. data/metasm/gui/dasm_decomp.rb +171 -95
  87. data/metasm/gui/dasm_graph.rb +61 -2
  88. data/metasm/gui/dasm_hex.rb +2 -2
  89. data/metasm/gui/dasm_main.rb +45 -19
  90. data/metasm/gui/debug.rb +13 -4
  91. data/metasm/gui/gtk.rb +12 -4
  92. data/metasm/main.rb +108 -103
  93. data/metasm/os/emulator.rb +175 -0
  94. data/metasm/os/main.rb +11 -6
  95. data/metasm/parse.rb +23 -12
  96. data/metasm/parse_c.rb +189 -135
  97. data/metasm/preprocessor.rb +16 -1
  98. data/misc/openrisc-parser.rb +79 -0
  99. data/samples/dasm-plugins/scanxrefs.rb +6 -4
  100. data/samples/dasm-plugins/selfmodify.rb +8 -8
  101. data/samples/dbg-plugins/trace_func.rb +1 -1
  102. data/samples/disassemble-gui.rb +14 -3
  103. data/samples/emubios.rb +251 -0
  104. data/samples/emudbg.rb +127 -0
  105. data/samples/lindebug.rb +79 -78
  106. data/samples/metasm-shell.rb +8 -8
  107. data/tests/all.rb +1 -1
  108. data/tests/expression.rb +2 -0
  109. data/tests/graph_layout.rb +1 -1
  110. data/tests/ia32.rb +1 -0
  111. data/tests/mips.rb +1 -1
  112. data/tests/preprocessor.rb +18 -0
  113. metadata +124 -6
  114. metadata.gz.sig +0 -0
@@ -4,7 +4,7 @@
4
4
  #
5
5
  # Licence is LGPL, see LICENCE in the top-level directory
6
6
 
7
- # modifies the standard ruby class String to add #decode and #encode methods
7
+ # modifies the standard ruby class String to add #asm_decode and #asm_encode methods
8
8
  # they will respectively disassemble binary data / assemble asm source
9
9
  # the default CPU is x86 32bits, change it using eg String.cpu = Metasm::MIPS.new(:big) (mips bigendian)
10
10
  #
@@ -31,14 +31,14 @@ class String
31
31
  end
32
32
 
33
33
  # encodes the current string as a Shellcode, returns the resulting EncodedData
34
- def encode_edata
34
+ def asm_encode_edata
35
35
  Metasm::Shellcode.assemble(@@cpu, self).encode.encoded
36
36
  end
37
37
 
38
38
  # encodes the current string as a Shellcode, returns the resulting binary String
39
39
  # outputs warnings on unresolved relocations
40
- def encode
41
- ed = encode_edata
40
+ def asm_encode
41
+ ed = asm_encode_edata
42
42
  if not ed.reloc.empty?
43
43
  puts 'W: encoded string has unresolved relocations: ' + ed.reloc.map { |o, r| r.target.inspect }.join(', ')
44
44
  end
@@ -48,7 +48,7 @@ class String
48
48
 
49
49
  # decodes the current string as a Shellcode, with specified base address
50
50
  # returns the resulting Disassembler
51
- def decode_blocks(base_addr=0, eip=base_addr)
51
+ def asm_decode_blocks(base_addr=0, eip=base_addr)
52
52
  sc = Metasm::Shellcode.decode(self, @@cpu)
53
53
  sc.base_addr = base_addr
54
54
  sc.disassemble(eip)
@@ -56,8 +56,8 @@ class String
56
56
 
57
57
  # decodes the current string as a Shellcode, with specified base address
58
58
  # returns the asm source equivallent
59
- def decode(base_addr=0, eip=base_addr)
60
- decode_blocks(base_addr, eip).to_s
59
+ def asm_decode(base_addr=0, eip=base_addr)
60
+ asm_decode_blocks(base_addr, eip).to_s
61
61
  end
62
62
  end
63
63
 
@@ -86,7 +86,7 @@ def asm
86
86
  begin
87
87
  data = line.gsub(';', "\n")
88
88
  next if data.strip.empty?
89
- e_data = data.encode
89
+ e_data = data.asm_encode
90
90
  puts '"' + e_data.unpack('C*').map { |c| '\\x%02x' % c }.join + '"'
91
91
  rescue Metasm::Exception => e
92
92
  puts "Error: #{e.class} #{e.message}"
@@ -4,5 +4,5 @@
4
4
  # Licence is LGPL, see LICENCE in the top-level directory
5
5
 
6
6
 
7
- Dir['tests/*.rb'].sort.each { |f| require f }
7
+ Dir[File.expand_path('../*.rb', __FILE__)].sort.each { |f| require f }
8
8
 
@@ -15,6 +15,8 @@ class TestExpression < Test::Unit::TestCase
15
15
 
16
16
  def test_numeric
17
17
  assert_equal(5, E[4, :+, 1].reduce)
18
+ assert_equal(4, E[5].reduce { |e| e == 5 ? 4 : e })
19
+ assert_equal(5, E[5].reduce) # test the previous lambda does not linger around
18
20
  end
19
21
 
20
22
  def test_reduce
@@ -14,7 +14,7 @@ def test_layout(lo)
14
14
  $cur ||= 0
15
15
  $cur += 1
16
16
  if $target.to_i != 0
17
- return if $cur != $target
17
+ return if $cur != $target.to_i
18
18
  else
19
19
  return if not lo.include? $target
20
20
  end if $target
@@ -29,6 +29,7 @@ class TestIa32 < Test::Unit::TestCase
29
29
  assert_equal(assemble("push eax"), bin("\x50"))
30
30
  assert_equal(assemble("push 2"), bin("\x6a\x02"))
31
31
  assert_equal(assemble("push 142"), bin("\x68\x8e\0\0\0"))
32
+ assert_equal(assemble("cmp al, 'a'"), bin("\x3c\x61"))
32
33
  end
33
34
 
34
35
  def test_sz
@@ -110,7 +110,7 @@ EOS
110
110
 
111
111
  dasm_src = Metasm::Shellcode.disassemble(Metasm::MIPS.new(:big), sc.encoded.data).to_s
112
112
  lines = dasm_src.respond_to?(:lines) ? dasm_src.lines : dasm_src.to_a
113
- assert_equal(28, lines.grep(/\S/).length)
113
+ assert_equal(26, lines.grep(/^[^\/].*\S/).length)
114
114
  end
115
115
 
116
116
  def bin(s)
@@ -68,6 +68,23 @@ EOS
68
68
  #if defined ( tutu )
69
69
  tutu coucou
70
70
  #endif
71
+ EOS
72
+ helper_preparse(<<EOS, 'a1')
73
+ #define tutu
74
+ #if ! defined ( tutu )
75
+ a0
76
+ #else
77
+ a1
78
+ #endif
79
+ EOS
80
+ helper_preparse(<<EOS, 'a1')
81
+ #define tutu
82
+ #if defined(tutu) ? 0 : 1
83
+ a0
84
+ #endif
85
+ #if defined(toto) ? 0 : 1
86
+ a1
87
+ #endif
71
88
  EOS
72
89
  helper_preparse('a #define b', 'a #define b')
73
90
  helper_preparse(<<EOS, "// true !\nblu")
@@ -142,6 +159,7 @@ EOS
142
159
  #include <tests/prepro_testinclude.asm>
143
160
  out
144
161
  EOS
162
+ rescue Errno::ENOENT
145
163
  ensure
146
164
  File.unlink('tests/prepro_testinclude.asm') rescue nil
147
165
  end
metadata CHANGED
@@ -1,14 +1,94 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: metasm
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.3
4
+ version: 1.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yoann Guillot
8
8
  autorequire:
9
9
  bindir: bin
10
- cert_chain: []
11
- date: 2017-03-05 00:00:00.000000000 Z
10
+ cert_chain:
11
+ - |
12
+ -----BEGIN CERTIFICATE-----
13
+ MIIDXzCCAkegAwIBAgILBAAAAAABIVhTCKIwDQYJKoZIhvcNAQELBQAwTDEgMB4G
14
+ A1UECxMXR2xvYmFsU2lnbiBSb290IENBIC0gUjMxEzARBgNVBAoTCkdsb2JhbFNp
15
+ Z24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMDkwMzE4MTAwMDAwWhcNMjkwMzE4
16
+ MTAwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxTaWduIFJvb3QgQ0EgLSBSMzETMBEG
17
+ A1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2lnbjCCASIwDQYJKoZI
18
+ hvcNAQEBBQADggEPADCCAQoCggEBAMwldpB5BngiFvXAg7aEyiie/QV2EcWtiHL8
19
+ RgJDx7KKnQRfJMsuS+FggkbhUqsMgUdwbN1k0ev1LKMPgj0MK66X17YUhhB5uzsT
20
+ gHeMCOFJ0mpiLx9e+pZo34knlTifBtc+ycsmWQ1z3rDI6SYOgxXG71uL0gRgykmm
21
+ KPZpO/bLyCiR5Z2KYVc3rHQU3HTgOu5yLy6c+9C7v/U9AOEGM+iCK65TpjoWc4zd
22
+ QQ4gOsC0p6Hpsk+QLjJg6VfLuQSSaGjlOCZgdbKfd/+RFO+uIEn8rUAVSNECMWEZ
23
+ XriX7613t2Saer9fwRPvm2L7DWzgVGkWqQPabumDk3F2xmmFghcCAwEAAaNCMEAw
24
+ DgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFI/wS3+o
25
+ LkUkrk1Q+mOai97i3Ru8MA0GCSqGSIb3DQEBCwUAA4IBAQBLQNvAUKr+yAzv95ZU
26
+ RUm7lgAJQayzE4aGKAczymvmdLm6AC2upArT9fHxD4q/c2dKg8dEe3jgr25sbwMp
27
+ jjM5RcOO5LlXbKr8EpbsU8Yt5CRsuZRj+9xTaGdWPoO4zzUhw8lo/s7awlOqzJCK
28
+ 6fBdRoyV3XpYKBovHd7NADdBj+1EbddTKJd+82cEHhXXipa0095MJ6RMG3NzdvQX
29
+ mcIfeg7jLQitChws/zyrVQ4PkX4268NXSb7hLi18YIvDQVETI53O9zJrlAGomecs
30
+ Mx86OyXShkDOOyyGeMlhLxS67ttVb9+E7gUJTb0o2HLO02JQZR7rkpeDMdmztcpH
31
+ WD9f
32
+ -----END CERTIFICATE-----
33
+ - |
34
+ -----BEGIN CERTIFICATE-----
35
+ MIIElDCCA3ygAwIBAgIOSBtqBybS6D8mAtSCWs0wDQYJKoZIhvcNAQELBQAwTDEg
36
+ MB4GA1UECxMXR2xvYmFsU2lnbiBSb290IENBIC0gUjMxEzARBgNVBAoTCkdsb2Jh
37
+ bFNpZ24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMTYwNjE1MDAwMDAwWhcNMjQw
38
+ NjE1MDAwMDAwWjBaMQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBu
39
+ di1zYTEwMC4GA1UEAxMnR2xvYmFsU2lnbiBDb2RlU2lnbmluZyBDQSAtIFNIQTI1
40
+ NiAtIEczMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAjYVVI6kfU6/J
41
+ 7TbCKbVu2PlC9SGLh/BDoS/AP5fjGEfUlk6Iq8Zj6bZJFYXx2Zt7G/3YSsxtToZA
42
+ F817ukcotdYUQAyG7h5LM/MsVe4hjNq2wf6wTjquUZ+lFOMQ5pPK+vldsZCH7/g1
43
+ LfyiXCbuexWLH9nDoZc1QbMw/XITrZGXOs5ynQYKdTwfmOPLGC+MnwhKkQrZ2TXZ
44
+ g5J2Yl7fg67k1gFOzPM8cGFYNx8U42qgr2v02dJsLBkwXaBvUt/RnMngDdl1EWWW
45
+ 2UO0p5A5rkccVMuxlW4l3o7xEhzw127nFE2zGmXWhEpX7gSvYjjFEJtDjlK4Prau
46
+ niyX/4507wIDAQABo4IBZDCCAWAwDgYDVR0PAQH/BAQDAgEGMB0GA1UdJQQWMBQG
47
+ CCsGAQUFBwMDBggrBgEFBQcDCTASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQW
48
+ BBQPOueslJF0LZYCc4OtnC5JPxmqVDAfBgNVHSMEGDAWgBSP8Et/qC5FJK5NUPpj
49
+ move4t0bvDA+BggrBgEFBQcBAQQyMDAwLgYIKwYBBQUHMAGGImh0dHA6Ly9vY3Nw
50
+ Mi5nbG9iYWxzaWduLmNvbS9yb290cjMwNgYDVR0fBC8wLTAroCmgJ4YlaHR0cDov
51
+ L2NybC5nbG9iYWxzaWduLmNvbS9yb290LXIzLmNybDBjBgNVHSAEXDBaMAsGCSsG
52
+ AQQBoDIBMjAIBgZngQwBBAEwQQYJKwYBBAGgMgFfMDQwMgYIKwYBBQUHAgEWJmh0
53
+ dHBzOi8vd3d3Lmdsb2JhbHNpZ24uY29tL3JlcG9zaXRvcnkvMA0GCSqGSIb3DQEB
54
+ CwUAA4IBAQAVhCgM7aHDGYLbYydB18xjfda8zzabz9JdTAKLWBoWCHqxmJl/2DOK
55
+ XJ5iCprqkMLFYwQL6IdYBgAHglnDqJQy2eAUTaDVI+DH3brwaeJKRWUtTUmQeGYy
56
+ DrBowLCIsI7tXAb4XBBIPyNzujtThFKAzfCzFcgRCosFeEZZCNS+t/9L9ZxqTJx2
57
+ ohGFRYzUN+5Q3eEzNKmhHzoL8VZEim+zM9CxjtEMYAfuMsLwJG+/r/uBAXZnxKPo
58
+ 4KvcM1Uo42dHPOtqpN+U6fSmwIHRUphRptYCtzzqSu/QumXSN4NTS35nfIxA9gcc
59
+ sK8EBtz4bEaIcpzrTp3DsLlUo7lOl8oU
60
+ -----END CERTIFICATE-----
61
+ - |
62
+ -----BEGIN CERTIFICATE-----
63
+ MIIE5jCCA86gAwIBAgIMKDuO03uv6RWXR1uAMA0GCSqGSIb3DQEBCwUAMFoxCzAJ
64
+ BgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMTAwLgYDVQQDEydH
65
+ bG9iYWxTaWduIENvZGVTaWduaW5nIENBIC0gU0hBMjU2IC0gRzMwHhcNMTYwOTEz
66
+ MTgxMDIyWhcNMTkxMTExMTUxNTM4WjBgMQswCQYDVQQGEwJVUzEWMBQGA1UECBMN
67
+ TWFzc2FjaHVzZXR0czEPMA0GA1UEBxMGQm9zdG9uMRMwEQYDVQQKEwpSYXBpZDcg
68
+ TExDMRMwEQYDVQQDEwpSYXBpZDcgTExDMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
69
+ MIIBCgKCAQEAl0HeC0FzN1BJ4nQkxsBng3peS9Bdi9rpSGx+g0Ximd+M/7twmund
70
+ bzn2JPbNK/Gp/rq/SytrNSLcUzcbH/0z5Ltyw1/jQsGtRBrns0NZSRXqupQDW5R6
71
+ HFpaIAl3OdsesmIQc/fm0uhh8dkfHVo7UsZO/TeCPoy0uHXTI6aFBPzMMsdz+gf3
72
+ cCCLsnNKQh/T2Q/jwBs3NTPoyza/pPZcvGogKcWCeNihTO5Rn1Fc71sMHSjQsDtn
73
+ 1fWGKYGi0qjvZ4lpGM9IFZMTbySKHbPLhhHnBOoV7avGemdky3AEsUeiT+6DY0P1
74
+ IydBy24uVNhGATglME1ttlT4Eme/to0M6wIDAQABo4IBpDCCAaAwDgYDVR0PAQH/
75
+ BAQDAgeAMIGUBggrBgEFBQcBAQSBhzCBhDBIBggrBgEFBQcwAoY8aHR0cDovL3Nl
76
+ Y3VyZS5nbG9iYWxzaWduLmNvbS9jYWNlcnQvZ3Njb2Rlc2lnbnNoYTJnM29jc3Au
77
+ Y3J0MDgGCCsGAQUFBzABhixodHRwOi8vb2NzcDIuZ2xvYmFsc2lnbi5jb20vZ3Nj
78
+ b2Rlc2lnbnNoYTJnMzBWBgNVHSAETzBNMEEGCSsGAQQBoDIBMjA0MDIGCCsGAQUF
79
+ BwIBFiZodHRwczovL3d3dy5nbG9iYWxzaWduLmNvbS9yZXBvc2l0b3J5LzAIBgZn
80
+ gQwBBAEwCQYDVR0TBAIwADA/BgNVHR8EODA2MDSgMqAwhi5odHRwOi8vY3JsLmds
81
+ b2JhbHNpZ24uY29tL2dzY29kZXNpZ25zaGEyZzMuY3JsMBMGA1UdJQQMMAoGCCsG
82
+ AQUFBwMDMB0GA1UdDgQWBBSm8RBpBC/cK9VmxzO2+RWnacN8CTAfBgNVHSMEGDAW
83
+ gBQPOueslJF0LZYCc4OtnC5JPxmqVDANBgkqhkiG9w0BAQsFAAOCAQEANVO3uYQl
84
+ h8iicbaXE3odrL+kXXmeeNgt4BD3x7GKAVIVixtwBS6pvrshjc1LN0tm3ruiv8oy
85
+ cq4FiEmVUXZejSRvVVtABeWdZWo+lJ8NxCBUEYYmnMrjgFIbGiEbBsg7PGtyeQsA
86
+ 5Wbg7Lx889mS1tKfQBcPif8EjpTiXNfMiywmpaMYmvm+yQgzrRLDbjz6JV0Rc5Ga
87
+ WChka+LTPnMtsWJuFM8ka8icMeS28/nAGERdewxWvz+DeAPMORdTJ7aqb6+Y9xuz
88
+ G+Hmcg1v810agasPdoydE0RTVZgEOOMoQ07qu7JFXVWZ9ZQpHT7qJATWL/b2csFG
89
+ 8mVuTXnyJOKRJA==
90
+ -----END CERTIFICATE-----
91
+ date: 2019-04-08 00:00:00.000000000 Z
12
92
  dependencies:
13
93
  - !ruby/object:Gem::Dependency
14
94
  name: bundler
@@ -38,6 +118,20 @@ dependencies:
38
118
  - - ">="
39
119
  - !ruby/object:Gem::Version
40
120
  version: '0'
121
+ - !ruby/object:Gem::Dependency
122
+ name: test-unit
123
+ requirement: !ruby/object:Gem::Requirement
124
+ requirements:
125
+ - - ">="
126
+ - !ruby/object:Gem::Version
127
+ version: '0'
128
+ type: :development
129
+ prerelease: false
130
+ version_requirements: !ruby/object:Gem::Requirement
131
+ requirements:
132
+ - - ">="
133
+ - !ruby/object:Gem::Version
134
+ version: '0'
41
135
  description: ''
42
136
  email:
43
137
  - john at ofjj.net
@@ -111,6 +205,12 @@ files:
111
205
  - metasm/cpu/dalvik/decode.rb
112
206
  - metasm/cpu/dalvik/main.rb
113
207
  - metasm/cpu/dalvik/opcodes.rb
208
+ - metasm/cpu/ebpf.rb
209
+ - metasm/cpu/ebpf/debug.rb
210
+ - metasm/cpu/ebpf/decode.rb
211
+ - metasm/cpu/ebpf/main.rb
212
+ - metasm/cpu/ebpf/opcodes.rb
213
+ - metasm/cpu/ebpf/render.rb
114
214
  - metasm/cpu/ia32.rb
115
215
  - metasm/cpu/ia32/compile_c.rb
116
216
  - metasm/cpu/ia32/debug.rb
@@ -126,7 +226,6 @@ files:
126
226
  - metasm/cpu/mcs51/main.rb
127
227
  - metasm/cpu/mcs51/opcodes.rb
128
228
  - metasm/cpu/mips.rb
129
- - metasm/cpu/mips/compile_c.rb
130
229
  - metasm/cpu/mips/debug.rb
131
230
  - metasm/cpu/mips/decode.rb
132
231
  - metasm/cpu/mips/encode.rb
@@ -138,6 +237,13 @@ files:
138
237
  - metasm/cpu/msp430/decode.rb
139
238
  - metasm/cpu/msp430/main.rb
140
239
  - metasm/cpu/msp430/opcodes.rb
240
+ - metasm/cpu/openrisc.rb
241
+ - metasm/cpu/openrisc/debug.rb
242
+ - metasm/cpu/openrisc/decode.rb
243
+ - metasm/cpu/openrisc/decompile.rb
244
+ - metasm/cpu/openrisc/main.rb
245
+ - metasm/cpu/openrisc/opcodes.rb
246
+ - metasm/cpu/openrisc/render.rb
141
247
  - metasm/cpu/pic16c/decode.rb
142
248
  - metasm/cpu/pic16c/main.rb
143
249
  - metasm/cpu/pic16c/opcodes.rb
@@ -161,6 +267,13 @@ files:
161
267
  - metasm/cpu/st20/decompile.rb
162
268
  - metasm/cpu/st20/main.rb
163
269
  - metasm/cpu/st20/opcodes.rb
270
+ - metasm/cpu/webasm.rb
271
+ - metasm/cpu/webasm/debug.rb
272
+ - metasm/cpu/webasm/decode.rb
273
+ - metasm/cpu/webasm/decompile.rb
274
+ - metasm/cpu/webasm/encode.rb
275
+ - metasm/cpu/webasm/main.rb
276
+ - metasm/cpu/webasm/opcodes.rb
164
277
  - metasm/cpu/x86_64.rb
165
278
  - metasm/cpu/x86_64/compile_c.rb
166
279
  - metasm/cpu/x86_64/debug.rb
@@ -205,6 +318,7 @@ files:
205
318
  - metasm/exe_format/shellcode.rb
206
319
  - metasm/exe_format/shellcode_rwx.rb
207
320
  - metasm/exe_format/swf.rb
321
+ - metasm/exe_format/wasm.rb
208
322
  - metasm/exe_format/xcoff.rb
209
323
  - metasm/exe_format/zip.rb
210
324
  - metasm/gui.rb
@@ -223,6 +337,7 @@ files:
223
337
  - metasm/gui/win32.rb
224
338
  - metasm/gui/x11.rb
225
339
  - metasm/main.rb
340
+ - metasm/os/emulator.rb
226
341
  - metasm/os/gdbremote.rb
227
342
  - metasm/os/gnu_exports.rb
228
343
  - metasm/os/linux.rb
@@ -241,6 +356,7 @@ files:
241
356
  - misc/metasm-all.rb
242
357
  - misc/objdiff.rb
243
358
  - misc/objscan.rb
359
+ - misc/openrisc-parser.rb
244
360
  - misc/pdfparse.rb
245
361
  - misc/ppc_pdf2oplist.rb
246
362
  - misc/tcp_proxy_hex.rb
@@ -289,6 +405,8 @@ files:
289
405
  - samples/elf_list_needed.rb
290
406
  - samples/elf_listexports.rb
291
407
  - samples/elfencode.rb
408
+ - samples/emubios.rb
409
+ - samples/emudbg.rb
292
410
  - samples/exeencode.rb
293
411
  - samples/factorize-headers-elfimports.rb
294
412
  - samples/factorize-headers-peimports.rb
@@ -340,7 +458,7 @@ files:
340
458
  - tests/x86_64.rb
341
459
  homepage: http://metasm.cr0.org
342
460
  licenses:
343
- - LGPL
461
+ - LGPL-2.1
344
462
  metadata: {}
345
463
  post_install_message:
346
464
  rdoc_options: []
@@ -358,7 +476,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
358
476
  version: '0'
359
477
  requirements: []
360
478
  rubyforge_project:
361
- rubygems_version: 2.4.3
479
+ rubygems_version: 2.6.8
362
480
  signing_key:
363
481
  specification_version: 4
364
482
  summary: Metasm is a cross-architecture assembler, disassembler, linker, and debugger.
Binary file