pedump 0.7.3 → 0.7.5

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: dd0f244a4510c9dd2d331be3789b3deae796e4b87c68a50c5ab21e5a757d1341
4
- data.tar.gz: f90e27cecf5b25275e2f53b92d8dd894bc5d10cc61ead2a2f7e6d174fe45c4ed
3
+ metadata.gz: d422e0cae0fcfb5090f13cdbe0e9fe8635463ba9cfccee49a110f766a962be9f
4
+ data.tar.gz: cbffb2114ff2b8195ffeb2ed5b92a2cadf4dadd35303802c30d6386c91041b2d
5
5
  SHA512:
6
- metadata.gz: ca89ec6a27c7f7a0d25756bdcacddbd0e0edcf98d33dd7869ee4404d1c40f47610388d6516d120ef3367075185ec13e560f4835022ab20d35f650243cebce167
7
- data.tar.gz: fcc1b0194cd9d3ea39ad44e0f95f0d50432c697d45c5d6608bfeeb98214fef97d27a5660fa6cacdcd718c0a53fe3c043a8b628207be1834cdffb5e0f0f78459d
6
+ metadata.gz: 9d4d9ca21d96b9ac64339da6208fa049d364384e505ff6e9d2a5232aa2cd711c3bd8b37a5fb1141b601df1f7ef82cc70c6a0a5389d03a2ffc4ab76d1c8b7ea3e
7
+ data.tar.gz: 8468e35a72ff9d84e475092aee3b8f0e0e0e0b5927197f0a3d6cc2d99d68552d98cb7cbc096f7de6439d5df1a981710f4f53389974d43f5dcc2ac8d5d0f7f5fd
data/Gemfile CHANGED
@@ -1,15 +1,10 @@
1
- source "https://rubygems.org"
2
- #gemspec
1
+ # frozen_string_literal: true
3
2
 
4
- gem 'rainbow'
5
- gem "awesome_print"
6
- gem "iostruct", ">= 0.5.0"
7
- gem "multipart-post", ">= 2.0.0"
8
- gem "zhexdump", ">= 0.0.2"
3
+ source 'https://rubygems.org'
9
4
 
10
- group :development do
11
- gem "rspec"
12
- gem "rspec-its"
13
- gem "bundler"
14
- gem "juwelier"
5
+ gemspec
6
+
7
+ group :development, :test do
8
+ gem 'rspec'
9
+ gem 'rspec-its'
15
10
  end
data/Gemfile.lock CHANGED
@@ -1,174 +1,43 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ pedump (0.7.4)
5
+ iostruct (>= 0.7.0)
6
+ logger
7
+ zhexdump (>= 0.0.2)
8
+
1
9
  GEM
2
10
  remote: https://rubygems.org/
3
11
  specs:
4
- activesupport (8.0.1)
5
- base64
6
- benchmark (>= 0.3)
7
- bigdecimal
8
- concurrent-ruby (~> 1.0, >= 1.3.1)
9
- connection_pool (>= 2.2.5)
10
- drb
11
- i18n (>= 1.6, < 2)
12
- logger (>= 1.4.2)
13
- minitest (>= 5.1)
14
- securerandom (>= 0.3)
15
- tzinfo (~> 2.0, >= 2.0.5)
16
- uri (>= 0.13.1)
17
- addressable (2.8.7)
18
- public_suffix (>= 2.0.2, < 7.0)
19
- awesome_print (1.9.2)
20
- base64 (0.2.0)
21
- benchmark (0.4.0)
22
- bigdecimal (3.1.9)
23
- builder (3.3.0)
24
- concurrent-ruby (1.3.5)
25
- connection_pool (2.5.0)
26
- date (3.4.1)
27
- descendants_tracker (0.0.4)
28
- thread_safe (~> 0.3, >= 0.3.1)
29
- diff-lcs (1.6.0)
30
- drb (2.2.1)
31
- faraday (1.10.4)
32
- faraday-em_http (~> 1.0)
33
- faraday-em_synchrony (~> 1.0)
34
- faraday-excon (~> 1.1)
35
- faraday-httpclient (~> 1.0)
36
- faraday-multipart (~> 1.0)
37
- faraday-net_http (~> 1.0)
38
- faraday-net_http_persistent (~> 1.0)
39
- faraday-patron (~> 1.0)
40
- faraday-rack (~> 1.0)
41
- faraday-retry (~> 1.0)
42
- ruby2_keywords (>= 0.0.4)
43
- faraday-em_http (1.0.0)
44
- faraday-em_synchrony (1.0.0)
45
- faraday-excon (1.1.0)
46
- faraday-httpclient (1.0.1)
47
- faraday-multipart (1.1.0)
48
- multipart-post (~> 2.0)
49
- faraday-net_http (1.0.2)
50
- faraday-net_http_persistent (1.2.0)
51
- faraday-patron (1.0.0)
52
- faraday-rack (1.0.0)
53
- faraday-retry (1.0.3)
54
- git (2.3.3)
55
- activesupport (>= 5.0)
56
- addressable (~> 2.8)
57
- process_executer (~> 1.1)
58
- rchardet (~> 1.8)
59
- github_api (0.19.0)
60
- addressable (~> 2.4)
61
- descendants_tracker (~> 0.0.4)
62
- faraday (>= 0.8, < 2)
63
- hashie (~> 3.5, >= 3.5.2)
64
- oauth2 (~> 1.0)
65
- hashie (3.6.0)
66
- highline (3.1.2)
67
- reline
68
- i18n (1.14.7)
69
- concurrent-ruby (~> 1.0)
70
- io-console (0.8.0)
71
- iostruct (0.5.0)
72
- juwelier (2.4.9)
73
- builder
74
- bundler
75
- git
76
- github_api
77
- highline
78
- kamelcase (~> 0)
79
- nokogiri
80
- psych
81
- rake
82
- rdoc
83
- semver2
84
- jwt (2.10.1)
85
- base64
86
- kamelcase (0.0.2)
87
- semver2 (~> 3)
88
- logger (1.6.6)
89
- mini_portile2 (2.8.8)
90
- minitest (5.25.4)
91
- multi_json (1.15.0)
92
- multi_xml (0.7.1)
93
- bigdecimal (~> 3.1)
94
- multipart-post (2.4.1)
95
- nokogiri (1.18.4)
96
- mini_portile2 (~> 2.8.2)
97
- racc (~> 1.4)
98
- nokogiri (1.18.4-aarch64-linux-gnu)
99
- racc (~> 1.4)
100
- nokogiri (1.18.4-arm-linux-gnu)
101
- racc (~> 1.4)
102
- nokogiri (1.18.4-arm64-darwin)
103
- racc (~> 1.4)
104
- nokogiri (1.18.4-x86_64-darwin)
105
- racc (~> 1.4)
106
- nokogiri (1.18.4-x86_64-linux-gnu)
107
- racc (~> 1.4)
108
- oauth2 (1.4.11)
109
- faraday (>= 0.17.3, < 3.0)
110
- jwt (>= 1.0, < 3.0)
111
- multi_json (~> 1.3)
112
- multi_xml (~> 0.5)
113
- rack (>= 1.2, < 4)
114
- process_executer (1.3.0)
115
- psych (5.2.3)
116
- date
117
- stringio
118
- public_suffix (6.0.1)
119
- racc (1.8.1)
120
- rack (3.1.12)
121
- rainbow (3.1.1)
122
- rake (13.2.1)
123
- rchardet (1.9.0)
124
- rdoc (6.12.0)
125
- psych (>= 4.0.0)
126
- reline (0.6.0)
127
- io-console (~> 0.5)
128
- rspec (3.13.0)
12
+ diff-lcs (1.6.2)
13
+ iostruct (0.7.0)
14
+ logger (1.7.0)
15
+ rspec (3.13.2)
129
16
  rspec-core (~> 3.13.0)
130
17
  rspec-expectations (~> 3.13.0)
131
18
  rspec-mocks (~> 3.13.0)
132
- rspec-core (3.13.3)
19
+ rspec-core (3.13.6)
133
20
  rspec-support (~> 3.13.0)
134
- rspec-expectations (3.13.3)
21
+ rspec-expectations (3.13.5)
135
22
  diff-lcs (>= 1.2.0, < 2.0)
136
23
  rspec-support (~> 3.13.0)
137
24
  rspec-its (2.0.0)
138
25
  rspec-core (>= 3.13.0)
139
26
  rspec-expectations (>= 3.13.0)
140
- rspec-mocks (3.13.2)
27
+ rspec-mocks (3.13.7)
141
28
  diff-lcs (>= 1.2.0, < 2.0)
142
29
  rspec-support (~> 3.13.0)
143
- rspec-support (3.13.2)
144
- ruby2_keywords (0.0.5)
145
- securerandom (0.4.1)
146
- semver2 (3.4.2)
147
- stringio (3.1.5)
148
- thread_safe (0.3.6)
149
- tzinfo (2.0.6)
150
- concurrent-ruby (~> 1.0)
151
- uri (1.0.3)
152
- zhexdump (0.2.0)
30
+ rspec-support (3.13.6)
31
+ zhexdump (0.3.0)
153
32
 
154
33
  PLATFORMS
155
- aarch64-linux
156
- arm-linux
157
- arm64-darwin
158
- x86-linux
159
- x86_64-darwin
160
- x86_64-linux
34
+ arm64-darwin-24
35
+ ruby
161
36
 
162
37
  DEPENDENCIES
163
- awesome_print
164
- bundler
165
- iostruct (>= 0.5.0)
166
- juwelier
167
- multipart-post (>= 2.0.0)
168
- rainbow
38
+ pedump!
169
39
  rspec
170
40
  rspec-its
171
- zhexdump (>= 0.0.2)
172
41
 
173
42
  BUNDLED WITH
174
- 2.5.22
43
+ 2.6.9
data/LICENSE.txt CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2011 Andrey "Zed" Zaikin
1
+ Copyright (c) 2011-2025 Andrey "Zed" Zaikin
2
2
 
3
3
  Permission is hereby granted, free of charge, to any person obtaining
4
4
  a copy of this software and associated documentation files (the
data/README.md CHANGED
@@ -4,6 +4,9 @@ pedump [![Build Status](https://travis-ci.org/zed-0xff/pedump.png?branch=mast
4
4
  News
5
5
  ----
6
6
  ```
7
+ 2026.01.28 - 0.7.5; remove awesome_print, multipart-post, rainbow, juwelier; add logger
8
+ 2026.01.28 - 0.7.4; update iostruct
9
+ 2025.11.11 - 0.7.3; CLI: fix --file2va command :]
7
10
  2025.11.11 - 0.7.1; CLI: add --file2va command
8
11
  2025.03.16 - added .NET CLR parsing
9
12
  2024.04.20 - cli: add --set-dll-char to patch dll characteristics
@@ -111,6 +114,8 @@ Usage
111
114
 
112
115
  --va2file VA Convert VA to file offset
113
116
  --file2va OFFSET Convert file offset to VA
117
+ --rva2file RVA Convert RVA to file offset
118
+ --file2rva OFFSET Convert file offset to RVA
114
119
 
115
120
  --set-os-version VER Patch OS version in PE header
116
121
  --set-dll-char X Patch IMAGE_OPTIONAL_HEADER32.DllCharacteristics
@@ -221,6 +226,28 @@ Usage
221
226
  LoaderFlags: 0
222
227
  NumberOfRvaAndSizes: 16 10
223
228
 
229
+ ### Convert (R)VA to file offset and back
230
+
231
+ # pedump --rva2file 0x4c000 calc.exe
232
+
233
+ rva2file(0x4c000) = 0x4ae00 (306688)
234
+
235
+ # pedump --file2rva 0x4ae00 calc.exe
236
+
237
+ file2rva(0x4ae00) = 0x4c000 (311296)
238
+
239
+ # pedump --va2file 0x104c000 calc.exe
240
+
241
+ va2file(0x104c000) = 0x4ae00 (306688)
242
+
243
+ # pedump --file2va 0x4ae00 calc.exe
244
+
245
+ file2va(0x4ae00) = 0x104c000 (17088512)
246
+
247
+ # pedump --file2va 0x4ae00 calc.exe --format hex
248
+
249
+ 104c000
250
+
224
251
  ### Data Directory
225
252
 
226
253
  # pedump --data-directory calc.exe
data/Rakefile CHANGED
@@ -1,48 +1,23 @@
1
- # encoding: utf-8
2
-
3
- require 'rubygems'
4
- require 'bundler'
5
- begin
6
- Bundler.setup(:default, :development)
7
- rescue Bundler::BundlerError => e
8
- $stderr.puts e.message
9
- $stderr.puts "Run `bundle install` to install missing gems"
10
- exit e.status_code
11
- end
12
- require 'rake'
13
-
14
- require 'juwelier'
15
- Juwelier::Tasks.new do |gem|
16
- # gem is a Gem::Specification... see http://docs.rubygems.org/read/chapter/20 for more options
17
- gem.name = "pedump"
18
- gem.homepage = "http://github.com/zed-0xff/pedump"
19
- gem.license = "MIT"
20
- gem.summary = %Q{dump win32 PE executable files with a pure ruby}
21
- gem.description = %Q{dump headers, sections, extract resources of win32 PE exe,dll,etc}
22
- gem.email = "zed.0xff@gmail.com"
23
- gem.authors = ["Andrey \"Zed\" Zaikin"]
24
- gem.executables = %w'pedump'
25
- gem.files.include "lib/**/*.rb"
26
- gem.files.exclude %w'samples/**/* spec/**/* tmp/**/* tmp/.keep .* README.md.tpl .github/**/*'
27
- gem.extra_rdoc_files.exclude 'README.md.tpl'
28
- # dependencies defined in Gemfile
29
- end
30
- Juwelier::RubygemsDotOrgTasks.new
1
+ # frozen_string_literal: true
31
2
 
32
- require 'rspec/core'
3
+ require 'bundler/gem_tasks'
33
4
  require 'rspec/core/rake_task'
34
5
 
35
- desc "run specs"
6
+ desc 'run specs'
36
7
  RSpec::Core::RakeTask.new
37
8
 
38
- task :default => [:spec, :readme]
9
+ task default: %i[spec readme]
10
+
11
+ task :init do
12
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), 'lib'))
13
+ require 'pedump'
14
+ require 'pedump/cli'
15
+ end
39
16
 
40
17
  namespace :test do
41
- desc "test on all files in given path"
42
- task :all_files do
43
- require './lib/pedump'
44
- require './lib/pedump/cli'
45
- path = ENV['path'] || raise("run me with path=...")
18
+ desc 'test on all files in given path'
19
+ task all_files: :init do
20
+ path = ENV['path'] || raise('run me with path=...')
46
21
  `find #{path} -type f`.split("\n").each do |fname|
47
22
  puts "\n### #{fname}\n"
48
23
  PEdump::CLI.new(fname).run
@@ -50,37 +25,33 @@ namespace :test do
50
25
  end
51
26
 
52
27
  namespace :all_files do
53
- desc "output file name to stderr, use with stdout redirection"
54
- task :stderr do
55
- require './lib/pedump'
56
- require './lib/pedump/cli'
57
- path = ENV['path'] || raise("run me with path=...")
28
+ desc 'output file name to stderr, use with stdout redirection'
29
+ task stderr: :init do
30
+ path = ENV['path'] || raise('run me with path=...')
58
31
  `find #{path} -type f`.split("\n").each do |fname|
59
- STDERR.puts "\n### #{fname}\n"
32
+ warn "\n### #{fname}\n"
60
33
  PEdump::CLI.new(fname).run
61
34
  end
62
35
  end
63
36
  end
64
37
 
65
- desc "test on corkami binaries"
66
- task :corkami do
67
- require './lib/pedump'
68
- require './lib/pedump/cli'
69
- path = "samples/corkami"
70
- `find #{path} -type f`.split("\n").each do |fname|
71
- STDERR.puts "\n### #{fname}\n"
72
- PEdump::CLI.new(fname).run
73
- end
38
+ desc 'test on corkami binaries'
39
+ task corkami: :init do
40
+ path = 'samples/corkami'
41
+ `find #{path} -type f`.split("\n").each do |fname|
42
+ warn "\n### #{fname}\n"
43
+ PEdump::CLI.new(fname).run
44
+ end
74
45
  end
75
46
  end
76
47
 
77
- def check_file url, params = {}
48
+ def check_file(url, params = {})
78
49
  require 'digest/md5'
79
50
  require 'open-uri'
80
51
 
81
52
  params[:min_size] ||= 80_000
82
53
 
83
- STDOUT.sync = true
54
+ $stdout.sync = true
84
55
  prefix = params[:prefix]
85
56
  fname = File.join 'data', (prefix ? "#{prefix}-" : '') + File.basename(url)
86
57
  existing_md5 = File.exist?(fname) ? Digest::MD5.file(fname).hexdigest : ''
@@ -88,127 +59,124 @@ def check_file url, params = {}
88
59
  remote_data = URI.open(url).read.force_encoding('cp1252').encode('utf-8')
89
60
  puts "#{remote_data.size} bytes"
90
61
  raise "too small remote data (#{remote_data.size})" if remote_data.size < params[:min_size]
91
- remote_md5 = Digest::MD5.hexdigest(remote_data)
62
+
63
+ remote_md5 = Digest::MD5.hexdigest(remote_data)
92
64
  if remote_md5 == existing_md5
93
- puts "[.] same as local"
65
+ puts '[.] same as local'
94
66
  else
95
67
  existing_size = File.exist?(fname) ? File.size(fname) : 0
96
- File.open(fname,"wb"){ |f| f << remote_data }
68
+ File.write(fname, remote_data, mode: 'wb')
97
69
  puts "[*] updated: #{existing_size} -> #{remote_data.size}"
98
70
  end
99
71
  end
100
72
 
101
- RICH_IDS_URL = "https://raw.githubusercontent.com/dishather/richprint/master/comp_id.txt"
73
+ RICH_IDS_URL = 'https://raw.githubusercontent.com/dishather/richprint/master/comp_id.txt'
102
74
 
103
75
  namespace :rich do
104
- desc "update rich comp_id db from net"
76
+ desc 'update rich comp_id db from net'
105
77
  task :update do
106
- check_file RICH_IDS_URL, :min_size => 30_000
78
+ check_file RICH_IDS_URL, min_size: 30_000
107
79
  end
108
80
 
109
- desc "convert"
81
+ desc 'convert'
110
82
  task :convert do
111
83
  result = [
112
- "class PEdump",
84
+ 'class PEdump',
113
85
  " # data from #{RICH_IDS_URL}",
114
- " RICH_IDS = {"
86
+ ' RICH_IDS = {'
115
87
  ]
116
88
  n = 0
117
89
  t0 = Time.now
118
- File.readlines(File.join("data", File.basename(RICH_IDS_URL))).each do |line|
90
+ File.readlines(File.join('data', File.basename(RICH_IDS_URL))).each do |line|
119
91
  line.strip!
120
92
  next if line.empty? || line[0] == '#'
93
+
121
94
  comp_id, desc = line.split(nil, 2)
122
95
  raise unless comp_id =~ /\A[0-9a-fA-F]+\Z/
96
+
123
97
  result << " 0x#{comp_id} => #{desc.inspect},"
124
98
  n += 1
125
99
  end
126
- result << " }"
127
- result << "end"
128
- printf "[.] parsed %d definitions in %6.3fs\n", n, Time.now-t0
129
- File.write("lib/pedump/rich.rb", result.join("\n") + "\n")
100
+ result << ' }'
101
+ result << 'end'
102
+ printf "[.] parsed %d definitions in %6.3fs\n", n, Time.now - t0
103
+ File.write('lib/pedump/rich.rb', result.join("\n") + "\n")
130
104
  end
131
105
  end
132
106
 
133
107
  namespace :sigs do
134
- desc "update packers db from net"
135
- task :update do
136
- require './lib/pedump/packer'
137
- check_file "http://research.pandasecurity.com/blogs/images/userdb.txt"
138
- check_file "http://fuu.googlecode.com/svn/trunk/src/x86/Tools/Signaturesdb/signatures.txt"
139
- check_file "http://handlers.sans.edu/jclausing/userdb.txt", :prefix => "jc"
140
- end
141
-
142
- desc "convert txt2bin"
143
- task :convert do
108
+ desc 'convert txt2bin'
109
+ task convert: :init do
144
110
  require './lib/pedump/packer'
145
111
  t0 = Time.now
146
- sigs = PEdump::SigParser.parse :optimize => true, :verbose => true
147
- printf "[.] parsed %d definitions in %6.3fs\n", sigs.size, Time.now-t0
148
- File.open(PEdump::Packer::BIN_SIGS_FILE,"wb"){ |f| Marshal.dump(sigs,f) }
112
+ sigs = PEdump::SigParser.parse optimize: true
113
+ printf "[.] parsed %d definitions in %6.3fs\n", sigs.size, Time.now - t0
114
+ File.open(PEdump::Packer::BIN_SIGS_FILE, 'wb') { |f| Marshal.dump(sigs, f) }
149
115
  end
150
116
 
151
- desc "dump"
152
- task :dump do
117
+ desc 'dump'
118
+ task dump: :init do
153
119
  require './lib/pedump/packer'
154
- require 'awesome_print'
155
- PEdump::Packer.all.
156
- group_by{ |sig| sig.name }.
157
- sort_by{|name,sigs| name }.
158
- each do |name,sigs|
159
- next if sigs.size == 1
160
- puts name.green
161
- sigs.each do |sig|
162
- printf " %-5s %s\n", sig.ep_only, sig.re.source.inspect
163
- end
120
+ PEdump::Packer.all
121
+ .group_by(&:name)
122
+ .sort_by { |name, _sigs| name }
123
+ .each do |name, sigs|
124
+ next if sigs.size == 1
125
+
126
+ puts name
127
+ sigs.each do |sig|
128
+ printf " %-5s %s\n", sig.ep_only, sig.re.source.inspect
164
129
  end
130
+ end
165
131
  end
166
132
  end
167
133
 
168
- desc "build readme"
134
+ desc 'build readme'
169
135
  task :readme do
170
136
  require 'erb'
171
137
  tpl = File.read('README.md.tpl').gsub(/^%\s+(.+)/) do |x|
172
- x.sub! /^%/,''
138
+ x.sub!(/^%/, '')
173
139
  "<%= run(\"#{x}\") %>"
174
140
  end
175
- def run cmd
141
+ def run(cmd)
176
142
  cmd.strip!
177
143
  puts "[.] #{cmd} ..."
178
144
  r = " # #{cmd}\n\n"
179
- cmd.sub! /^pedump/,"../bin/pedump"
180
- lines = `#{cmd}`.sub(/\A\n+/m,'').sub(/\s+\Z/,'').split("\n")
181
- lines = lines[0,25] + ['...'] if lines.size > 50 && cmd.split.last != '-h'
182
- r << lines.map{|x| " #{x}"}.join("\n")
145
+ cmd.sub!(/^pedump/, '../bin/pedump')
146
+ lines = `#{cmd}`.sub(/\A\n+/m, '').sub(/\s+\Z/, '').split("\n")
147
+ lines = lines[0, 25] + ['...'] if lines.size > 50 && cmd.split.last != '-h'
148
+ r << lines.map { |x| " #{x}" }.join("\n")
183
149
  r << "\n"
184
150
  end
185
151
  Dir.chdir 'samples'
186
- result = ERB.new(tpl,nil,'%>').result
152
+ result = ERB.new(tpl, trim_mode: '%>').result
187
153
  Dir.chdir '..'
188
- File.open('README.md','w'){ |f| f << result }
154
+ File.write('README.md', result)
189
155
  end
190
156
 
191
157
  namespace :console do
192
- desc "start console with PEdump::Loader with loaded file"
158
+ desc 'start console with PEdump::Loader with loaded file'
193
159
  task :load do
194
- raise "gimme a fname" unless fname = ENV['fname']
160
+ raise 'gimme a fname' unless (fname = ENV['fname'])
161
+
195
162
  require './lib/pedump'
196
163
  require './lib/pedump/loader'
197
164
  require 'pp'
198
- File.open(fname,"rb") do |f|
165
+ File.open(fname, 'rb') do |f|
199
166
  @ldr = PEdump::Loader.new f
200
- puts "[.] loader is at @ldr"
167
+ puts '[.] loader is at @ldr'
201
168
  pp @ldr.sections
202
- Rake::Task["console"].execute
169
+ Rake::Task['console'].execute
203
170
  end
204
171
  end
205
172
  end
206
173
 
207
- desc "compare two PE files"
174
+ desc 'compare two PE files'
208
175
  task :cmp do
209
- raise "gimme a f1" unless f1 = ENV['f1']
210
- raise "gimme a f2" unless f2 = ENV['f2']
176
+ raise 'gimme a f1' unless (f1 = ENV['f1'])
177
+ raise 'gimme a f2' unless (f2 = ENV['f2'])
178
+
211
179
  require './lib/pedump'
212
180
  require './lib/pedump/comparer'
213
- PEdump::Comparer.cmp(f1,f2)
181
+ PEdump::Comparer.cmp(f1, f2)
214
182
  end
data/data/jc-userdb.txt CHANGED
@@ -4301,13 +4301,9 @@ signature = 68 ?? ?? ?? ?? 64 A1 00 00 00 00 50 8B 44 24 10 89 6C 24 10 8D 6C 24
4301
4301
  ep_only = false
4302
4302
 
4303
4303
  [Microsoft Visual C++ 6.0 - 8.0]
4304
- signature = 68 ?? ?? ?? ?? 64 A1 00 00 00 00 50 8B 44 24 10 89 6C 24 10 8D 6C 24 10 2B E0 53 56 57 8B 45 F8 89 65 E8 50 8B 45 FC C7 45 FC FF FF FF FF 89 45 F8 8D 45 F0 64 A3 00 00 00 00 C3 8B 4D F0 64 89 0D 00 00 00 00 59 5F 5E 5B C9 51 C3 &# 40 ;T RU NC AT ED HE RE &# 41
4304
+ signature = 68 ?? ?? ?? ?? 64 A1 00 00 00 00 50 8B 44 24 10 89 6C 24 10 8D 6C 24 10 2B E0 53 56 57 8B 45 F8 89 65 E8 50 8B 45 FC C7 45 FC FF FF FF FF 89 45 F8 8D 45 F0 64 A3 00 00 00 00 C3 8B 4D F0 64 89 0D 00 00 00 00 59 5F 5E 5B C9 51 C3
4305
4305
  ep_only = true
4306
4306
 
4307
- [Microsoft Visual C++ 6.0 - 8.0]
4308
- signature = 68 ?? ?? ?? ?? 64 A1 00 00 00 00 50 8B 44 24 10 89 6C 24 10 8D 6C 24 10 2B E0 53 56 57 8B 45 F8 89 65 E8 50 8B 45 FC C7 45 FC FF FF FF FF 89 45 F8 8D 45 F0 64 A3 00 00 00 00 C3 8B 4D F0 64 89 0D 00 00 00 00 59 5F 5E 5B C9 51 C3 &#40;TRUNCATED HERE&#41
4309
- ep_only = false
4310
-
4311
4307
  [Microsoft Visual C++ 6.0 - 8.0]
4312
4308
  signature = 8B 44 24 08 85 C0 0F 84 ?? ?? ?? ?? 83 F8 01 8B 0D ?? ?? ?? ?? 8B 09 89 0D ?? ?? ?? ?? 0F 85 ?? ?? ?? ?? 68 80 00 00 00 FF 15 ?? ?? ?? ?? 85 C0 59 A3 ?? ?? ?? ?? 0F 84 ?? ?? ?? ?? 83 20 00 A1 ?? ?? ?? ?? 68 ?? ?? ?? ?? 68 ?? ?? ?? ?? A3 ?? ?? ?? ?? E8
4313
4309
  ep_only = false
@@ -9946,7 +9942,7 @@ signature = E8 00 00 00 00 5E 83 C6 14 AD 89 C7 AD 89 C1 AD 30 07 47 E2 FB AD FF
9946
9942
  ep_only = true
9947
9943
 
9948
9944
  [UPX-Shit v0.1 -> 500mhz]
9949
- signature = E8 00 00 00 00 5E 83 C6 14 AD 89 C7 AD 89 C1 AD 30 07 47 E2 FB AD FF E0 C3 00 ?? ?? 00 ?? ?? ?? 00 ?? ?? ?? <SPAN STYLE="FONT-WEIGHT: BOLD">01</SPAN> ?? ?? ?? 00 55 50 58 2D 53 68 69 74 20 76 30 2E 31 20 2D 20 77 77 77 2E 62 6C 61 63 6B 6C 6F 67 69 63 2E 6E 65 74 20 2D 20 63 6F 64 65 20 62 79 20 5B 35 30 30 6D 68 7A 5D
9945
+ signature = E8 00 00 00 00 5E 83 C6 14 AD 89 C7 AD 89 C1 AD 30 07 47 E2 FB AD FF E0 C3 00 ?? ?? 00 ?? ?? ?? 00 ?? ?? ?? 01 ?? ?? ?? 00 55 50 58 2D 53 68 69 74 20 76 30 2E 31 20 2D 20 77 77 77 2E 62 6C 61 63 6B 6C 6F 67 69 63 2E 6E 65 74 20 2D 20 63 6F 64 65 20 62 79 20 5B 35 30 30 6D 68 7A 5D
9950
9946
  ep_only = true
9951
9947
 
9952
9948
  [UPX-Shit v0.1 -> 500mhz]
data/data/sig.bin CHANGED
Binary file