pedump 0.6.6 → 0.6.7

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a29cf374abd4b35bce80ba41d7e9be527931e3605217a3b1896005092c9c638d
4
- data.tar.gz: 323f9367be9ebcda64f92ad60816909636b9e78f7afbbba3f4285ea144b088c7
3
+ metadata.gz: 9ba70619b5754fa0d8c35a0d9d229b78074096e11438678784f7735686101c93
4
+ data.tar.gz: 37d5785c6a3c9e411c2b3fe8359f216cea26c0084b8a1bcdf2df18f745654190
5
5
  SHA512:
6
- metadata.gz: 3ca387ff060430589432109b1555c8ce4f8249a2964369c18191381a7efa51638d93af5685a38ba1f00224bd44da013e3fd2f6a255b40d9745ea654b5d11c782
7
- data.tar.gz: cae940b00dd6d77e896d9593296b3ab3b16d4cdc88ba1bd8e0eded2ee40f7a8427a6513d6ae817bb234752fc909a72827d8b7afd8d0eb5d3a829b239fc9ed47a
6
+ metadata.gz: a3bbd37ffaaf1328c13d10d1a764cd3d685e6c4364d6fb5ab4bfd787f51e135b9b284572f88828a73c8ae3fb381646e9044508c6dc9eeff6f8b5d348e8d75474
7
+ data.tar.gz: 9303ed13e74f33c607622a7497d7635718696e28b44dd0027d3ca353aa62474621b264609971ee80917da4b4c458903a9b227ebd9b3761a4ccf0d5fad2df00f0
data/Gemfile.lock CHANGED
@@ -1,14 +1,14 @@
1
1
  GEM
2
2
  remote: https://rubygems.org/
3
3
  specs:
4
- addressable (2.8.0)
5
- public_suffix (>= 2.0.2, < 5.0)
4
+ addressable (2.8.5)
5
+ public_suffix (>= 2.0.2, < 6.0)
6
6
  awesome_print (1.9.2)
7
7
  builder (3.2.4)
8
8
  descendants_tracker (0.0.4)
9
9
  thread_safe (~> 0.3, >= 0.3.1)
10
10
  diff-lcs (1.5.0)
11
- faraday (1.9.3)
11
+ faraday (1.10.3)
12
12
  faraday-em_http (~> 1.0)
13
13
  faraday-em_synchrony (~> 1.0)
14
14
  faraday-excon (~> 1.1)
@@ -24,14 +24,14 @@ GEM
24
24
  faraday-em_synchrony (1.0.0)
25
25
  faraday-excon (1.1.0)
26
26
  faraday-httpclient (1.0.1)
27
- faraday-multipart (1.0.3)
28
- multipart-post (>= 1.2, < 3)
27
+ faraday-multipart (1.0.4)
28
+ multipart-post (~> 2)
29
29
  faraday-net_http (1.0.1)
30
30
  faraday-net_http_persistent (1.2.0)
31
31
  faraday-patron (1.0.0)
32
32
  faraday-rack (1.0.0)
33
33
  faraday-retry (1.0.3)
34
- git (1.13.1)
34
+ git (1.18.0)
35
35
  addressable (~> 2.8)
36
36
  rchardet (~> 1.8)
37
37
  github_api (0.19.0)
@@ -41,7 +41,7 @@ GEM
41
41
  hashie (~> 3.5, >= 3.5.2)
42
42
  oauth2 (~> 1.0)
43
43
  hashie (3.6.0)
44
- highline (2.0.3)
44
+ highline (2.1.0)
45
45
  iostruct (0.0.5)
46
46
  juwelier (2.4.9)
47
47
  builder
@@ -55,15 +55,15 @@ GEM
55
55
  rake
56
56
  rdoc
57
57
  semver2
58
- jwt (2.3.0)
58
+ jwt (2.7.1)
59
59
  kamelcase (0.0.2)
60
60
  semver2 (~> 3)
61
- mini_portile2 (2.8.1)
61
+ mini_portile2 (2.8.5)
62
62
  multi_json (1.15.0)
63
63
  multi_xml (0.6.0)
64
64
  multipart-post (2.3.0)
65
- nokogiri (1.14.3)
66
- mini_portile2 (~> 2.8.0)
65
+ nokogiri (1.15.5)
66
+ mini_portile2 (~> 2.8.2)
67
67
  racc (~> 1.4)
68
68
  oauth2 (1.4.11)
69
69
  faraday (>= 0.17.3, < 3.0)
@@ -71,35 +71,35 @@ GEM
71
71
  multi_json (~> 1.3)
72
72
  multi_xml (~> 0.5)
73
73
  rack (>= 1.2, < 4)
74
- psych (4.0.3)
74
+ psych (5.1.1.1)
75
75
  stringio
76
- public_suffix (4.0.6)
77
- racc (1.6.2)
78
- rack (3.0.6.1)
76
+ public_suffix (5.0.4)
77
+ racc (1.7.3)
78
+ rack (3.0.8)
79
79
  rainbow (3.1.1)
80
- rake (13.0.6)
80
+ rake (13.1.0)
81
81
  rchardet (1.8.0)
82
- rdoc (6.4.0)
82
+ rdoc (6.6.0)
83
83
  psych (>= 4.0.0)
84
84
  rspec (3.12.0)
85
85
  rspec-core (~> 3.12.0)
86
86
  rspec-expectations (~> 3.12.0)
87
87
  rspec-mocks (~> 3.12.0)
88
- rspec-core (3.12.0)
88
+ rspec-core (3.12.2)
89
89
  rspec-support (~> 3.12.0)
90
- rspec-expectations (3.12.0)
90
+ rspec-expectations (3.12.3)
91
91
  diff-lcs (>= 1.2.0, < 2.0)
92
92
  rspec-support (~> 3.12.0)
93
93
  rspec-its (1.3.0)
94
94
  rspec-core (>= 3.0.0)
95
95
  rspec-expectations (>= 3.0.0)
96
- rspec-mocks (3.12.0)
96
+ rspec-mocks (3.12.6)
97
97
  diff-lcs (>= 1.2.0, < 2.0)
98
98
  rspec-support (~> 3.12.0)
99
- rspec-support (3.12.0)
99
+ rspec-support (3.12.1)
100
100
  ruby2_keywords (0.0.5)
101
101
  semver2 (3.4.2)
102
- stringio (3.0.1)
102
+ stringio (3.1.0)
103
103
  thread_safe (0.3.6)
104
104
  zhexdump (0.0.2)
105
105
 
data/README.md CHANGED
@@ -4,6 +4,7 @@ pedump [![Build Status](https://travis-ci.org/zed-0xff/pedump.png?branch=mast
4
4
  News
5
5
  ----
6
6
  ```
7
+ 2023.12.04 - workaround IO.pread() not available on windows
7
8
  2021.02.18 - updated gems; changed open-uri to URI.open; enabled SSL on https://pedump.me/
8
9
  2020.08.09 - CLI: added resource extracting with --extract ID
9
10
  2020.07.28 - 0.6.1; better RICH HDR parsing/output
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.6.6
1
+ 0.6.7
data/lib/pedump/cli.rb CHANGED
@@ -864,7 +864,7 @@ class PEdump::CLI
864
864
  exit(1)
865
865
  end
866
866
  if entry.size != 0
867
- IO::copy_stream @pedump.io, $stdout, entry.size, @pedump.va2file(entry.va)
867
+ _copy_stream @pedump.io, $stdout, entry.size, @pedump.va2file(entry.va)
868
868
  end
869
869
  end
870
870
 
@@ -887,7 +887,7 @@ class PEdump::CLI
887
887
  @pedump.logger.fatal "[!] resource #{id.inspect} not found"
888
888
  exit(1)
889
889
  end
890
- IO::copy_stream @pedump.io, $stdout, res.size, res.file_offset
890
+ _copy_stream @pedump.io, $stdout, res.size, res.file_offset
891
891
  end
892
892
 
893
893
  def extract_section id
@@ -911,7 +911,31 @@ class PEdump::CLI
911
911
  @pedump.logger.fatal "[!] section #{id.inspect} not found"
912
912
  exit(1)
913
913
  end
914
- IO::copy_stream @pedump.io, $stdout, section.SizeOfRawData, section.PointerToRawData
914
+ _copy_stream @pedump.io, $stdout, section.SizeOfRawData, section.PointerToRawData
915
+ end
916
+
917
+ private
918
+
919
+ # https://github.com/zed-0xff/pedump/issues/44
920
+ # https://redmine.ruby-lang.org/issues/12280
921
+ def _copy_stream(src, dst, src_length = nil, src_offset = 0)
922
+ IO::copy_stream(src, dst, src_length, src_offset)
923
+ rescue NotImplementedError # `copy_stream': pread() not implemented (NotImplementedError)
924
+ src_length ||= src.size - src_offset
925
+ bufsize = 16384
926
+ buf = ("\x00".force_encoding('binary')) * bufsize
927
+ src.binmode
928
+ dst.binmode
929
+ saved_pos = src.tell
930
+ src.seek(src_offset)
931
+ bytes_copied = 0
932
+ while src_length > 0 && buf.size != 0
933
+ src.read([bufsize, src_length].min, buf)
934
+ dst.write(buf)
935
+ src_length -= buf.size
936
+ bytes_copied += buf.size
937
+ end
938
+ src.seek(saved_pos)
939
+ bytes_copied
915
940
  end
916
-
917
941
  end # class PEdump::CLI
data/pedump.gemspec CHANGED
@@ -2,16 +2,16 @@
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
3
  # Instead, edit Juwelier::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
- # stub: pedump 0.6.6 ruby lib
5
+ # stub: pedump 0.6.7 ruby lib
6
6
 
7
7
  Gem::Specification.new do |s|
8
8
  s.name = "pedump".freeze
9
- s.version = "0.6.6"
9
+ s.version = "0.6.7"
10
10
 
11
11
  s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
12
12
  s.require_paths = ["lib".freeze]
13
13
  s.authors = ["Andrey \"Zed\" Zaikin".freeze]
14
- s.date = "2023-04-16"
14
+ s.date = "2023-12-04"
15
15
  s.description = "dump headers, sections, extract resources of win32 PE exe,dll,etc".freeze
16
16
  s.email = "zed.0xff@gmail.com".freeze
17
17
  s.executables = ["pedump".freeze]
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pedump
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.6
4
+ version: 0.6.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrey "Zed" Zaikin
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-04-16 00:00:00.000000000 Z
11
+ date: 2023-12-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rainbow