ffi-udis86 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
data/.rspec ADDED
@@ -0,0 +1 @@
1
+ --colour --format documentation
@@ -1,3 +1,12 @@
1
+ ### 0.1.1 / 2010-11-06
2
+
3
+ * Added an external requirement for udis86 >= 1.7.
4
+ * Renamed `udis86.rb` to `ffi/udis86.rb`.
5
+ * Kept `udis86.rb` for backwards compatibility.
6
+ * Fixed failing specs on JRuby.
7
+ * Clarified documentation for {FFI::UDis86::Operand#base} and
8
+ {FFI::UDis86::Operand#index}.
9
+
1
10
  ### 0.1.0 / 2010-02-19
2
11
 
3
12
  * Initial release:
data/README.md CHANGED
@@ -1,7 +1,7 @@
1
1
  # ffi-udis86
2
2
 
3
- * [github.com/sophsec/ffi-udis86](http://github.com/sophsec/ffi-udis86/)
4
- * [github.com/sophsec/ffi-udis86/issue](http://github.com/sophsec/ffi-udis86/)
3
+ * [Source](http://github.com/sophsec/ffi-udis86/)
4
+ * [Issue](http://github.com/sophsec/ffi-udis86/)
5
5
  * Postmodern (postmodern.mod3 at gmail.com)
6
6
 
7
7
  ## Description
@@ -16,6 +16,7 @@ Ruby FFI bindings for udis86, a x86 and x86-64 disassembler.
16
16
  * Supports disassembling files and arbitrary input.
17
17
  * Supports using input buffers.
18
18
  * Supports using input callbacks.
19
+ * Supports fully disassembling instructions and operands.
19
20
 
20
21
  ## Examples
21
22
 
@@ -45,10 +46,48 @@ Disassemble and print instructions:
45
46
  puts insn
46
47
  end
47
48
 
49
+ Disassemble and print information about the instruction and operands:
50
+
51
+ asm = "\x75\x62\x48\x83\xc4\x20\x5b\xc3\x48\x8d\x0d\x23\x0c\x01\x00\x49\x89\xf0"
52
+
53
+ ud = FFI::UDis86::UD.create(
54
+ :buffer => asm,
55
+ :mode => 64,
56
+ :vendor => :amd,
57
+ :syntax => :att
58
+ )
59
+
60
+ ud.disas do |insn|
61
+ puts insn
62
+ puts " * Offset: #{insn.insn_offset}"
63
+ puts " * Length: #{insn.insn_length}"
64
+ puts " * Mnemonic: #{insn.mnemonic}"
65
+
66
+ operands = insn.operands.reverse.map do |operand|
67
+ if operand.is_mem?
68
+ ptr = [operand.base]
69
+ ptr << operand.index if operand.index
70
+ ptr << operand.scale if operand.scale
71
+
72
+ "Memory Access (#{ptr.join(',')})"
73
+ elsif operand.is_imm?
74
+ 'Immediate Data'
75
+ elsif operand.is_jmp_imm?
76
+ 'Relative Offset'
77
+ elsif operand.is_const?
78
+ 'Constant'
79
+ elsif operand.is_reg?
80
+ "Register (#{operand.reg})"
81
+ end
82
+ end
83
+
84
+ puts ' * Operands: ' + operands.join(' -> ')
85
+ end
86
+
48
87
  ## Requirements
49
88
 
50
89
  * [udis86](http://udis86.sourceforge.net/) >= 1.7
51
- * [ffi](http://github.com/ffi/ffi) >= 0.6.2
90
+ * [ffi](http://github.com/ffi/ffi) ~> 0.6.0
52
91
 
53
92
  ## Install
54
93
 
data/Rakefile CHANGED
@@ -1,42 +1,35 @@
1
1
  require 'rubygems'
2
2
  require 'rake'
3
- require './lib/udis86/version.rb'
4
3
 
5
4
  begin
6
- require 'jeweler'
7
- Jeweler::Tasks.new do |gem|
8
- gem.name = 'ffi-udis86'
9
- gem.version = FFI::UDis86::VERSION
10
- gem.summary = %Q{Ruby FFI bindings for udis86, a x86 and x86-64 disassembler.}
11
- gem.description = %Q{Ruby FFI bindings for udis86, a x86 and x86-64 disassembler.}
12
- gem.email = 'postmodern.mod3@gmail.com'
13
- gem.homepage = 'http://github.com/sophsec/ffi-udis86'
14
- gem.authors = ['Postmodern']
15
- gem.add_dependency 'ffi', '>= 0.6.2'
16
- gem.add_development_dependency 'rspec', '>= 1.3.0'
17
- gem.add_development_dependency 'yard', '>= 0.5.3'
18
- gem.has_rdoc = 'yard'
19
- end
20
- rescue LoadError
21
- puts "Jeweler (or a dependency) not available. Install it with: gem install jeweler"
22
- end
5
+ gem 'ore-tasks', '~> 0.1.2'
6
+ require 'ore/tasks'
23
7
 
24
- require 'spec/rake/spectask'
25
- Spec::Rake::SpecTask.new(:spec) do |spec|
26
- spec.libs += ['lib', 'spec']
27
- spec.spec_files = FileList['spec/**/*_spec.rb']
28
- spec.spec_opts = ['--options', '.specopts']
8
+ Ore::Tasks.new
9
+ rescue LoadError => e
10
+ STDERR.puts e.message
11
+ STDERR.puts "Run `gem install ore-tasks` to install 'ore/tasks'."
29
12
  end
30
13
 
31
- task :spec => :check_dependencies
14
+ begin
15
+ gem 'rspec', '~> 2.0.0'
16
+ require 'rspec/core/rake_task'
17
+
18
+ RSpec::Core::RakeTask.new
19
+ rescue LoadError => e
20
+ task :spec do
21
+ abort "Please run `gem install rspec` to install RSpec."
22
+ end
23
+ end
32
24
  task :default => :spec
33
25
 
34
26
  begin
27
+ gem 'yard', '~> 0.6.0'
35
28
  require 'yard'
36
29
 
37
- YARD::Rake::YardocTask.new
38
- rescue LoadError
30
+ YARD::Rake::YardocTask.new
31
+ rescue LoadError => e
39
32
  task :yard do
40
- abort "YARD is not available. In order to run yard, you must: gem install yard"
33
+ abort "Please run `gem install yard` to install YARD."
41
34
  end
42
35
  end
@@ -1,88 +1,10 @@
1
- # Generated by jeweler
2
- # DO NOT EDIT THIS FILE DIRECTLY
3
- # Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
4
1
  # -*- encoding: utf-8 -*-
5
2
 
6
- Gem::Specification.new do |s|
7
- s.name = %q{ffi-udis86}
8
- s.version = "0.1.0"
9
-
10
- s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
- s.authors = ["Postmodern"]
12
- s.date = %q{2010-02-19}
13
- s.description = %q{Ruby FFI bindings for udis86, a x86 and x86-64 disassembler.}
14
- s.email = %q{postmodern.mod3@gmail.com}
15
- s.extra_rdoc_files = [
16
- "ChangeLog.md",
17
- "LICENSE.txt",
18
- "README.md"
19
- ]
20
- s.files = [
21
- ".gitignore",
22
- ".specopts",
23
- ".yardopts",
24
- "ChangeLog.md",
25
- "LICENSE.txt",
26
- "README.md",
27
- "Rakefile",
28
- "ffi-udis86.gemspec",
29
- "lib/udis86.rb",
30
- "lib/udis86/ffi.rb",
31
- "lib/udis86/operand.rb",
32
- "lib/udis86/operand_pointer.rb",
33
- "lib/udis86/operand_value.rb",
34
- "lib/udis86/types.rb",
35
- "lib/udis86/ud.rb",
36
- "lib/udis86/version.rb",
37
- "spec/helpers/files.rb",
38
- "spec/helpers/files/operands_index_scale",
39
- "spec/helpers/files/operands_index_scale.s",
40
- "spec/helpers/files/operands_memory",
41
- "spec/helpers/files/operands_memory.s",
42
- "spec/helpers/files/operands_offset",
43
- "spec/helpers/files/operands_offset.s",
44
- "spec/helpers/files/operands_simple",
45
- "spec/helpers/files/operands_simple.s",
46
- "spec/helpers/files/simple",
47
- "spec/helpers/files/simple.s",
48
- "spec/helpers/operands.rb",
49
- "spec/operand_spec.rb",
50
- "spec/spec_helper.rb",
51
- "spec/ud_spec.rb",
52
- "spec/udis86_spec.rb"
53
- ]
54
- s.has_rdoc = %q{yard}
55
- s.homepage = %q{http://github.com/sophsec/ffi-udis86}
56
- s.rdoc_options = ["--charset=UTF-8"]
57
- s.require_paths = ["lib"]
58
- s.rubygems_version = %q{1.3.5}
59
- s.summary = %q{Ruby FFI bindings for udis86, a x86 and x86-64 disassembler.}
60
- s.test_files = [
61
- "spec/spec_helper.rb",
62
- "spec/udis86_spec.rb",
63
- "spec/ud_spec.rb",
64
- "spec/helpers/files.rb",
65
- "spec/helpers/operands.rb",
66
- "spec/operand_spec.rb"
67
- ]
68
-
69
- if s.respond_to? :specification_version then
70
- current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
71
- s.specification_version = 3
72
-
73
- if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
74
- s.add_runtime_dependency(%q<ffi>, [">= 0.6.2"])
75
- s.add_development_dependency(%q<rspec>, [">= 1.3.0"])
76
- s.add_development_dependency(%q<yard>, [">= 0.5.3"])
77
- else
78
- s.add_dependency(%q<ffi>, [">= 0.6.2"])
79
- s.add_dependency(%q<rspec>, [">= 1.3.0"])
80
- s.add_dependency(%q<yard>, [">= 0.5.3"])
81
- end
82
- else
83
- s.add_dependency(%q<ffi>, [">= 0.6.2"])
84
- s.add_dependency(%q<rspec>, [">= 1.3.0"])
85
- s.add_dependency(%q<yard>, [">= 0.5.3"])
3
+ begin
4
+ Ore::Specification.new do |gemspec|
5
+ # custom logic here
86
6
  end
7
+ rescue NameError
8
+ STDERR.puts "The 'ffi-udis86.gemspec' file requires Ore."
9
+ STDERR.puts "Run `gem install ore` to install Ore."
87
10
  end
88
-
@@ -0,0 +1,19 @@
1
+ name: ffi-udis86
2
+ summary: Ruby FFI bindings for udis86, a x86 and x86-64 disassembler.
3
+ description: Ruby FFI bindings for udis86, a x86 and x86-64 disassembler.
4
+ license: MIT
5
+ authors: Postmodern
6
+ email: postmodern.mod3@gmail.com
7
+ homepage: http://github.com/sophsec/ffi-udis86
8
+ has_yard: true
9
+
10
+ requirements: udis86, 1.7 or greater
11
+
12
+ dependencies:
13
+ ffi: ~> 0.6.0
14
+
15
+ development_dependencies:
16
+ ore: ~> 0.2.0
17
+ ore-tasks: ~> 0.1.2
18
+ rspec: ~> 2.0.0
19
+ yard: ~> 0.6.0
@@ -0,0 +1,4 @@
1
+ require 'ffi/udis86/types'
2
+ require 'ffi/udis86/udis86'
3
+ require 'ffi/udis86/ud'
4
+ require 'ffi/udis86/version'
@@ -1,5 +1,5 @@
1
- require 'udis86/operand_value'
2
- require 'udis86/types'
1
+ require 'ffi/udis86/operand_value'
2
+ require 'ffi/udis86/types'
3
3
 
4
4
  require 'ffi'
5
5
 
@@ -18,7 +18,7 @@ module FFI
18
18
  #
19
19
  # The type of the operand.
20
20
  #
21
- # @return [Integer]
21
+ # @return [Symbol]
22
22
  # The type of the operand.
23
23
  #
24
24
  def type
@@ -114,10 +114,10 @@ module FFI
114
114
  end
115
115
 
116
116
  #
117
- # The base address used by the operand.
117
+ # The base register used by the operand.
118
118
  #
119
- # @return [Integer]
120
- # The base address of the operand.
119
+ # @return [Symbol]
120
+ # The base register of the operand.
121
121
  #
122
122
  def base
123
123
  REGS[self[:base]]
@@ -126,10 +126,10 @@ module FFI
126
126
  alias reg base
127
127
 
128
128
  #
129
- # The index value used by the operand.
129
+ # The index register used by the operand.
130
130
  #
131
- # @return [Integer]
132
- # The index value of the operand.
131
+ # @return [Symbol]
132
+ # The index register of the operand.
133
133
  #
134
134
  def index
135
135
  REGS[self[:index]]
@@ -1,4 +1,4 @@
1
- require 'udis86/operand_pointer'
1
+ require 'ffi/udis86/operand_pointer'
2
2
 
3
3
  require 'ffi'
4
4
 
@@ -4,8 +4,6 @@ module FFI
4
4
  module UDis86
5
5
  extend FFI::Library
6
6
 
7
- typedef :uint, :size_t
8
-
9
7
  # Disassembly modes
10
8
  MODES = [
11
9
  16,
@@ -930,6 +928,16 @@ module FFI
930
928
  :ud_r_rip => :rip,
931
929
  }
932
930
 
931
+ # Acceptable operand types
932
+ OPERAND_TYPES = [
933
+ :ud_op_reg,
934
+ :ud_op_mem,
935
+ :ud_op_ptr,
936
+ :ud_op_imm,
937
+ :ud_op_jimm,
938
+ :ud_op_const
939
+ ]
940
+
933
941
  # Syntaxes
934
942
  SYNTAX = {
935
943
  :att => :ud_translate_att,
@@ -1,6 +1,6 @@
1
- require 'udis86/types'
2
- require 'udis86/operand'
3
- require 'udis86/ffi'
1
+ require 'ffi/udis86/types'
2
+ require 'ffi/udis86/operand'
3
+ require 'ffi/udis86/udis86'
4
4
 
5
5
  require 'ffi'
6
6
 
@@ -144,7 +144,7 @@ module FFI
144
144
  # @yieldparam [UD] ud
145
145
  # The newly created disassembler.
146
146
  #
147
- def self.open(path,options={},&block)
147
+ def self.open(path,options={})
148
148
  File.open(path,'rb') do |file|
149
149
  ud = self.create(options) do |ud|
150
150
  if (b = file.getc)
@@ -154,7 +154,7 @@ module FFI
154
154
  end
155
155
  end
156
156
 
157
- block.call(ud) if block
157
+ yield ud if block_given?
158
158
  end
159
159
 
160
160
  return nil
@@ -471,7 +471,7 @@ module FFI
471
471
  UDis86.ud_insn_hex(self)
472
472
  end
473
473
 
474
- alias :to_s :to_asm
474
+ alias to_s to_asm
475
475
 
476
476
  #
477
477
  # Returns the operands for the last disassembled instruction.
@@ -481,14 +481,7 @@ module FFI
481
481
  #
482
482
  def operands
483
483
  self[:operand].entries.select do |operand|
484
- [
485
- :ud_op_reg,
486
- :ud_op_mem,
487
- :ud_op_ptr,
488
- :ud_op_imm,
489
- :ud_op_jimm,
490
- :ud_op_const
491
- ].include?(operand.type)
484
+ OPERAND_TYPES.include?(operand.type)
492
485
  end
493
486
  end
494
487
 
@@ -547,16 +540,16 @@ module FFI
547
540
  # @return [UD]
548
541
  # The disassembler.
549
542
  #
550
- def disassemble(&block)
543
+ def disassemble
551
544
  until UDis86.ud_disassemble(self) == 0
552
- block.call(self) if block
545
+ yield self if block_given?
553
546
  end
554
547
 
555
548
  return self
556
549
  end
557
550
 
558
- alias :disas :disassemble
559
- alias :each :disassemble
551
+ alias disas disassemble
552
+ alias each disassemble
560
553
 
561
554
  end
562
555
  end
@@ -1,5 +1,5 @@
1
- require 'udis86/types'
2
- require 'udis86/ud'
1
+ require 'ffi/udis86/types'
2
+ require 'ffi/udis86/ud'
3
3
 
4
4
  require 'ffi'
5
5
 
@@ -1,6 +1,6 @@
1
1
  module FFI
2
2
  module UDis86
3
3
  # udis86-ffi version
4
- VERSION = '0.1.0'
4
+ VERSION = '0.1.1'
5
5
  end
6
6
  end
@@ -1,4 +1 @@
1
- require 'udis86/types'
2
- require 'udis86/ffi'
3
- require 'udis86/ud'
4
- require 'udis86/version'
1
+ require 'ffi/udis86'
@@ -1,4 +1,4 @@
1
- require 'udis86/ud'
1
+ require 'ffi/udis86/ud'
2
2
 
3
3
  require 'spec_helper'
4
4
 
@@ -1,4 +1,4 @@
1
- require 'udis86/ud'
1
+ require 'ffi/udis86/ud'
2
2
 
3
3
  require 'spec_helper'
4
4
  require 'helpers/files'
@@ -1,5 +1,5 @@
1
- require 'udis86/operand'
2
- require 'udis86/ud'
1
+ require 'ffi/udis86/operand'
2
+ require 'ffi/udis86/ud'
3
3
 
4
4
  require 'spec_helper'
5
5
  require 'helpers/operands'
@@ -1,8 +1,6 @@
1
- require 'rubygems'
2
- gem 'rspec', '>=1.3.0'
3
- require 'spec'
4
-
5
- require 'udis86/version'
1
+ gem 'rspec', '~> 2.0.0'
2
+ require 'rspec'
3
+ require 'ffi/udis86/version'
6
4
 
7
5
  include FFI
8
6
  include FFI::UDis86
@@ -1,4 +1,4 @@
1
- require 'udis86/ud'
1
+ require 'ffi/udis86/ud'
2
2
 
3
3
  require 'spec_helper'
4
4
  require 'helpers/files'
@@ -46,16 +46,18 @@ describe UD do
46
46
  end
47
47
 
48
48
  describe "open" do
49
+ let(:hex) { ['90', '90', 'c3'] }
50
+
49
51
  it "should be able to open files" do
50
52
  UD.open(File.join(Helpers::FILES_DIR,'simple')) do |ud|
51
53
  ud.next_insn.should == 1
52
- ud.to_hex.should == '90'
54
+ ud.to_hex.should == hex[0]
53
55
 
54
56
  ud.next_insn.should == 1
55
- ud.to_hex.should == '90'
57
+ ud.to_hex.should == hex[1]
56
58
 
57
59
  ud.next_insn.should == 1
58
- ud.to_hex.should == 'c3'
60
+ ud.to_hex.should == hex[2]
59
61
 
60
62
  ud.next_insn.should == 0
61
63
  end
@@ -63,6 +65,9 @@ describe UD do
63
65
  end
64
66
 
65
67
  describe "disassember" do
68
+ let(:hex) { ['90', '90', 'c3'] }
69
+ let(:ops) { ['nop ', 'nop ', 'ret '] }
70
+
66
71
  before(:each) do
67
72
  File.open(File.join(Helpers::FILES_DIR,'simple'),'rb') do |file|
68
73
  @string = file.read
@@ -125,18 +130,18 @@ describe UD do
125
130
  @ud.skip(2)
126
131
 
127
132
  @ud.next_insn
128
- @ud.to_asm.should == 'ret '
133
+ @ud.to_asm.should == ops.last
129
134
  end
130
135
 
131
136
  it "should get the next instruction" do
132
137
  @ud.next_insn.should == 1
133
- @ud.to_asm.should == 'nop '
138
+ @ud.to_asm.should == ops[0]
134
139
 
135
140
  @ud.next_insn.should == 1
136
- @ud.to_asm.should == 'nop '
141
+ @ud.to_asm.should == ops[1]
137
142
 
138
143
  @ud.next_insn.should == 1
139
- @ud.to_asm.should == 'ret '
144
+ @ud.to_asm.should == ops[2]
140
145
 
141
146
  @ud.next_insn.should == 0
142
147
  end
@@ -161,7 +166,7 @@ describe UD do
161
166
 
162
167
  it "should provide hex form of the bytes" do
163
168
  @ud.next_insn.should == 1
164
- @ud.to_hex.should == '90'
169
+ @ud.to_hex.should == hex.first
165
170
  end
166
171
 
167
172
  it "should provide the mnemonic code of the disassembled instructions" do
@@ -176,7 +181,7 @@ describe UD do
176
181
 
177
182
  it "should provide the assembly form of the disassembled instructions" do
178
183
  @ud.next_insn.should == 1
179
- @ud.to_asm.should == 'nop '
184
+ @ud.to_asm.should == ops[0]
180
185
  end
181
186
 
182
187
  it "should provide the disassembled operands of the instruction" do
@@ -185,11 +190,11 @@ describe UD do
185
190
  end
186
191
 
187
192
  it "should disassemble every byte" do
188
- ops = ['nop ', 'nop ', 'ret ']
193
+ disassembled = []
189
194
 
190
- @ud.disassemble do |ud|
191
- ud.to_asm.should == ops.shift
192
- end
195
+ @ud.disassemble { |ud| disassembled << ud.to_asm }
196
+
197
+ disassembled.should == ops
193
198
  end
194
199
  end
195
200
  end
@@ -1,4 +1,4 @@
1
- require 'udis86/version'
1
+ require 'ffi/udis86/version'
2
2
 
3
3
  require 'spec_helper'
4
4
 
metadata CHANGED
@@ -1,7 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ffi-udis86
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ prerelease: false
5
+ segments:
6
+ - 0
7
+ - 1
8
+ - 1
9
+ version: 0.1.1
5
10
  platform: ruby
6
11
  authors:
7
12
  - Postmodern
@@ -9,39 +14,84 @@ autorequire:
9
14
  bindir: bin
10
15
  cert_chain: []
11
16
 
12
- date: 2010-02-19 00:00:00 -08:00
17
+ date: 2010-11-06 00:00:00 -07:00
13
18
  default_executable:
14
19
  dependencies:
15
20
  - !ruby/object:Gem::Dependency
16
21
  name: ffi
22
+ prerelease: false
23
+ requirement: &id001 !ruby/object:Gem::Requirement
24
+ none: false
25
+ requirements:
26
+ - - ~>
27
+ - !ruby/object:Gem::Version
28
+ segments:
29
+ - 0
30
+ - 6
31
+ - 0
32
+ version: 0.6.0
17
33
  type: :runtime
18
- version_requirement:
19
- version_requirements: !ruby/object:Gem::Requirement
34
+ version_requirements: *id001
35
+ - !ruby/object:Gem::Dependency
36
+ name: ore
37
+ prerelease: false
38
+ requirement: &id002 !ruby/object:Gem::Requirement
39
+ none: false
20
40
  requirements:
21
- - - ">="
41
+ - - ~>
22
42
  - !ruby/object:Gem::Version
23
- version: 0.6.2
24
- version:
43
+ segments:
44
+ - 0
45
+ - 2
46
+ - 0
47
+ version: 0.2.0
48
+ type: :development
49
+ version_requirements: *id002
25
50
  - !ruby/object:Gem::Dependency
26
- name: rspec
51
+ name: ore-tasks
52
+ prerelease: false
53
+ requirement: &id003 !ruby/object:Gem::Requirement
54
+ none: false
55
+ requirements:
56
+ - - ~>
57
+ - !ruby/object:Gem::Version
58
+ segments:
59
+ - 0
60
+ - 1
61
+ - 2
62
+ version: 0.1.2
27
63
  type: :development
28
- version_requirement:
29
- version_requirements: !ruby/object:Gem::Requirement
64
+ version_requirements: *id003
65
+ - !ruby/object:Gem::Dependency
66
+ name: rspec
67
+ prerelease: false
68
+ requirement: &id004 !ruby/object:Gem::Requirement
69
+ none: false
30
70
  requirements:
31
- - - ">="
71
+ - - ~>
32
72
  - !ruby/object:Gem::Version
33
- version: 1.3.0
34
- version:
73
+ segments:
74
+ - 2
75
+ - 0
76
+ - 0
77
+ version: 2.0.0
78
+ type: :development
79
+ version_requirements: *id004
35
80
  - !ruby/object:Gem::Dependency
36
81
  name: yard
37
- type: :development
38
- version_requirement:
39
- version_requirements: !ruby/object:Gem::Requirement
82
+ prerelease: false
83
+ requirement: &id005 !ruby/object:Gem::Requirement
84
+ none: false
40
85
  requirements:
41
- - - ">="
86
+ - - ~>
42
87
  - !ruby/object:Gem::Version
43
- version: 0.5.3
44
- version:
88
+ segments:
89
+ - 0
90
+ - 6
91
+ - 0
92
+ version: 0.6.0
93
+ type: :development
94
+ version_requirements: *id005
45
95
  description: Ruby FFI bindings for udis86, a x86 and x86-64 disassembler.
46
96
  email: postmodern.mod3@gmail.com
47
97
  executables: []
@@ -49,11 +99,9 @@ executables: []
49
99
  extensions: []
50
100
 
51
101
  extra_rdoc_files:
52
- - ChangeLog.md
53
- - LICENSE.txt
54
102
  - README.md
55
103
  files:
56
- - .gitignore
104
+ - .rspec
57
105
  - .specopts
58
106
  - .yardopts
59
107
  - ChangeLog.md
@@ -61,14 +109,16 @@ files:
61
109
  - README.md
62
110
  - Rakefile
63
111
  - ffi-udis86.gemspec
112
+ - gemspec.yml
113
+ - lib/ffi/udis86.rb
114
+ - lib/ffi/udis86/operand.rb
115
+ - lib/ffi/udis86/operand_pointer.rb
116
+ - lib/ffi/udis86/operand_value.rb
117
+ - lib/ffi/udis86/types.rb
118
+ - lib/ffi/udis86/ud.rb
119
+ - lib/ffi/udis86/udis86.rb
120
+ - lib/ffi/udis86/version.rb
64
121
  - lib/udis86.rb
65
- - lib/udis86/ffi.rb
66
- - lib/udis86/operand.rb
67
- - lib/udis86/operand_pointer.rb
68
- - lib/udis86/operand_value.rb
69
- - lib/udis86/types.rb
70
- - lib/udis86/ud.rb
71
- - lib/udis86/version.rb
72
122
  - spec/helpers/files.rb
73
123
  - spec/helpers/files/operands_index_scale
74
124
  - spec/helpers/files/operands_index_scale.s
@@ -87,36 +137,37 @@ files:
87
137
  - spec/udis86_spec.rb
88
138
  has_rdoc: yard
89
139
  homepage: http://github.com/sophsec/ffi-udis86
90
- licenses: []
91
-
140
+ licenses:
141
+ - MIT
92
142
  post_install_message:
93
- rdoc_options:
94
- - --charset=UTF-8
143
+ rdoc_options: []
144
+
95
145
  require_paths:
96
146
  - lib
97
147
  required_ruby_version: !ruby/object:Gem::Requirement
148
+ none: false
98
149
  requirements:
99
150
  - - ">="
100
151
  - !ruby/object:Gem::Version
152
+ segments:
153
+ - 0
101
154
  version: "0"
102
- version:
103
155
  required_rubygems_version: !ruby/object:Gem::Requirement
156
+ none: false
104
157
  requirements:
105
158
  - - ">="
106
159
  - !ruby/object:Gem::Version
160
+ segments:
161
+ - 0
107
162
  version: "0"
108
- version:
109
- requirements: []
110
-
111
- rubyforge_project:
112
- rubygems_version: 1.3.5
163
+ requirements:
164
+ - udis86, 1.7 or greater
165
+ rubyforge_project: ffi-udis86
166
+ rubygems_version: 1.3.7
113
167
  signing_key:
114
168
  specification_version: 3
115
169
  summary: Ruby FFI bindings for udis86, a x86 and x86-64 disassembler.
116
170
  test_files:
117
- - spec/spec_helper.rb
118
- - spec/udis86_spec.rb
119
171
  - spec/ud_spec.rb
120
- - spec/helpers/files.rb
121
- - spec/helpers/operands.rb
122
172
  - spec/operand_spec.rb
173
+ - spec/udis86_spec.rb
data/.gitignore DELETED
@@ -1,8 +0,0 @@
1
- doc
2
- pkg
3
- tmp/*
4
- .DS_Store
5
- .yardoc
6
- *.o
7
- *.swp
8
- *~