idb 2.5.7 → 2.6
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 +4 -4
- data/Gemfile.lock +1 -1
- data/lib/gui/app_details_group_box.rb +64 -3
- data/lib/gui/app_tab_widget.rb +10 -4
- data/lib/idb/version.rb +1 -1
- data/lib/lib/app.rb +4 -4
- data/lib/lib/ios8_last_launch_services_map_wrapper.rb +8 -0
- data/lib/lib/settings.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5bf6eaebc3d4cc42444246b1cf381388151b3044
|
4
|
+
data.tar.gz: c70174090d037406264de2b6ef050a6f1eb6e186
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ee7ed26735444ac57d25251e6a580cbb21a6365351c0483c8b811e85446c624d93e8d23daf72845b328c5b003d3dbc895c0a7cad2dfbc85711b19eb65217df2c
|
7
|
+
data.tar.gz: 760e659159f67f233dcdbb859f9c841a6217a96de3f5b58217c2b354c1a39542491db23f5d014c464699c85ffad27c80f9f200b135fd184eb99132825ccb02c5
|
data/Gemfile.lock
CHANGED
@@ -27,7 +27,6 @@ module Idb
|
|
27
27
|
addDetail 'platform_version', 'Platform Version'
|
28
28
|
addDetail 'sdk_version', 'SDK Version'
|
29
29
|
addDetail 'minimum_os_version', 'Minimum OS'
|
30
|
-
addDetail 'keychain_access_groups', 'Keychain Access Groups'
|
31
30
|
addDetail 'data_dir', 'Data Directory'
|
32
31
|
|
33
32
|
@launch_app = Qt::PushButton.new "Launch App"
|
@@ -70,7 +69,6 @@ module Idb
|
|
70
69
|
@vals['platform_version'].setText($selected_app.platform_version)
|
71
70
|
@vals['sdk_version'].setText($selected_app.sdk_version)
|
72
71
|
@vals['minimum_os_version'].setText($selected_app.minimum_os_version)
|
73
|
-
@vals['keychain_access_groups'].setText($selected_app.keychain_access_groups)
|
74
72
|
@vals['data_dir'].setText($selected_app.data_directory.sub("/private/var/mobile/Containers/Data/Application",""))
|
75
73
|
@launch_app.setEnabled(true)
|
76
74
|
@open_folder.setEnabled(true)
|
@@ -89,7 +87,6 @@ module Idb
|
|
89
87
|
@vals['sdk_version'].setText("[No Application Selected]")
|
90
88
|
@vals['minimum_os_version'].setText("[No Application Selected]")
|
91
89
|
@vals['data_dir'].setText("[No Application Selected]")
|
92
|
-
@vals['keychain_access_groups'].setText("[No Application Selected]")
|
93
90
|
@launch_app.setEnabled(false)
|
94
91
|
@open_folder.setEnabled(false)
|
95
92
|
|
@@ -109,6 +106,70 @@ module Idb
|
|
109
106
|
|
110
107
|
end
|
111
108
|
|
109
|
+
|
110
|
+
class AppEntitlementsGroupBox < Qt::GroupBox
|
111
|
+
def initialize args
|
112
|
+
super *args
|
113
|
+
|
114
|
+
# details on selected app
|
115
|
+
|
116
|
+
@layout = Qt::GridLayout.new
|
117
|
+
setLayout(@layout)
|
118
|
+
setTitle "App Entitlements"
|
119
|
+
|
120
|
+
@labels = Hash.new
|
121
|
+
@vals = Hash.new
|
122
|
+
clear
|
123
|
+
|
124
|
+
addDetail 'application-identifier', 'Application Identifier'
|
125
|
+
@vals['application-identifier'].setText("[No Application Selected]")
|
126
|
+
end
|
127
|
+
|
128
|
+
def clear
|
129
|
+
@labels.each { |x|
|
130
|
+
@layout.removeWidget x[1]
|
131
|
+
x[1].destroy
|
132
|
+
x[1].dispose
|
133
|
+
}
|
134
|
+
|
135
|
+
@vals.each { |x|
|
136
|
+
@layout.removeWidget x[1]
|
137
|
+
x[1].destroy
|
138
|
+
x[1].dispose
|
139
|
+
}
|
140
|
+
|
141
|
+
@labels = Hash.new
|
142
|
+
@vals = Hash.new
|
143
|
+
@cur_row = 1
|
144
|
+
|
145
|
+
|
146
|
+
|
147
|
+
end
|
148
|
+
|
149
|
+
def app_changed
|
150
|
+
if $device.ios_version < 8
|
151
|
+
addDetail 'application-identifier', 'Only available in iOS 8+'
|
152
|
+
else
|
153
|
+
$selected_app.services_map.entitlements_by_bundle_id($selected_app.bundle_id).each { |x|
|
154
|
+
addDetail x[0].to_s, x[0].to_s
|
155
|
+
@vals[x[0].to_s].setText(x[1].to_s)
|
156
|
+
}
|
157
|
+
end
|
158
|
+
|
159
|
+
end
|
160
|
+
|
161
|
+
|
162
|
+
def addDetail id, label
|
163
|
+
@labels[id] = Qt::Label.new "<b>#{label}</b>", self, 0
|
164
|
+
@vals[id] = Qt::Label.new "", self, 0
|
165
|
+
@layout.addWidget @labels[id], @cur_row, 0
|
166
|
+
@layout.addWidget @vals[id], @cur_row, 1
|
167
|
+
@cur_row += 1
|
168
|
+
end
|
169
|
+
end
|
170
|
+
|
171
|
+
|
172
|
+
|
112
173
|
class AppBinaryGroupBox < Qt::GroupBox
|
113
174
|
signals "binary_analyzed()"
|
114
175
|
|
data/lib/gui/app_tab_widget.rb
CHANGED
@@ -22,21 +22,25 @@ module Idb
|
|
22
22
|
}
|
23
23
|
|
24
24
|
|
25
|
-
@layout.addWidget @app_details,
|
25
|
+
@layout.addWidget @app_details, 0,0,2,1
|
26
|
+
|
27
|
+
# Entitlements
|
28
|
+
@app_entitlements = AppEntitlementsGroupBox.new @central_widget
|
29
|
+
@layout.addWidget @app_entitlements, 2,0, 1, 2
|
26
30
|
|
27
31
|
# App Binary Details
|
28
32
|
@app_binary = AppBinaryGroupBox.new @central_widget
|
29
|
-
@layout.addWidget @app_binary,
|
33
|
+
@layout.addWidget @app_binary, 0,1
|
30
34
|
@app_binary.connect(SIGNAL('binary_analyzed()')) {
|
31
35
|
emit binary_analyzed()
|
32
36
|
}
|
33
37
|
|
34
38
|
@spacer_horizontal = Qt::SpacerItem.new 0,1, Qt::SizePolicy::Expanding, Qt::SizePolicy::Fixed
|
35
|
-
@layout.addItem @spacer_horizontal,
|
39
|
+
@layout.addItem @spacer_horizontal, 0, 3
|
36
40
|
|
37
41
|
@spacer = Qt::SpacerItem.new 0,1, Qt::SizePolicy::Fixed, Qt::SizePolicy::Expanding
|
42
|
+
@spacer2 = Qt::SpacerItem.new 0,1, Qt::SizePolicy::Fixed, Qt::SizePolicy::Expanding
|
38
43
|
|
39
|
-
@layout.addItem @spacer, 2, 1, 2,1
|
40
44
|
@layout.addItem @spacer, 3, 0
|
41
45
|
|
42
46
|
|
@@ -45,6 +49,8 @@ module Idb
|
|
45
49
|
def app_changed
|
46
50
|
@app_binary.app_changed
|
47
51
|
@app_details.app_changed
|
52
|
+
@app_entitlements.clear
|
53
|
+
@app_entitlements.app_changed
|
48
54
|
|
49
55
|
end
|
50
56
|
|
data/lib/idb/version.rb
CHANGED
data/lib/lib/app.rb
CHANGED
@@ -5,7 +5,7 @@ require_relative 'ios8_last_launch_services_map_wrapper'
|
|
5
5
|
|
6
6
|
module Idb
|
7
7
|
class App
|
8
|
-
attr_accessor :uuid, :app_dir, :binary, :cache_dir, :data_dir
|
8
|
+
attr_accessor :uuid, :app_dir, :binary, :cache_dir, :data_dir, :services_map
|
9
9
|
|
10
10
|
|
11
11
|
def initialize uuid
|
@@ -19,10 +19,10 @@ module Idb
|
|
19
19
|
if $device.ios_version == 8
|
20
20
|
mapping_file = "/var/mobile/Library/MobileInstallation/LastLaunchServicesMap.plist"
|
21
21
|
local_mapping_file = cache_file mapping_file
|
22
|
-
|
22
|
+
@services_map = IOS8LastLaunchServicesMapWrapper.new local_mapping_file
|
23
23
|
|
24
|
-
@data_dir =
|
25
|
-
@keychain_access_groups =
|
24
|
+
@data_dir = @services_map.data_path_by_bundle_id @info_plist.bundle_identifier
|
25
|
+
@keychain_access_groups = @services_map.keychain_access_groups_by_bundle_id @info_plist.bundle_identifier
|
26
26
|
|
27
27
|
else
|
28
28
|
@data_dir = @app_dir
|
@@ -8,6 +8,14 @@ class IOS8LastLaunchServicesMapWrapper
|
|
8
8
|
@plist_data = Plist4r.open @plist_file
|
9
9
|
end
|
10
10
|
|
11
|
+
def entitlements_by_bundle_id bundle_id
|
12
|
+
begin
|
13
|
+
@plist_data.to_hash["User"][bundle_id]["Entitlements"]
|
14
|
+
rescue
|
15
|
+
$log.error "Could not read entitlements.."
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
11
19
|
|
12
20
|
def data_path_by_bundle_id bundle_id
|
13
21
|
@plist_data.to_hash["User"][bundle_id]["Container"]
|
data/lib/lib/settings.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: idb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: '2.6'
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Daniel A. Mayer
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-02-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|