idb 2.5.0 → 2.5.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 +4 -4
- data/Gemfile.lock +1 -1
- data/lib/gui/device_status_dialog.rb +58 -104
- data/lib/idb/version.rb +1 -1
- data/lib/lib/app.rb +12 -57
- 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: c31f18f2e0931d3a426555405a2056f63d3799f5
|
4
|
+
data.tar.gz: a738c896c5d4585f7f1f1f9af9d2d5b1656f956f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a2c440cbc5382798397e047e5e17db50169ba54f594affeb5bff1db92087375d0785ebbc50bdd265d81f33f707a97af18bf161d21351b44844681482ac99ccd3
|
7
|
+
data.tar.gz: fc0c0b368967b96093d83f17d4d0606e305a78378222f98402b742e91263a1aca42c3d40987b311af21b62442ef0b39d879015e6e41241de8d0296da2fff035e
|
data/Gemfile.lock
CHANGED
@@ -71,25 +71,7 @@ module Idb
|
|
71
71
|
end
|
72
72
|
|
73
73
|
|
74
|
-
def
|
75
|
-
super *args
|
76
|
-
@layout = Qt::GridLayout.new
|
77
|
-
setLayout(@layout)
|
78
|
-
setWindowTitle "Device Status"
|
79
|
-
|
80
|
-
@close_button = Qt::PushButton.new "Close"
|
81
|
-
@close_button.connect(SIGNAL(:released)) {|x|
|
82
|
-
reject()
|
83
|
-
}
|
84
|
-
#TODO: prevent closing
|
85
|
-
@layout.addWidget @close_button, 9, 2
|
86
|
-
|
87
|
-
|
88
|
-
#######################
|
89
|
-
### APT-GET
|
90
|
-
#######################
|
91
|
-
|
92
|
-
|
74
|
+
def apt_get_section
|
93
75
|
@aptget_label = Qt::Label.new "<b>apt-get / aptitude</b><br>(Install additional software packages)"
|
94
76
|
@layout.addWidget @aptget_label, 0, 0
|
95
77
|
|
@@ -110,10 +92,10 @@ module Idb
|
|
110
92
|
}
|
111
93
|
@layout.addWidget @install_aptget, 0, 1
|
112
94
|
end
|
113
|
-
#######################
|
114
|
-
### OPEN
|
115
|
-
#######################
|
116
95
|
|
96
|
+
end
|
97
|
+
|
98
|
+
def open_section
|
117
99
|
@open_label = Qt::Label.new "<b>open</b><br>(Open apps on the device)"
|
118
100
|
@layout.addWidget @open_label, 1, 0
|
119
101
|
|
@@ -136,11 +118,9 @@ module Idb
|
|
136
118
|
@layout.addWidget @install_open, 1, 1
|
137
119
|
end
|
138
120
|
|
139
|
-
|
140
|
-
### OPEN URL
|
141
|
-
#######################
|
142
|
-
|
121
|
+
end
|
143
122
|
|
123
|
+
def open_url_section
|
144
124
|
@openurl_label = Qt::Label.new "<b>openURL</b><br>(Open URL on the device)"
|
145
125
|
@layout.addWidget @openurl_label, 2, 0
|
146
126
|
|
@@ -148,22 +128,11 @@ module Idb
|
|
148
128
|
if $device.openurl_installed?
|
149
129
|
mark_openurl_installed
|
150
130
|
else
|
151
|
-
# @install_openurl = Qt::PushButton.new "Install"
|
152
|
-
# @install_openurl.connect(SIGNAL(:released)) {
|
153
|
-
# $device.install_openurl
|
154
|
-
# if $device.open_installed?
|
155
|
-
# @install_open.hide
|
156
|
-
# mark_open_installed
|
157
|
-
# end
|
158
|
-
# }
|
159
|
-
# @layout.addWidget @install_openurl, 2, 1
|
160
131
|
end
|
161
132
|
|
133
|
+
end
|
162
134
|
|
163
|
-
|
164
|
-
### DUMPDECRYPTED
|
165
|
-
#######################
|
166
|
-
|
135
|
+
def dumpdecrypted_section
|
167
136
|
@dumpdecrypted_label = Qt::Label.new "<b>dumpdecrypted</b><br>(Decrypt app binaries on the device).<br>Developed and maintained by Stefan Esser https://github.com/stefanesser/dumpdecrypted"
|
168
137
|
@layout.addWidget @dumpdecrypted_label, 3, 0
|
169
138
|
|
@@ -186,13 +155,10 @@ module Idb
|
|
186
155
|
}
|
187
156
|
@layout.addWidget @install_dumpdecrypted, 3, 1
|
188
157
|
end
|
158
|
+
end
|
189
159
|
|
190
160
|
|
191
|
-
|
192
|
-
### PBWATCHER
|
193
|
-
#######################
|
194
|
-
|
195
|
-
|
161
|
+
def pbwatcher_section
|
196
162
|
@pbwatcher_label = Qt::Label.new "<b>pbwatcher</b><br>(idb pasteboard monitor helper)"
|
197
163
|
@layout.addWidget @pbwatcher_label, 4, 0
|
198
164
|
|
@@ -212,12 +178,9 @@ module Idb
|
|
212
178
|
@layout.addWidget @install_pbwatcher, 4, 1
|
213
179
|
end
|
214
180
|
|
181
|
+
end
|
215
182
|
|
216
|
-
|
217
|
-
### PCVIEWER
|
218
|
-
#######################
|
219
|
-
|
220
|
-
|
183
|
+
def pcviewer_section
|
221
184
|
@pcviewer_label = Qt::Label.new "<b>pcviewer</b><br>(idb file protection class helper)"
|
222
185
|
@layout.addWidget @pcviewer_label, 5, 0
|
223
186
|
|
@@ -237,37 +200,31 @@ module Idb
|
|
237
200
|
@layout.addWidget @install_pcviewer, 5, 1
|
238
201
|
end
|
239
202
|
|
240
|
-
|
241
|
-
### KEYCHAIN_DUMPER
|
242
|
-
#######################
|
243
|
-
|
244
|
-
|
245
|
-
@keychain_dump_label = Qt::Label.new "<b>keychain_dump</b><br>(dumps the keychain into a plist file.<br>https://code.google.com/p/iphone-dataprotection/)"
|
246
|
-
@layout.addWidget @keychain_dump_label, 6, 0
|
247
|
-
|
248
|
-
if $device.keychain_dump_installed?
|
249
|
-
mark_keychain_dump_installed
|
250
|
-
else
|
251
|
-
@install_keychain_dump = Qt::PushButton.new "Install"
|
252
|
-
@install_keychain_dump.connect(SIGNAL(:released)) {
|
253
|
-
$device.install_keychain_dump
|
254
|
-
if $device.keychain_dump_installed?
|
255
|
-
@install_keychain_dump.hide
|
256
|
-
mark_keychain_dump_installed
|
257
|
-
end
|
258
|
-
}
|
259
|
-
|
203
|
+
end
|
260
204
|
|
261
|
-
|
205
|
+
def keychaindumper_section
|
206
|
+
@keychain_dump_label = Qt::Label.new "<b>keychain_dump</b><br>(dumps the keychain into a plist file.<br>https://code.google.com/p/iphone-dataprotection/)"
|
207
|
+
@layout.addWidget @keychain_dump_label, 6, 0
|
262
208
|
|
263
|
-
|
209
|
+
if $device.keychain_dump_installed?
|
210
|
+
mark_keychain_dump_installed
|
211
|
+
else
|
212
|
+
@install_keychain_dump = Qt::PushButton.new "Install"
|
213
|
+
@install_keychain_dump.connect(SIGNAL(:released)) {
|
214
|
+
$device.install_keychain_dump
|
215
|
+
if $device.keychain_dump_installed?
|
216
|
+
@install_keychain_dump.hide
|
217
|
+
mark_keychain_dump_installed
|
218
|
+
end
|
219
|
+
}
|
264
220
|
|
265
221
|
|
266
|
-
|
267
|
-
### rsync
|
268
|
-
#######################
|
222
|
+
@layout.addWidget @install_keychain_dump, 6, 1
|
269
223
|
|
224
|
+
end
|
225
|
+
end
|
270
226
|
|
227
|
+
def rsync_section
|
271
228
|
@rsync_label = Qt::Label.new "<b>rsync</b><br>(folder synchronization)"
|
272
229
|
@layout.addWidget @rsync_label, 7, 0
|
273
230
|
|
@@ -292,12 +249,9 @@ module Idb
|
|
292
249
|
@layout.addWidget @install_rsync, 7, 1
|
293
250
|
|
294
251
|
end
|
252
|
+
end
|
295
253
|
|
296
|
-
|
297
|
-
#######################
|
298
|
-
### CYCRIPT
|
299
|
-
#######################
|
300
|
-
|
254
|
+
def cycript_section
|
301
255
|
@cycript_label = Qt::Label.new "<b>cycript</b><br>(explore and modify running applications using a hybrid of Objective-C++ and JavaScript. http://www.cycript.org/ )"
|
302
256
|
@layout.addWidget @cycript_label, 8, 0
|
303
257
|
|
@@ -319,32 +273,32 @@ module Idb
|
|
319
273
|
}
|
320
274
|
@layout.addWidget @install_cycript, 8, 1
|
321
275
|
end
|
276
|
+
end
|
277
|
+
|
278
|
+
|
279
|
+
def initialize *args
|
280
|
+
super *args
|
281
|
+
@layout = Qt::GridLayout.new
|
282
|
+
setLayout(@layout)
|
283
|
+
setWindowTitle "Device Status"
|
284
|
+
|
285
|
+
@close_button = Qt::PushButton.new "Close"
|
286
|
+
@close_button.connect(SIGNAL(:released)) {|x|
|
287
|
+
reject()
|
288
|
+
}
|
289
|
+
#TODO: prevent closing
|
290
|
+
@layout.addWidget @close_button, 9, 2
|
291
|
+
|
292
|
+
apt_get_section
|
293
|
+
open_section
|
294
|
+
open_url_section
|
295
|
+
dumpdecrypted_section
|
296
|
+
pbwatcher_section
|
297
|
+
pcviewer_section
|
298
|
+
keychaindumper_section
|
299
|
+
rsync_section
|
300
|
+
cycript_section
|
322
301
|
|
323
|
-
#######################
|
324
|
-
### clutch
|
325
|
-
#######################
|
326
|
-
|
327
|
-
|
328
|
-
# @clutch_label = Qt::Label.new "<b>Clutch (not used by idb)</b><br>(App cracking tool that also performs decryption. Installation from cydia.iphonecake.com.)"
|
329
|
-
# @layout.addWidget @clutch_label, 8, 0
|
330
|
-
#
|
331
|
-
# if $device.clutch_installed?
|
332
|
-
# mark_clutch_installed
|
333
|
-
# else
|
334
|
-
# @install_clutch = Qt::PushButton.new "Install"
|
335
|
-
# @install_clutch.connect(SIGNAL(:released)) {
|
336
|
-
# $device.setup_clutch_source
|
337
|
-
# $device.install_clutch
|
338
|
-
# if $device.clutch_installed?
|
339
|
-
# @install_clutch.hide
|
340
|
-
# mark_clutch_installed
|
341
|
-
# end
|
342
|
-
# }
|
343
|
-
#
|
344
|
-
#
|
345
|
-
# @layout.addWidget @install_clutch, 8, 1
|
346
|
-
#
|
347
|
-
# end
|
348
302
|
|
349
303
|
setFixedHeight(sizeHint().height());
|
350
304
|
end
|
data/lib/idb/version.rb
CHANGED
data/lib/lib/app.rb
CHANGED
@@ -85,41 +85,6 @@ module Idb
|
|
85
85
|
|
86
86
|
end
|
87
87
|
|
88
|
-
def decrypt_binary_clutch!
|
89
|
-
# not in use since Stefan Esser updated dumpdecrypted
|
90
|
-
unless $device.clutch_installed?
|
91
|
-
$log.error "clutch not installed."
|
92
|
-
return false
|
93
|
-
end
|
94
|
-
|
95
|
-
$log.info "Binary name is: '#{binary_name}'"
|
96
|
-
|
97
|
-
$device.ops.execute "cd /var/root/"
|
98
|
-
output = $device.ops.execute "#{$device.clutch_path} #{binary_name}"
|
99
|
-
puts output
|
100
|
-
|
101
|
-
decrypted_path = "/var/root/Documents/Cracked/#{binary_name}*.ipa"
|
102
|
-
$log.info "Checking if decrypted file #{decrypted_path} was created..."
|
103
|
-
if not $device.ops.file_exists? decrypted_path
|
104
|
-
$log.error "Decryption / Cracking failed."
|
105
|
-
return
|
106
|
-
end
|
107
|
-
|
108
|
-
$log.info "Decrypted file found. Downloading..."
|
109
|
-
|
110
|
-
@local_decrypted_binary = "#{cache_dir}/#{File.basename full_remote_path}.decrypted"
|
111
|
-
@binary.setDecryptedPath @local_decrypted_binary
|
112
|
-
|
113
|
-
local_path = $device.ops.download decrypted_path, @local_decrypted_binary
|
114
|
-
|
115
|
-
$log.info "Decrypted binary downloaded to #{@local_decrypted_binary}"
|
116
|
-
@local_decrypted_binary
|
117
|
-
|
118
|
-
end
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
88
|
def get_raw_plist_value val
|
124
89
|
begin
|
125
90
|
@info_plist.plist_data[val]
|
@@ -187,7 +152,7 @@ module Idb
|
|
187
152
|
end
|
188
153
|
|
189
154
|
def bundle_name
|
190
|
-
get_raw_plist_value
|
155
|
+
get_raw_plist_value('CFBundleDisplayName').to_s
|
191
156
|
end
|
192
157
|
|
193
158
|
def keychain_access_groups
|
@@ -218,9 +183,9 @@ module Idb
|
|
218
183
|
get_raw_plist_value 'MinimumOSVersion'
|
219
184
|
end
|
220
185
|
|
221
|
-
def
|
186
|
+
def undle_id
|
222
187
|
begin
|
223
|
-
@info_plist.bundle_identifier
|
188
|
+
@info_plist.bundle_identifier.to_s
|
224
189
|
rescue
|
225
190
|
"[error]"
|
226
191
|
end
|
@@ -252,39 +217,29 @@ module Idb
|
|
252
217
|
`#{rsync} avc -e ssh TKTK #{} `
|
253
218
|
end
|
254
219
|
|
255
|
-
def
|
256
|
-
$
|
257
|
-
app_dir_files = $device.ops.dir_glob(@app_dir, "**/*plist")
|
220
|
+
def find_files_by_pattern pattern
|
221
|
+
app_dir_files = $device.ops.dir_glob(@app_dir, pattern)
|
258
222
|
data_dir_files = Array.new
|
259
223
|
|
260
224
|
if app_dir != data_dir
|
261
|
-
data_dir_files = $device.ops.dir_glob(@data_dir,
|
225
|
+
data_dir_files = $device.ops.dir_glob(@data_dir, pattern)
|
262
226
|
end
|
263
227
|
app_dir_files + data_dir_files
|
228
|
+
end
|
264
229
|
|
230
|
+
def find_plist_files
|
231
|
+
$log.info "Looking for plist files..."
|
232
|
+
find_files_by_pattern "**/*plist"
|
265
233
|
end
|
266
234
|
|
267
235
|
def find_sqlite_dbs
|
268
236
|
$log.info "Looking for sqlite files..."
|
269
|
-
|
270
|
-
data_dir_files = Array.new
|
271
|
-
|
272
|
-
if app_dir != data_dir
|
273
|
-
data_dir_files = $device.ops.dir_glob(@data_dir, "**/*sql**")
|
274
|
-
end
|
275
|
-
app_dir_files + data_dir_files
|
276
|
-
|
237
|
+
find_files_by_pattern "**/*sql**"
|
277
238
|
end
|
278
239
|
|
279
240
|
def find_cache_dbs
|
280
241
|
$log.info "Looking for Cache.db files..."
|
281
|
-
|
282
|
-
data_dir_files = Array.new
|
283
|
-
|
284
|
-
if app_dir != data_dir
|
285
|
-
data_dir_files = $device.ops.dir_glob(@data_dir, "**/Cache.db")
|
286
|
-
end
|
287
|
-
app_dir_files + data_dir_files
|
242
|
+
find_files_by_pattern "**/Cache.db"
|
288
243
|
end
|
289
244
|
|
290
245
|
def get_url_handlers
|
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.5.
|
4
|
+
version: 2.5.1
|
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: 2014-11-
|
11
|
+
date: 2014-11-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|