idb 2.6 → 2.6.1

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
  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