zsteg 0.2.2 → 0.2.3

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 (8) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +1 -1
  3. data/Gemfile.lock +25 -21
  4. data/README.md +43 -10
  5. data/README.md.tpl +5 -0
  6. data/VERSION +1 -1
  7. data/zsteg.gemspec +12 -18
  8. metadata +9 -10
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9cbd90a40f2e7c5887653e17d266073d964185f049000c3d704a0cd462ee3b3e
4
- data.tar.gz: 5f7040b4ca3bc1069cbd556ceaf20b80117e41e17fff578ecb3f185303a9dd5e
3
+ metadata.gz: 03b8c9494bd4dfb5953973438b62cd909abb1a0d6fc46363928e9a3773e1e47a
4
+ data.tar.gz: a46faa826bc3781860881b4c15d9e6c04fb86da6dedfd5df2487f62fa09fcbf1
5
5
  SHA512:
6
- metadata.gz: 3dbfdb5390d25de2011b00cf4cfce969f6930694fc8fc47b6f626e3b039d5a8c53f0ef1afe713a1ade97c2d3129b3a60fe8eb1ad54af8b2f35c230f473a2b38a
7
- data.tar.gz: 8a8487053186618183700c263940d7f4c9c5870981cc5f605c84691a9d29a31f047fc6c56453df7f1a91211d8dbfe566cc8a64f3c2e2d68de7467fcbcc3768ad
6
+ metadata.gz: 5f4243a62114c5098d56c59d273deaff5addf89b334377ba0d63032a6aee9759720ff3772805ae6a445179d3487a40b436024cc1c431f9a723e8de5140e2f683
7
+ data.tar.gz: 86eed1938f6c92812ab461f25b8647a25034e06b1b8c23b81187c253ef987de84d49a5e6d1521874fc480cf9cbe136559d921ab91ea8d2501383a13688dcb49d
data/Gemfile CHANGED
@@ -5,6 +5,6 @@ gem "iostruct"
5
5
 
6
6
  group :development do
7
7
  gem "rspec", "~> 3.9.0"
8
- gem "bundler", "~> 2.1.4"
8
+ gem "bundler", "~> 2.2.3"
9
9
  gem "jeweler", "~> 2.3.9"
10
10
  end
data/Gemfile.lock CHANGED
@@ -5,10 +5,11 @@ GEM
5
5
  builder (3.2.4)
6
6
  descendants_tracker (0.0.4)
7
7
  thread_safe (~> 0.3, >= 0.3.1)
8
- diff-lcs (1.3)
8
+ diff-lcs (1.4.4)
9
9
  faraday (0.9.2)
10
10
  multipart-post (>= 1.2, < 3)
11
- git (1.5.0)
11
+ git (1.8.1)
12
+ rchardet (~> 1.8)
12
13
  github_api (0.16.0)
13
14
  addressable (~> 2.4.0)
14
15
  descendants_tracker (~> 0.0.4)
@@ -16,9 +17,9 @@ GEM
16
17
  hashie (>= 3.4)
17
18
  mime-types (>= 1.16, < 3.0)
18
19
  oauth2 (~> 1.0)
19
- hashie (4.0.0)
20
+ hashie (4.1.0)
20
21
  highline (2.0.3)
21
- iostruct (0.0.1)
22
+ iostruct (0.0.4)
22
23
  jeweler (2.3.9)
23
24
  builder
24
25
  bundler
@@ -30,52 +31,55 @@ GEM
30
31
  rake
31
32
  rdoc
32
33
  semver2
33
- jwt (2.2.1)
34
+ jwt (2.2.2)
34
35
  mime-types (2.99.3)
35
- mini_portile2 (2.4.0)
36
- multi_json (1.14.1)
36
+ mini_portile2 (2.5.0)
37
+ multi_json (1.15.0)
37
38
  multi_xml (0.6.0)
38
39
  multipart-post (2.1.1)
39
- nokogiri (1.10.7)
40
- mini_portile2 (~> 2.4.0)
41
- oauth2 (1.4.2)
40
+ nokogiri (1.11.1)
41
+ mini_portile2 (~> 2.5.0)
42
+ racc (~> 1.4)
43
+ oauth2 (1.4.4)
42
44
  faraday (>= 0.8, < 2.0)
43
45
  jwt (>= 1.0, < 3.0)
44
46
  multi_json (~> 1.3)
45
47
  multi_xml (~> 0.5)
46
48
  rack (>= 1.2, < 3)
47
- psych (3.1.0)
48
- rack (2.1.1)
49
+ psych (3.3.0)
50
+ racc (1.5.2)
51
+ rack (2.2.3)
49
52
  rainbow (3.0.0)
50
- rake (13.0.1)
51
- rdoc (6.2.1)
53
+ rake (13.0.3)
54
+ rchardet (1.8.0)
55
+ rdoc (6.3.0)
52
56
  rspec (3.9.0)
53
57
  rspec-core (~> 3.9.0)
54
58
  rspec-expectations (~> 3.9.0)
55
59
  rspec-mocks (~> 3.9.0)
56
- rspec-core (3.9.1)
57
- rspec-support (~> 3.9.1)
58
- rspec-expectations (3.9.0)
60
+ rspec-core (3.9.3)
61
+ rspec-support (~> 3.9.3)
62
+ rspec-expectations (3.9.4)
59
63
  diff-lcs (>= 1.2.0, < 2.0)
60
64
  rspec-support (~> 3.9.0)
61
65
  rspec-mocks (3.9.1)
62
66
  diff-lcs (>= 1.2.0, < 2.0)
63
67
  rspec-support (~> 3.9.0)
64
- rspec-support (3.9.2)
68
+ rspec-support (3.9.4)
65
69
  semver2 (3.4.2)
66
70
  thread_safe (0.3.6)
67
- zpng (0.3.1)
71
+ zpng (0.3.2)
68
72
  rainbow
69
73
 
70
74
  PLATFORMS
71
75
  ruby
72
76
 
73
77
  DEPENDENCIES
74
- bundler (~> 2.1.4)
78
+ bundler (~> 2.2.3)
75
79
  iostruct
76
80
  jeweler (~> 2.3.9)
77
81
  rspec (~> 3.9.0)
78
82
  zpng (>= 0.3.1)
79
83
 
80
84
  BUNDLED WITH
81
- 2.1.4
85
+ 2.2.3
data/README.md CHANGED
@@ -29,17 +29,26 @@ Usage
29
29
  Usage: zsteg [options] filename.png [param_string]
30
30
 
31
31
  -c, --channels X channels (R/G/B/A) or any combination, comma separated
32
- valid values: r,g,b,a,rg,rgb,bgr,rgba,...
32
+ valid values: r,g,b,a,rg,bgr,rgba,r3g2b3,...
33
33
  -l, --limit N limit bytes checked, 0 = no limit (default: 256)
34
- -b, --bits N number of bits (1..8), single value or '1,3,5' or '1-8'
34
+ -b, --bits N number of bits, single int value or '1,3,5' or range '1-8'
35
+ advanced: specify individual bits like '00001110' or '0x88'
35
36
  --lsb least significant BIT comes first
36
37
  --msb most significant BIT comes first
37
38
  -P, --prime analyze/extract only prime bytes/pixels
39
+ --invert invert bits (XOR 0xff)
38
40
  -a, --all try all known methods
39
41
  -o, --order X pixel iteration order (default: 'auto')
40
42
  valid values: ALL,xy,yx,XY,YX,xY,Xy,bY,...
41
43
  -E, --extract NAME extract specified payload, NAME is like '1b,rgb,lsb'
42
44
 
45
+ --[no-]file use 'file' command to detect data type (default: YES)
46
+ --no-strings disable ASCII strings finding (default: enabled)
47
+ -s, --strings X ASCII strings find mode: first, all, longest, none
48
+ (default: first)
49
+ -n, --min-str-len X minimum string length (default: 8)
50
+ --shift N prepend N zero bits
51
+
43
52
  -v, --verbose Run verbosely (can be used multiple times)
44
53
  -q, --quiet Silent any warnings (can be used multiple times)
45
54
  -C, --[no-]color Force (or disable) color output (default: auto)
@@ -54,7 +63,8 @@ Examples
54
63
 
55
64
  # zsteg flower_rgb3.png
56
65
 
57
- 3b,rgb,lsb,xy .. text: "SuperSecretMessage"
66
+ imagedata .. file: 370 XA sysV pure executable not stripped - version 768
67
+ b3,rgb,lsb,xy .. text: "SuperSecretMessage"
58
68
 
59
69
  ### Multi-result file
60
70
 
@@ -65,16 +75,34 @@ Examples
65
75
  meta A .. [same as "meta F"]
66
76
  meta date:create .. text: "2012-03-15T23:32:46+07:00"
67
77
  meta date:modify .. text: "2012-03-15T23:32:14+07:00"
68
- 1b,r,lsb,xy .. text: "Second cat is Marussia"
69
- 1b,g,lsb,xy .. text: "Good, but look a bit deeper..."
70
- 1b,bgr,lsb,xy .. text: "MF_WIhf>"
71
- 2b,g,lsb,xy .. text: "VHello, third kitten is Bessy"
78
+ imagedata .. file: 68K BCS executable
79
+ b1,r,lsb,xy .. text: "Second cat is Marussia"
80
+ b1,g,lsb,xy .. text: "Good, but look a bit deeper..."
81
+ b1,bgr,lsb,xy .. text: "MF_WIhf>"
82
+ b2,g,lsb,xy .. text: "VHello, third kitten is Bessy"
72
83
 
73
84
  ### wbStego even distributed
74
85
 
75
86
  # zsteg wbstego/wbsteg_noenc_even.bmp 1b,lsb,bY -v
76
87
 
77
- 1b,lsb,bY .. <wbStego size=22, data="xtSuperSecretMessage\n", even=true, mix=true, controlbyte="t">
88
+ imagedata .. file: FoxPro FPT, blocks size 1, next free block index 65537
89
+ 00000000: 00 01 00 01 00 00 00 01 00 00 00 00 00 00 00 00 |................|
90
+ 00000010: 00 00 00 00 00 00 00 00 00 00 00 01 00 01 01 00 |................|
91
+ 00000020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
92
+ 00000030: 00 01 01 01 00 01 00 00 00 00 00 00 01 01 00 01 |................|
93
+ 00000040: 01 00 01 01 00 01 00 01 00 01 01 01 01 00 00 00 |................|
94
+ 00000050: 00 00 00 01 01 01 01 00 01 00 01 00 00 00 00 01 |................|
95
+ 00000060: 00 00 01 01 01 00 00 01 00 01 01 01 00 01 00 00 |................|
96
+ 00000070: 01 01 01 00 01 00 00 00 00 00 01 01 01 00 00 00 |................|
97
+ 00000080: 00 01 00 01 00 00 01 01 01 01 00 00 00 01 01 00 |................|
98
+ 00000090: 00 01 00 01 00 01 01 00 01 00 00 01 00 01 00 00 |................|
99
+ 000000a0: 00 01 01 01 00 01 00 01 01 01 00 01 00 00 00 01 |................|
100
+ 000000b0: 01 00 01 00 00 01 00 01 00 01 01 01 00 00 00 00 |................|
101
+ 000000c0: 01 00 00 00 00 01 00 00 01 01 00 00 01 00 00 00 |................|
102
+ 000000d0: 00 00 01 00 00 01 01 01 00 01 01 00 00 01 00 01 |................|
103
+ 000000e0: 01 01 01 01 01 01 01 00 00 00 00 00 01 00 00 00 |................|
104
+ 000000f0: 00 01 01 01 00 00 01 00 00 00 01 01 00 01 00 01 |................|
105
+ b1,lsb,bY .. <wbStego size=22, data="xtSuperSecretMessage\n", even=true, mix=true, controlbyte="t">
78
106
  00000000: 51 00 00 16 00 00 74 0d b5 78 1e a1 39 74 e8 38 |Q.....t..x..9t.8|
79
107
  00000010: 53 c6 56 94 75 d1 a5 70 84 c8 27 65 fe 08 72 35 |S.V.u..p..'e..r5|
80
108
  00000020: 1f 3e 53 5d a7 65 8b 6e 3b 63 6b 1d bf 72 ee 27 |.>S].e.n;ck..r.'|
@@ -86,7 +114,7 @@ Examples
86
114
 
87
115
  # zsteg wbstego/wbsteg_blowfish_pass_1.bmp 1b,lsb,bY -v
88
116
 
89
- 1b,lsb,bY .. <wbStego size=26, data="\rC\xF5\xBF#\xFF[6\e\xB3"..., even=false, hdr="\x01", enc="Blowfish">
117
+ b1,lsb,bY .. <wbStego size=26, data="\rC\xF5\xBF#\xFF[6\e\xB3"..., even=false, hdr="\x01", enc="Blowfish">
90
118
  00000000: 1a 00 00 00 ff 01 01 0d 43 f5 bf 23 ff 5b 36 1b |........C..#.[6.|
91
119
  00000010: b3 17 42 4a 3f ba eb c7 ee 9c d7 7a 2b |..BJ?......z+ |
92
120
 
@@ -94,7 +122,7 @@ Examples
94
122
 
95
123
  # zsteg ndh2k12_sp113.bmp -b 1 -o yx -v
96
124
 
97
- 1b,rgb,lsb,yx .. zlib: data="%PDF-1.4\n%\xC3\xA4\xC3\xBC\xC3\xB6\xC3\x9F\n2 0 obj\n<</Length 3 0 R/Filter/FlateDecode>>\nstream\nx\x9C\x8DT\xC9n\xDB@\f\xBD\xCFW\xF0\x1C \x13\x92\xB3\x03\x86\x80\xC8K\xD1\xDE\\\b\xE8\xA1\xE8)K\x8B\xA2n\x91\\\xF2\xFB!5Zl\xD5v\v\x01\xD4\x90C\xBE\xF7\x86\x1A\n-\xC1\x9By\x01\x94'\x94`=d\xCF\xF0\xFA\x04_n\xE0\xF7\x10Gx\xFDn\xDA\xCE\xB0\x8F6\x80s$Y\xDD#\xDC\xED\b\x1CC\xF7\xBCBBF\x87^\xDE\xA1\xE9~\x9Amg\xF6\x8BZ\xCAYj", offset=4
125
+ b1,rgb,lsb,yx .. zlib: data="%PDF-1.4\n%\xC3\xA4\xC3\xBC\xC3\xB6\xC3\x9F\n2 0 obj\n<</Length 3 0 R/Filter/FlateDecode>>\nstream\nx\x9C\x8DT\xC9n\xDB@\f\xBD\xCFW\xF0\x1C \x13\x92\xB3\x03\x86\x80\xC8K\xD1\xDE\\\b\xE8\xA1...", offset=4, size=186
98
126
  00000000: 00 02 eb 9b 78 9c d4 b9 65 54 24 cc 92 36 58 b8 |....x...eT$..6X.|
99
127
  00000010: d3 68 e3 ee ee 4e e3 ee ee 0e 85 bb 3b dd 68 23 |.h...N......;.h#|
100
128
  00000020: 8d bb bb bb 3b 8d bb bb 3b 34 ee 6e 1f ef 7b ef |....;...;4.n..{.|
@@ -112,6 +140,11 @@ Examples
112
140
  000000e0: fd bb 13 a9 e6 3a c9 da 19 34 ae f0 43 bb 90 90 |.....:...4..C...|
113
141
  000000f0: 58 88 de 46 ce 91 6f aa 8d d9 7d b8 d6 88 a6 65 |X..F..o...}....e|
114
142
 
143
+ See also
144
+ --------
145
+ 1. https://29a.ch/photo-forensics/
146
+ 2. https://holloway.nz/steg/
147
+
115
148
  License
116
149
  -------
117
150
  Released under the MIT License. See the [LICENSE](https://github.com/zed-0xff/zsteg/blob/master/LICENSE.txt) file for further details.
data/README.md.tpl CHANGED
@@ -49,6 +49,11 @@ Examples
49
49
 
50
50
  % zsteg ndh2k12_sp113.bmp -b 1 -o yx -v
51
51
 
52
+ See also
53
+ --------
54
+ 1. https://29a.ch/photo-forensics/
55
+ 2. https://holloway.nz/steg/
56
+
52
57
  License
53
58
  -------
54
59
  Released under the MIT License. See the [LICENSE](https://github.com/zed-0xff/zsteg/blob/master/LICENSE.txt) file for further details.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.2
1
+ 0.2.3
data/zsteg.gemspec CHANGED
@@ -2,16 +2,16 @@
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
3
  # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
- # stub: zsteg 0.2.2 ruby lib
5
+ # stub: zsteg 0.2.3 ruby lib
6
6
 
7
7
  Gem::Specification.new do |s|
8
8
  s.name = "zsteg".freeze
9
- s.version = "0.2.2"
9
+ s.version = "0.2.3"
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 = "2020-01-15"
14
+ s.date = "2021-02-18"
15
15
  s.email = "zed.0xff@gmail.com".freeze
16
16
  s.executables = ["zsteg".freeze, "zsteg-mask".freeze, "zsteg-reflow".freeze]
17
17
  s.extra_rdoc_files = [
@@ -103,30 +103,24 @@ Gem::Specification.new do |s|
103
103
  ]
104
104
  s.homepage = "http://github.com/zed-0xff/zsteg".freeze
105
105
  s.licenses = ["MIT".freeze]
106
- s.rubygems_version = "2.7.6".freeze
106
+ s.rubygems_version = "3.2.3".freeze
107
107
  s.summary = "Detect stegano-hidden data in PNG & BMP files.".freeze
108
108
 
109
109
  if s.respond_to? :specification_version then
110
110
  s.specification_version = 4
111
+ end
111
112
 
112
- if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
113
- s.add_runtime_dependency(%q<zpng>.freeze, [">= 0.3.1"])
114
- s.add_runtime_dependency(%q<iostruct>.freeze, [">= 0"])
115
- s.add_development_dependency(%q<rspec>.freeze, ["~> 3.9.0"])
116
- s.add_development_dependency(%q<bundler>.freeze, ["~> 2.1.4"])
117
- s.add_development_dependency(%q<jeweler>.freeze, ["~> 2.3.9"])
118
- else
119
- s.add_dependency(%q<zpng>.freeze, [">= 0.3.1"])
120
- s.add_dependency(%q<iostruct>.freeze, [">= 0"])
121
- s.add_dependency(%q<rspec>.freeze, ["~> 3.9.0"])
122
- s.add_dependency(%q<bundler>.freeze, ["~> 2.1.4"])
123
- s.add_dependency(%q<jeweler>.freeze, ["~> 2.3.9"])
124
- end
113
+ if s.respond_to? :add_runtime_dependency then
114
+ s.add_runtime_dependency(%q<zpng>.freeze, [">= 0.3.1"])
115
+ s.add_runtime_dependency(%q<iostruct>.freeze, [">= 0"])
116
+ s.add_development_dependency(%q<rspec>.freeze, ["~> 3.9.0"])
117
+ s.add_development_dependency(%q<bundler>.freeze, ["~> 2.2.3"])
118
+ s.add_development_dependency(%q<jeweler>.freeze, ["~> 2.3.9"])
125
119
  else
126
120
  s.add_dependency(%q<zpng>.freeze, [">= 0.3.1"])
127
121
  s.add_dependency(%q<iostruct>.freeze, [">= 0"])
128
122
  s.add_dependency(%q<rspec>.freeze, ["~> 3.9.0"])
129
- s.add_dependency(%q<bundler>.freeze, ["~> 2.1.4"])
123
+ s.add_dependency(%q<bundler>.freeze, ["~> 2.2.3"])
130
124
  s.add_dependency(%q<jeweler>.freeze, ["~> 2.3.9"])
131
125
  end
132
126
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: zsteg
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
4
+ version: 0.2.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrey "Zed" Zaikin
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-01-15 00:00:00.000000000 Z
11
+ date: 2021-02-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: zpng
@@ -58,14 +58,14 @@ dependencies:
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: 2.1.4
61
+ version: 2.2.3
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: 2.1.4
68
+ version: 2.2.3
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: jeweler
71
71
  requirement: !ruby/object:Gem::Requirement
@@ -80,7 +80,7 @@ dependencies:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
82
  version: 2.3.9
83
- description:
83
+ description:
84
84
  email: zed.0xff@gmail.com
85
85
  executables:
86
86
  - zsteg
@@ -176,7 +176,7 @@ homepage: http://github.com/zed-0xff/zsteg
176
176
  licenses:
177
177
  - MIT
178
178
  metadata: {}
179
- post_install_message:
179
+ post_install_message:
180
180
  rdoc_options: []
181
181
  require_paths:
182
182
  - lib
@@ -191,9 +191,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
191
191
  - !ruby/object:Gem::Version
192
192
  version: '0'
193
193
  requirements: []
194
- rubyforge_project:
195
- rubygems_version: 2.7.6
196
- signing_key:
194
+ rubygems_version: 3.2.3
195
+ signing_key:
197
196
  specification_version: 4
198
197
  summary: Detect stegano-hidden data in PNG & BMP files.
199
198
  test_files: []