metasm 1.0.3 → 1.0.4

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.
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