fileshunter 0.1.0.20130725 → 0.1.1.20130827

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.
data/AUTHORS CHANGED
@@ -1,3 +1,4 @@
1
1
  = Muriel Salvan (muriel@x-aeon.com)
2
2
 
3
- * 1.0.0.20130611
3
+ * 0.1.0.20130725
4
+ * 0.1.1.20130827
data/ChangeLog CHANGED
@@ -1,5 +1,12 @@
1
1
  = FilesHunter Release History
2
2
 
3
+ == 0.1.1.20130827 (Beta)
4
+
5
+ * Don't load rUtilAnts anymore in the library.
6
+ * Bug correction: Don't parse directories anymore as files.
7
+ * [JPEG] Added some debugging logs
8
+ * [JPEG] Bug correction: Accept files that are not encoding Huffman tables.
9
+
3
10
  == 0.1.0.20130725 (Beta)
4
11
 
5
12
  * Initial public release.
data/ReleaseInfo CHANGED
@@ -2,7 +2,7 @@
2
2
  # This file has been generated by RubyPackager during a delivery.
3
3
  # More info about RubyPackager: http://rubypackager.sourceforge.net
4
4
  {
5
- :version => '0.1.0.20130725',
5
+ :version => '0.1.1.20130827',
6
6
  :tags => [ 'Beta' ],
7
7
  :dev_status => 'Beta'
8
8
  }
data/bin/fileshunt CHANGED
@@ -3,6 +3,8 @@
3
3
  require 'optparse'
4
4
  require 'fileshunter'
5
5
  require 'fileutils'
6
+ require 'rUtilAnts/Logging'
7
+ RUtilAnts::Logging::install_logger_on_object
6
8
 
7
9
  module FilesHunter
8
10
 
@@ -96,8 +98,8 @@ module FilesHunter
96
98
  end
97
99
  end
98
100
  end
99
- # Remove already extracted files from the list
100
- files.select! { |file_name| ((file_name =~ /\.__EXTRACT__\./) == nil) }
101
+ # Remove already extracted files from the list, and directories
102
+ files.select! { |file_name| (!File.directory?(file_name)) and ((file_name =~ /\.__EXTRACT__\./) == nil) }
101
103
 
102
104
  # Analyze them
103
105
  analyze_files(files)
data/lib/fileshunter.rb CHANGED
@@ -1,5 +1,3 @@
1
- require 'rUtilAnts/Logging'
2
- RUtilAnts::Logging::install_logger_on_object
3
1
  require 'fileshunter/SegmentsAnalyzer'
4
2
 
5
3
  module FilesHunter
@@ -78,6 +78,7 @@ module FilesHunter
78
78
  case c_1
79
79
  when MARKER_APP0
80
80
  # Application specific data
81
+ log_debug "@#{cursor} - Found APP0 marker"
81
82
  # Usually used for JFIF
82
83
  case @data[cursor+4..cursor+8]
83
84
  when JFIF_HEADER
@@ -113,6 +114,7 @@ module FilesHunter
113
114
  end
114
115
  when MARKER_APP1
115
116
  # Application specific data
117
+ log_debug "@#{cursor} - Found APP1 marker"
116
118
  # Usually used for Exif
117
119
  case @data[cursor+4..cursor+9]
118
120
  when EXIF_HEADER
@@ -139,6 +141,7 @@ module FilesHunter
139
141
  end
140
142
  when MARKER_SOF0..MARKER_SOF3
141
143
  # SOF: Start of Frame
144
+ log_debug "@#{cursor} - Found SOF marker"
142
145
  invalid_data("@#{cursor} - Found several SOF markers") if found_sof
143
146
  invalid_data("@#{cursor} - Found a SOF marker after the SOS marker") if found_sos
144
147
  found_sof = true
@@ -164,6 +167,7 @@ module FilesHunter
164
167
  end
165
168
  when MARKER_DHT
166
169
  # DHT: Define Huffman tables
170
+ log_debug "@#{cursor} - Found DHT marker"
167
171
  end_cursor = cursor + 2 + size
168
172
  dht_cursor = cursor + 4
169
173
  while (dht_cursor < end_cursor)
@@ -172,12 +176,12 @@ module FilesHunter
172
176
  invalid_data("@#{cursor} - Unknown Huffman table type: #{huffman_type}") if (huffman_type > 1)
173
177
  if (huffman_type == 0)
174
178
  huffman_dc_table_id = (header_byte & 0b00001111)
175
- invalid_data("@#{cursor} - Huffman DC table id #{huffman_dc_table_id} already defined.") if (huffman_dc_tables_id.include?(huffman_dc_table_id))
179
+ #invalid_data("@#{cursor} - Huffman DC table id #{huffman_dc_table_id} already defined.") if (huffman_dc_tables_id.include?(huffman_dc_table_id))
176
180
  huffman_dc_tables_id << huffman_dc_table_id
177
181
  log_debug "@#{cursor} - Found Huffman DC table: #{huffman_dc_table_id}"
178
182
  else
179
183
  huffman_ac_table_id = (header_byte & 0b00001111)
180
- invalid_data("@#{cursor} - Huffman AC table id #{huffman_ac_table_id} already defined.") if (huffman_ac_tables_id.include?(huffman_ac_table_id))
184
+ #invalid_data("@#{cursor} - Huffman AC table id #{huffman_ac_table_id} already defined.") if (huffman_ac_tables_id.include?(huffman_ac_table_id))
181
185
  huffman_ac_tables_id << huffman_ac_table_id
182
186
  log_debug "@#{cursor} - Found Huffman AC table: #{huffman_ac_table_id}"
183
187
  end
@@ -190,8 +194,9 @@ module FilesHunter
190
194
  end
191
195
  when MARKER_SOS
192
196
  # SOS: Start of Scan
193
- invalid_data("@#{cursor} - SOS marker begins whereas no Huffman DC table has been defined.") if (huffman_dc_tables_id.empty?)
194
- invalid_data("@#{cursor} - SOS marker begins whereas no Huffman AC table has been defined.") if (huffman_ac_tables_id.empty?)
197
+ log_debug "@#{cursor} - Found SOS marker"
198
+ #invalid_data("@#{cursor} - SOS marker begins whereas no Huffman DC table has been defined.") if (huffman_dc_tables_id.empty?)
199
+ #invalid_data("@#{cursor} - SOS marker begins whereas no Huffman AC table has been defined.") if (huffman_ac_tables_id.empty?)
195
200
  invalid_data("@#{cursor} - SOS marker begins whereas no quantisation table has been defined.") if (quantisation_tables_id.empty?)
196
201
  invalid_data("@#{cursor} - SOS marker begins whereas no SOF marker has been encountered.") if (!found_sof)
197
202
  found_sos = true
@@ -201,11 +206,12 @@ module FilesHunter
201
206
  huffman_table_ids = @data[cursor+6+2*idx_component].ord
202
207
  huffman_dc_table_id = ((huffman_table_ids & 0b11110000) >> 4)
203
208
  huffman_ac_table_id = (huffman_table_ids & 0b00001111)
204
- invalid_data("@#{cursor} - Unknown DC Huffman table: #{huffman_dc_table_id}") if (!huffman_dc_tables_id.include?(huffman_dc_table_id))
205
- invalid_data("@#{cursor} - Unknown AC Huffman table: #{huffman_ac_table_id}") if (!huffman_ac_tables_id.include?(huffman_ac_table_id))
209
+ #invalid_data("@#{cursor} - Unknown DC Huffman table: #{huffman_dc_table_id}") if (!huffman_dc_tables_id.include?(huffman_dc_table_id))
210
+ #invalid_data("@#{cursor} - Unknown AC Huffman table: #{huffman_ac_table_id}") if (!huffman_ac_tables_id.include?(huffman_ac_table_id))
206
211
  end
207
212
  when MARKER_DQT
208
213
  # DQT: Define quantisation tables
214
+ log_debug "@#{cursor} - Found DQT marker"
209
215
  end_cursor = cursor + 2 + size
210
216
  dqt_cursor = cursor + 4
211
217
  while (dqt_cursor < end_cursor)
@@ -218,6 +224,8 @@ module FilesHunter
218
224
  dqt_cursor += 1 + 64*((precision == 0) ? 1 : 2)
219
225
  invalid_data("@#{dqt_cursor} - End of quantisation table was supposed to be @#{end_cursor}.") if (dqt_cursor > end_cursor)
220
226
  end
227
+ else
228
+ log_debug "@#{cursor} - Found ignored marker: #{c_1.inspect}"
221
229
  end
222
230
  # Does it have entropy data?
223
231
  if (c_1 == MARKER_WITH_ENTROPY_DATA)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fileshunter
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0.20130725
4
+ version: 0.1.1.20130827
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-07-25 00:00:00.000000000 Z
12
+ date: 2013-08-27 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rUtilAnts