idb 2.6 → 2.6.1

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
  SHA1:
3
- metadata.gz: 5bf6eaebc3d4cc42444246b1cf381388151b3044
4
- data.tar.gz: c70174090d037406264de2b6ef050a6f1eb6e186
3
+ metadata.gz: 9f272dfb2bc3b90934cfe4962e13a54306347a92
4
+ data.tar.gz: 70f336144b865ff08da0e05034cc6ad0716805cb
5
5
  SHA512:
6
- metadata.gz: ee7ed26735444ac57d25251e6a580cbb21a6365351c0483c8b811e85446c624d93e8d23daf72845b328c5b003d3dbc895c0a7cad2dfbc85711b19eb65217df2c
7
- data.tar.gz: 760e659159f67f233dcdbb859f9c841a6217a96de3f5b58217c2b354c1a39542491db23f5d014c464699c85ffad27c80f9f200b135fd184eb99132825ccb02c5
6
+ metadata.gz: b76ba851c94c332a24b843fe2dd3b1e10957ece77543a8a6f3ff29c603b214925a80f6363fe6637f0bc0a52cfa80cf8d513d8286d0794c38b7d2ba3adc557bf3
7
+ data.tar.gz: 6a495e5d91a212f2dbcce09a030b30d3cc9912f5f491e493105d407906e9dde64ab6f159988f4c85c348f325c7f84f1b68761d6b82131abf5d6292ab6a3d5d8f
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- idb (2.6)
4
+ idb (2.6.1)
5
5
  awesome_print
6
6
  coderay
7
7
  ffi
@@ -148,7 +148,7 @@ module Idb
148
148
 
149
149
  def app_changed
150
150
  if $device.ios_version < 8
151
- addDetail 'application-identifier', 'Only available in iOS 8+'
151
+ addDetail 'application-identifier', 'Only available for iOS 8+'
152
152
  else
153
153
  $selected_app.services_map.entitlements_by_bundle_id($selected_app.bundle_id).each { |x|
154
154
  addDetail x[0].to_s, x[0].to_s
@@ -1,6 +1,6 @@
1
1
  module Idb
2
2
  class AppTabWidget < Qt::TabWidget
3
- attr_accessor :app_details, :app_binary
3
+ attr_accessor :app_details, :app_binary, :app_entitlements
4
4
  signals "app_changed()"
5
5
  signals "binary_analyzed()"
6
6
 
@@ -28,8 +28,9 @@ module Idb
28
28
 
29
29
  }
30
30
  # "Launch app"
31
-
31
+ @default_protection = DefaultProtectionClassGroupWidget.new self
32
32
  layout = Qt::VBoxLayout.new do |v|
33
+ v.add_widget(@default_protection)
33
34
  v.add_widget(@list)
34
35
  v.add_widget(@refresh)
35
36
  end
@@ -40,9 +41,19 @@ module Idb
40
41
  @list.clear
41
42
  end
42
43
 
44
+ def setup
45
+ @list.clear
46
+ @default_protection.update
47
+ item = PathListWidgetItem.new
48
+ item.setText "Please click 'Refresh' below to show files."
49
+ @list.addItem item
50
+ @list.setEnabled false
51
+ end
43
52
 
44
53
  def refresh
45
54
  @list.clear
55
+ @list.setEnabled true
56
+ @default_protection.update
46
57
  cache_dbs = $selected_app.find_cache_dbs
47
58
  cache_dbs.each { |full_path|
48
59
  item = PathListWidgetItem.new
@@ -0,0 +1,36 @@
1
+ module Idb
2
+
3
+ class DefaultProtectionClassGroupWidget < Qt::GroupBox
4
+
5
+ def initialize args
6
+ super *args
7
+
8
+ setTitle "Default Protection Protection"
9
+
10
+ @layout = Qt::GridLayout.new
11
+ label = Qt::Label.new "<b>Default Data Protection</b>", self, 0
12
+ @val = Qt::Label.new "Please refresh to show entries", self, 0
13
+ @layout.addWidget label, 0, 0
14
+ @layout.addWidget @val, 0, 1
15
+ spacer_horizontal = Qt::SpacerItem.new 0,1, Qt::SizePolicy::Expanding, Qt::SizePolicy::Fixed
16
+ @layout.addItem spacer_horizontal, 0, 2
17
+
18
+ setLayout @layout
19
+ end
20
+
21
+ def update
22
+ if $device.ios_version < 8
23
+ @val.setText "Only available for iOS 8+"
24
+ else
25
+ $selected_app.services_map.entitlements_by_bundle_id($selected_app.bundle_id).each { |x|
26
+ if x[0].to_s == "com.apple.developer.default-data-protection"
27
+ @val.setText x[1].to_s
28
+ end
29
+ }
30
+ end
31
+
32
+ end
33
+
34
+ end
35
+ end
36
+
@@ -92,6 +92,9 @@ module Idb
92
92
  @file_details_layout.addWidget @file_details_protection, 4, 1
93
93
  @file_details_layout.addItem Qt::SpacerItem.new(0,1, Qt::SizePolicy::Expanding, Qt::SizePolicy::Fixed ), 0, 2
94
94
  @layout.addWidget @file_details, 2, 0, 1, 3
95
+
96
+ @default_protection = DefaultProtectionClassGroupWidget.new self
97
+ @layout.addWidget @default_protection, 3, 0, 1, 3
95
98
  @file_details.setSizePolicy(Qt::SizePolicy::Minimum, Qt::SizePolicy::Minimum)
96
99
 
97
100
 
@@ -256,6 +259,7 @@ module Idb
256
259
 
257
260
  def update_start
258
261
  @treeview.clear
262
+ @default_protection.update
259
263
  @selected_dir = $selected_app.app_dir
260
264
  @local_path = "#{$selected_app.cache_dir}/idb_mirror.git"
261
265
  @manager = RsyncGitManager.new @local_path
@@ -21,6 +21,12 @@ module Idb
21
21
 
22
22
  end
23
23
 
24
+ def setup
25
+ @plist.setup
26
+ @sqlite.setup
27
+ @cachedb.setup
28
+ end
29
+
24
30
  def clear
25
31
  @tabs.each { |tab|
26
32
  tab.clear
@@ -108,6 +108,7 @@ module Idb
108
108
  def enableLocalStorage
109
109
  @local_storage.setEnabled(true)
110
110
  setTabEnabled(@tabs[:local_storage], true)
111
+ @local_storage.setup
111
112
  end
112
113
 
113
114
  def enableURLHandlers
@@ -1,4 +1,5 @@
1
1
  require_relative 'path_list_widget_item'
2
+ require_relative 'default_protection_class_group_widget'
2
3
 
3
4
  module Idb
4
5
  class PlistFileWidget < Qt::Widget
@@ -32,7 +33,10 @@ module Idb
32
33
 
33
34
  # "Launch app"
34
35
 
36
+ @default_protection = DefaultProtectionClassGroupWidget.new self
37
+
35
38
  layout = Qt::VBoxLayout.new do |v|
39
+ v.add_widget(@default_protection)
36
40
  v.add_widget(@list)
37
41
  v.add_widget(@refresh)
38
42
  end
@@ -43,8 +47,19 @@ module Idb
43
47
  @list.clear
44
48
  end
45
49
 
50
+ def setup
51
+ @list.clear
52
+ @default_protection.update
53
+ item = PathListWidgetItem.new
54
+ item.setText "Please click 'Refresh' below to show files."
55
+ @list.addItem item
56
+ @list.setEnabled false
57
+ end
58
+
46
59
  def refresh
47
60
  @list.clear
61
+ @list.setEnabled true
62
+ @default_protection.update
48
63
  plist_files = $selected_app.find_plist_files
49
64
  plist_files.each { |full_path|
50
65
  item = PathListWidgetItem.new
@@ -42,7 +42,9 @@ module Idb
42
42
  }
43
43
  # "Launch app"
44
44
 
45
+ @default_protection = DefaultProtectionClassGroupWidget.new self
45
46
  layout = Qt::VBoxLayout.new do |v|
47
+ v.add_widget(@default_protection)
46
48
  v.add_widget(@list)
47
49
  v.add_widget(@refresh)
48
50
  end
@@ -53,9 +55,19 @@ module Idb
53
55
  @list.clear
54
56
  end
55
57
 
58
+ def setup
59
+ @list.clear
60
+ @default_protection.update
61
+ item = PathListWidgetItem.new
62
+ item.setText "Please click 'Refresh' below to show files."
63
+ @list.addItem item
64
+ @list.setEnabled false
65
+ end
56
66
 
57
67
  def refresh
58
68
  @list.clear
69
+ @list.setEnabled true
70
+ @default_protection.update
59
71
  sqlite_dbs = $selected_app.find_sqlite_dbs
60
72
  sqlite_dbs.each { |full_path|
61
73
  item = PathListWidgetItem.new
data/lib/idb.rb CHANGED
@@ -114,6 +114,7 @@ module Idb
114
114
  @main_tabs.app_info.app_binary.clear
115
115
  @main_tabs.app_info.app_binary.disable_analyze_binary
116
116
  @main_tabs.app_info.app_details.clear
117
+ @main_tabs.app_info.app_entitlements.clear
117
118
  @usb_device.setChecked(false)
118
119
  @global_app_details.disconnect
119
120
  }
data/lib/idb/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Idb
2
- VERSION = "2.6"
2
+ VERSION = "2.6.1"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: idb
3
3
  version: !ruby/object:Gem::Version
4
- version: '2.6'
4
+ version: 2.6.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Daniel A. Mayer
@@ -267,6 +267,7 @@ files:
267
267
  - lib/gui/console_widget.rb
268
268
  - lib/gui/cycript_console_widget.rb
269
269
  - lib/gui/cycript_thread.rb
270
+ - lib/gui/default_protection_class_group_widget.rb
270
271
  - lib/gui/device_info_group_box.rb
271
272
  - lib/gui/device_status_dialog.rb
272
273
  - lib/gui/file_system_events_widget.rb