idb 2.5.7 → 2.6
Sign up to get free protection for your applications and to get access to all the features.
- 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
|