idb 1.3.1 → 1.3.2
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 +3 -1
- data/README.md +21 -9
- data/bin/idb +1 -2
- data/idb.gemspec +2 -1
- data/lib/gui/keychain_binary_widget.rb +57 -0
- data/lib/gui/keychain_tab_widget.rb +37 -0
- data/lib/gui/keychain_text_widget.rb +28 -0
- data/lib/gui/{key_chain_widget.rb → keychain_widget.rb} +14 -22
- data/lib/gui/main_tab_widget.rb +2 -2
- data/lib/idb/version.rb +1 -1
- data/lib/lib/device.rb +12 -12
- data/lib/run_idb.rb +3 -0
- metadata +23 -6
- data/lib/LICENSE +0 -20
- data/lib/README.md +0 -54
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d313a2f68d8dbb4103f71b6f9d34486a16420484
|
4
|
+
data.tar.gz: 9087be7df5e7065a10787cb14acebc884f514fb7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9f82baac61e5cd3a1d3f8048a53411ab5a47295728fe71856cb3464744ee6b0da2956022c1687628c5529597f711cef8bb73d1d55db43bb5240d4eadaa884565
|
7
|
+
data.tar.gz: 318b936f8c1bca37ee3164d50266c3573d38cf7855e7e52a8ca603835fe5643adfc903424766d86f530309d1f1019888a711bc2cf752bde19bde8bd5530d8cfa
|
data/Gemfile.lock
CHANGED
@@ -1,12 +1,13 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
idb (1.3.
|
4
|
+
idb (1.3.2)
|
5
5
|
awesome_print
|
6
6
|
coderay
|
7
7
|
eventmachine
|
8
8
|
ffi
|
9
9
|
git
|
10
|
+
hexdump
|
10
11
|
highline
|
11
12
|
htmlentities
|
12
13
|
launchy
|
@@ -31,6 +32,7 @@ GEM
|
|
31
32
|
git (1.2.8)
|
32
33
|
haml (4.0.5)
|
33
34
|
tilt
|
35
|
+
hexdump (0.2.3)
|
34
36
|
highline (1.6.21)
|
35
37
|
htmlentities (4.3.2)
|
36
38
|
launchy (2.4.2)
|
data/README.md
CHANGED
@@ -1,24 +1,36 @@
|
|
1
1
|
# Idb
|
2
2
|
|
3
|
-
|
3
|
+
idb is a tool to simplify some common tasks for iOS pentesting and research. Originally there was a command line version of the tool, but it is no longer under development so you should get the GUI version.
|
4
|
+
|
5
|
+
idb was released as part of a talk at [ShmooCon](http://shmoocon.org) 2014. The [slides of the talk](https://speakerdeck.com/dmayer/introducing-idb-simplified-blackbox-ios-app-pentesting) are up on [Speakerdeck](https://speakerdeck.com/dmayer/introducing-idb-simplified-blackbox-ios-app-pentesting). [Video](https://archive.org/details/ShmooCon2014_Introducing_idb_Simplified_Blackbox_iOS_App_Pentesting) is available on [archive.org](http://www.archive.org) There is also a [blog post](http://cysec.org/blog/2014/01/23/idb-ios-research-slash-pentesting-tool/) on my [personal website](http://cysec.org).
|
4
6
|
|
5
7
|
## Installation
|
6
8
|
|
7
|
-
|
9
|
+
I am currently working on making the installation proces much more pleasant. It is not fully auomated yet, but the dependencies and number steps are much simpler since I bundled idb into a gem. Basic instructions:
|
8
10
|
|
9
|
-
|
11
|
+
* Install ruby (1.9.3 and 2.1 are known to work. **Don't use 2.0**)
|
12
|
+
* **Shared library support is required!**
|
13
|
+
* Under `rvm` use `--enable-shared` when installing ruby.
|
14
|
+
* Under `ruby-install`/`chruby` use `-- --enable-shared` when installing ruby.
|
15
|
+
* Under `ruby-build`/`rbenv` with `ruby-build` use `CONFIGURE_OPTS=--enable-shared [command]` when installing Ruby.
|
16
|
+
* Install prerequisites:
|
17
|
+
* OS X: `brew install qt cmake usbmuxd libimobiledevice`
|
18
|
+
* Ubuntu: `apt-get install cmake libqt4-dev git-core libimobiledevice-utils libplist-utils usbmuxd -y`
|
19
|
+
* Install idb: `gem install idb`
|
20
|
+
* Run idb: `idb`
|
21
|
+
* Hooray!
|
10
22
|
|
11
|
-
|
23
|
+
Expect a fully bundled version which includes ruby and qt soon!
|
12
24
|
|
13
|
-
|
25
|
+
## Usage
|
14
26
|
|
15
|
-
|
27
|
+
See the basic [manual and walk-through](//github.com/dmayer/idb/wiki/Manual-and--Walk-Through) to get started.
|
16
28
|
|
17
|
-
|
29
|
+
## FAQ
|
18
30
|
|
19
|
-
|
31
|
+
### Q: After staring idb, the menu bar does not appear
|
32
|
+
A: This seems to be a bug when using ruby 2.1 on OS X. I have no idea why this is happening, but switching to a different application and the back to idb fixes it. Any pointers on how to fix this are greatly appreciated!
|
20
33
|
|
21
|
-
TODO: Write usage instructions here
|
22
34
|
|
23
35
|
## Contributing
|
24
36
|
|
data/bin/idb
CHANGED
data/idb.gemspec
CHANGED
@@ -9,7 +9,7 @@ Gem::Specification.new do |spec|
|
|
9
9
|
spec.authors = ["Daniel A. Mayer"]
|
10
10
|
spec.email = ["mayer@cysec.org"]
|
11
11
|
spec.summary = %q{idb is a tool to simplify some common tasks for iOS pentesting and research.}
|
12
|
-
spec.description = %q{
|
12
|
+
spec.description = %q{idb is a tool to simplify some common tasks for iOS pentesting and research. Please see https://github.com/dmayer/idb for more details on installation and usage.}
|
13
13
|
spec.homepage = "https://github.com/dmayer/idb"
|
14
14
|
spec.license = "MIT"
|
15
15
|
|
@@ -38,4 +38,5 @@ Gem::Specification.new do |spec|
|
|
38
38
|
spec.add_runtime_dependency 'eventmachine'
|
39
39
|
spec.add_runtime_dependency 'log4r'
|
40
40
|
spec.add_runtime_dependency 'git'
|
41
|
+
spec.add_runtime_dependency 'hexdump'
|
41
42
|
end
|
@@ -0,0 +1,57 @@
|
|
1
|
+
|
2
|
+
require "hexdump"
|
3
|
+
module Idb
|
4
|
+
class KeychainBinaryWidget < Qt::Widget
|
5
|
+
|
6
|
+
# def hexdump(data, start = 0, finish = nil, width = 16)
|
7
|
+
# result = ""
|
8
|
+
# ascii = ''
|
9
|
+
# counter = 0
|
10
|
+
# result += '%06x ' % start
|
11
|
+
# data.each_byte do |c|
|
12
|
+
# if counter >= start
|
13
|
+
# result += '%02x ' % c
|
14
|
+
# ascii << (c.between?(32, 126) ? c : ?.)
|
15
|
+
# if ascii.length >= width
|
16
|
+
# result += ascii + "\n"
|
17
|
+
# ascii = ''
|
18
|
+
# result += '%06x ' % (counter + 1)
|
19
|
+
# end
|
20
|
+
# end
|
21
|
+
# throw :done if finish && finish <= counter
|
22
|
+
# counter += 1
|
23
|
+
# end rescue :done
|
24
|
+
# result += ' ' * (width - ascii.length) + ascii + "\n"
|
25
|
+
# result
|
26
|
+
# end
|
27
|
+
|
28
|
+
|
29
|
+
def initialize *args
|
30
|
+
super *args
|
31
|
+
@layout = Qt::GridLayout.new
|
32
|
+
setLayout(@layout)
|
33
|
+
|
34
|
+
@vdata_text = Qt::PlainTextEdit.new
|
35
|
+
@vdata_text.setReadOnly(true)
|
36
|
+
|
37
|
+
font = Qt::Font.new("Courier")
|
38
|
+
@vdata_text.setFont(font)
|
39
|
+
|
40
|
+
|
41
|
+
|
42
|
+
@layout.addWidget @vdata_text, 1, 0
|
43
|
+
end
|
44
|
+
|
45
|
+
def set_data data
|
46
|
+
output = ""
|
47
|
+
Hexdump.dump(data, {:output => output } )
|
48
|
+
@vdata_text.appendPlainText output
|
49
|
+
end
|
50
|
+
|
51
|
+
def clear
|
52
|
+
@vdata_text.clear
|
53
|
+
end
|
54
|
+
|
55
|
+
|
56
|
+
end
|
57
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
require_relative 'keychain_text_widget'
|
2
|
+
require_relative 'keychain_binary_widget'
|
3
|
+
|
4
|
+
module Idb
|
5
|
+
|
6
|
+
class KeychainTabWidget < Qt::TabWidget
|
7
|
+
|
8
|
+
def initialize *args
|
9
|
+
super *args
|
10
|
+
|
11
|
+
@tabs = Hash.new
|
12
|
+
|
13
|
+
@text = KeychainTextWidget.new self
|
14
|
+
@tabs[:text] = addTab(@text, "Text Data")
|
15
|
+
|
16
|
+
@binary = KeychainBinaryWidget.new self
|
17
|
+
@tabs[:binary] = addTab(@binary, "Binary VData")
|
18
|
+
|
19
|
+
end
|
20
|
+
|
21
|
+
def set_data text
|
22
|
+
@text.clear
|
23
|
+
@text.set_data text
|
24
|
+
end
|
25
|
+
|
26
|
+
def set_vdata text
|
27
|
+
@binary.clear
|
28
|
+
@binary.set_data text
|
29
|
+
end
|
30
|
+
|
31
|
+
def clear
|
32
|
+
@text.clear
|
33
|
+
@binary.clear
|
34
|
+
end
|
35
|
+
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
|
2
|
+
module Idb
|
3
|
+
class KeychainTextWidget < Qt::Widget
|
4
|
+
|
5
|
+
attr_accessor :data_text, :vdata_text
|
6
|
+
|
7
|
+
def initialize *args
|
8
|
+
super *args
|
9
|
+
@layout = Qt::GridLayout.new
|
10
|
+
setLayout(@layout)
|
11
|
+
|
12
|
+
@data_text = Qt::PlainTextEdit.new
|
13
|
+
@data_text.setReadOnly(true)
|
14
|
+
@layout.addWidget @data_text, 0, 0
|
15
|
+
|
16
|
+
end
|
17
|
+
|
18
|
+
def set_data data
|
19
|
+
@data_text.appendPlainText data.to_s
|
20
|
+
end
|
21
|
+
|
22
|
+
def clear
|
23
|
+
@data_text.clear
|
24
|
+
end
|
25
|
+
|
26
|
+
|
27
|
+
end
|
28
|
+
end
|
@@ -1,7 +1,9 @@
|
|
1
1
|
require_relative '../lib/keychain_plist_parser'
|
2
|
+
require_relative 'keychain_tab_widget'
|
2
3
|
|
3
4
|
module Idb
|
4
|
-
|
5
|
+
|
6
|
+
class KeychainWidget < Qt::Widget
|
5
7
|
|
6
8
|
def initialize *args
|
7
9
|
super *args
|
@@ -15,17 +17,8 @@ module Idb
|
|
15
17
|
@selection_model.connect(SIGNAL('selectionChanged(QItemSelection,QItemSelection)')) {|x,y|
|
16
18
|
unless x.indexes.length == 0
|
17
19
|
row = x.indexes[0].row
|
18
|
-
|
19
|
-
|
20
|
-
text << "=======================\n"
|
21
|
-
text << @keychain.entries[row]["data"].to_s
|
22
|
-
|
23
|
-
text << "\n\nV_DATA\n"
|
24
|
-
text << "=======================\n"
|
25
|
-
text << @keychain.entries[row]["v_Data"].to_s
|
26
|
-
@details.clear
|
27
|
-
@details.appendPlainText text
|
28
|
-
|
20
|
+
@keychain_tab_widget.set_data @keychain.entries[row]["data"]
|
21
|
+
@keychain_tab_widget.set_vdata @keychain.entries[row]["v_Data"]
|
29
22
|
end
|
30
23
|
|
31
24
|
}
|
@@ -39,22 +32,24 @@ module Idb
|
|
39
32
|
|
40
33
|
@layout.addWidget @keychain_tab, 0,0
|
41
34
|
|
42
|
-
@details = Qt::PlainTextEdit.new
|
43
|
-
@details.setReadOnly(true)
|
44
|
-
@layout.addWidget @details, 1, 0
|
45
35
|
|
46
36
|
@dump = Qt::PushButton.new "Dump Keychain"
|
37
|
+
@layout.addWidget @dump, 2, 0
|
38
|
+
|
39
|
+
@keychain_tab_widget = KeychainTabWidget.new
|
40
|
+
@layout.addWidget @keychain_tab_widget, 3, 0
|
41
|
+
|
47
42
|
@dump.connect(SIGNAL :released) {
|
48
43
|
$device.dump_keychain
|
49
44
|
@keychain = KeychainPlistParser.new "#{$tmp_path}/device/genp.plist"
|
50
45
|
populate_table
|
51
46
|
}
|
52
|
-
|
47
|
+
|
53
48
|
end
|
54
49
|
|
50
|
+
|
55
51
|
def populate_table
|
56
|
-
@
|
57
|
-
@model.clear
|
52
|
+
@keychain_tab_widget.clear
|
58
53
|
@model.setHorizontalHeaderItem(0, Qt::StandardItem.new("Access Group"))
|
59
54
|
@model.setHorizontalHeaderItem(1, Qt::StandardItem.new("Account"))
|
60
55
|
@model.setHorizontalHeaderItem(2, Qt::StandardItem.new("Service"))
|
@@ -79,8 +74,5 @@ module Idb
|
|
79
74
|
|
80
75
|
end
|
81
76
|
|
82
|
-
|
83
|
-
|
84
|
-
|
85
77
|
end
|
86
|
-
end
|
78
|
+
end
|
data/lib/gui/main_tab_widget.rb
CHANGED
@@ -6,7 +6,7 @@ require_relative 'snoop_it_tab_widget'
|
|
6
6
|
require_relative 'cycript_console_widget'
|
7
7
|
require_relative 'pasteboard_monitor_widget'
|
8
8
|
require_relative 'fs_viewer_tab_widget'
|
9
|
-
require_relative '
|
9
|
+
require_relative 'keychain_widget'
|
10
10
|
require_relative 'tool_widget'
|
11
11
|
require 'Qt'
|
12
12
|
|
@@ -60,7 +60,7 @@ module Idb
|
|
60
60
|
@log.setEnabled(false)
|
61
61
|
@tabs[:log] = addTab(@log, "Log")
|
62
62
|
|
63
|
-
@keychain =
|
63
|
+
@keychain = KeychainWidget.new self
|
64
64
|
@keychain.setEnabled(false)
|
65
65
|
@tabs[:keychain] = addTab(@keychain, "Keychain")
|
66
66
|
|
data/lib/idb/version.rb
CHANGED
data/lib/lib/device.rb
CHANGED
@@ -81,7 +81,7 @@ module Idb
|
|
81
81
|
end
|
82
82
|
|
83
83
|
def start_port_forwarding
|
84
|
-
@port_forward_pid = Process.spawn("#{RbConfig.ruby}
|
84
|
+
@port_forward_pid = Process.spawn("#{RbConfig.ruby} #{File.dirname(File.expand_path(__FILE__))}/../helper/ssh_port_forwarder.rb" )
|
85
85
|
end
|
86
86
|
|
87
87
|
def restart_port_forwarding
|
@@ -206,34 +206,34 @@ module Idb
|
|
206
206
|
|
207
207
|
def upload_dumpdecrypted
|
208
208
|
$log.info "Uploading dumpdecrypted library..."
|
209
|
-
@ops.upload("utils/dumpdecrypted/dumpdecrypted_armv6.dylib","/var/root/dumpdecrypted_armv6.dylib")
|
210
|
-
@ops.upload("utils/dumpdecrypted/dumpdecrypted_armv7.dylib","/var/root/dumpdecrypted_armv7.dylib")
|
209
|
+
@ops.upload("#{File.dirname(File.expand_path(__FILE__))}/../utils/dumpdecrypted/dumpdecrypted_armv6.dylib","/var/root/dumpdecrypted_armv6.dylib")
|
210
|
+
@ops.upload("#{File.dirname(File.expand_path(__FILE__))}/../utils/dumpdecrypted/dumpdecrypted_armv7.dylib","/var/root/dumpdecrypted_armv7.dylib")
|
211
211
|
$log.info "'dumpdecrypted' installed successfully."
|
212
212
|
end
|
213
213
|
|
214
214
|
def install_keychain_dump
|
215
|
-
if File.exist? "utils/keychain_dump/keychain_dump"
|
215
|
+
if File.exist? "#{File.dirname(File.expand_path(__FILE__))}/../utils/keychain_dump/keychain_dump"
|
216
216
|
upload_keychain_dump
|
217
217
|
else
|
218
|
-
$log.error "keychain_dump not found at 'utils/keychain_dump/keychain_dump'."
|
218
|
+
$log.error "keychain_dump not found at '#{File.dirname(File.expand_path(__FILE__))}/../utils/keychain_dump/keychain_dump'."
|
219
219
|
false
|
220
220
|
end
|
221
221
|
end
|
222
222
|
def install_pcviewer
|
223
|
-
if File.exist? "utils/pcviewer/protectionclassviewer"
|
223
|
+
if File.exist? "#{File.dirname(File.expand_path(__FILE__))}/../utils/pcviewer/protectionclassviewer"
|
224
224
|
upload_pcviewer
|
225
225
|
else
|
226
|
-
$log.error "protectionclassviewer not found at 'utils/pcviewer/protectionclassviewer'."
|
226
|
+
$log.error "protectionclassviewer not found at '#{File.dirname(File.expand_path(__FILE__))}/../utils/pcviewer/protectionclassviewer'."
|
227
227
|
false
|
228
228
|
end
|
229
229
|
end
|
230
230
|
|
231
231
|
|
232
232
|
def install_pbwatcher
|
233
|
-
if File.exist? "utils/pbwatcher/pbwatcher"
|
233
|
+
if File.exist? "#{File.dirname(File.expand_path(__FILE__))}/../utils/pbwatcher/pbwatcher"
|
234
234
|
upload_pbwatcher
|
235
235
|
else
|
236
|
-
$log.error "pbwatcher not found at 'utils/pbwatcher/pbwatcher'."
|
236
|
+
$log.error "pbwatcher not found at '#{File.dirname(File.expand_path(__FILE__))}/../utils/pbwatcher/pbwatcher'."
|
237
237
|
false
|
238
238
|
end
|
239
239
|
end
|
@@ -241,7 +241,7 @@ module Idb
|
|
241
241
|
def upload_pcviewer
|
242
242
|
begin
|
243
243
|
$log.info "Uploading pcviewer..."
|
244
|
-
@ops.upload "utils/pcviewer/protectionclassviewer", "/var/root/protectionclassviewer"
|
244
|
+
@ops.upload "#{File.dirname(File.expand_path(__FILE__))}/../utils/pcviewer/protectionclassviewer", "/var/root/protectionclassviewer"
|
245
245
|
@ops.chmod "/var/root/protectionclassviewer", 0744
|
246
246
|
$log.info "'pcviewer' installed successfully."
|
247
247
|
# true
|
@@ -254,7 +254,7 @@ module Idb
|
|
254
254
|
def upload_keychain_dump
|
255
255
|
begin
|
256
256
|
$log.info "Uploading keychain_dump..."
|
257
|
-
@ops.upload "utils/keychain_dump/keychain_dump", "/var/root/keychain_dump"
|
257
|
+
@ops.upload "#{File.dirname(File.expand_path(__FILE__))}/../utils/keychain_dump/keychain_dump", "/var/root/keychain_dump"
|
258
258
|
@ops.chmod "/var/root/keychain_dump", 0744
|
259
259
|
$log.info "'keychain_dump' installed successfully."
|
260
260
|
# true
|
@@ -266,7 +266,7 @@ module Idb
|
|
266
266
|
def upload_pbwatcher
|
267
267
|
begin
|
268
268
|
$log.info "Uploading pbwatcher..."
|
269
|
-
@ops.upload "utils/pbwatcher/pbwatcher", "/var/root/pbwatcher"
|
269
|
+
@ops.upload "#{File.dirname(File.expand_path(__FILE__))}/../utils/pbwatcher/pbwatcher", "/var/root/pbwatcher"
|
270
270
|
@ops.chmod "/var/root/pbwatcher", 0744
|
271
271
|
$log.info "'pbwatcher' installed successfully."
|
272
272
|
# true
|
data/lib/run_idb.rb
ADDED
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: 1.3.
|
4
|
+
version: 1.3.2
|
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-09
|
11
|
+
date: 2014-10-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -276,7 +276,22 @@ dependencies:
|
|
276
276
|
- - ">="
|
277
277
|
- !ruby/object:Gem::Version
|
278
278
|
version: '0'
|
279
|
-
|
279
|
+
- !ruby/object:Gem::Dependency
|
280
|
+
name: hexdump
|
281
|
+
requirement: !ruby/object:Gem::Requirement
|
282
|
+
requirements:
|
283
|
+
- - ">="
|
284
|
+
- !ruby/object:Gem::Version
|
285
|
+
version: '0'
|
286
|
+
type: :runtime
|
287
|
+
prerelease: false
|
288
|
+
version_requirements: !ruby/object:Gem::Requirement
|
289
|
+
requirements:
|
290
|
+
- - ">="
|
291
|
+
- !ruby/object:Gem::Version
|
292
|
+
version: '0'
|
293
|
+
description: idb is a tool to simplify some common tasks for iOS pentesting and research.
|
294
|
+
Please see https://github.com/dmayer/idb for more details on installation and usage.
|
280
295
|
email:
|
281
296
|
- mayer@cysec.org
|
282
297
|
executables:
|
@@ -293,8 +308,6 @@ files:
|
|
293
308
|
- Rakefile
|
294
309
|
- bin/idb
|
295
310
|
- idb.gemspec
|
296
|
-
- lib/LICENSE
|
297
|
-
- lib/README.md
|
298
311
|
- lib/config/.dummy
|
299
312
|
- lib/config/settings.yml
|
300
313
|
- lib/gui/app_binary_tab_widget.rb
|
@@ -318,7 +331,10 @@ files:
|
|
318
331
|
- lib/gui/images/folder.ico
|
319
332
|
- lib/gui/images/iphone.ico
|
320
333
|
- lib/gui/images/screenshot.png
|
321
|
-
- lib/gui/
|
334
|
+
- lib/gui/keychain_binary_widget.rb
|
335
|
+
- lib/gui/keychain_tab_widget.rb
|
336
|
+
- lib/gui/keychain_text_widget.rb
|
337
|
+
- lib/gui/keychain_widget.rb
|
322
338
|
- lib/gui/local_storage_tab_widget.rb
|
323
339
|
- lib/gui/log_plain_text_edit.rb
|
324
340
|
- lib/gui/log_widget.rb
|
@@ -375,6 +391,7 @@ files:
|
|
375
391
|
- lib/lib/url_scheme_fuzzer.rb
|
376
392
|
- lib/lib/usb_muxd_wrapper.rb
|
377
393
|
- lib/lib/weak_class_dump_wrapper.rb
|
394
|
+
- lib/run_idb.rb
|
378
395
|
- lib/utils/dumpdecrypted/README
|
379
396
|
- lib/utils/dumpdecrypted/dumpdecrypted_armv6.dylib
|
380
397
|
- lib/utils/dumpdecrypted/dumpdecrypted_armv7.dylib
|
data/lib/LICENSE
DELETED
@@ -1,20 +0,0 @@
|
|
1
|
-
The MIT License (MIT)
|
2
|
-
|
3
|
-
Copyright (c) 2013 Daniel A. Mayer
|
4
|
-
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
6
|
-
this software and associated documentation files (the "Software"), to deal in
|
7
|
-
the Software without restriction, including without limitation the rights to
|
8
|
-
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
9
|
-
the Software, and to permit persons to whom the Software is furnished to do so,
|
10
|
-
subject to the following conditions:
|
11
|
-
|
12
|
-
The above copyright notice and this permission notice shall be included in all
|
13
|
-
copies or substantial portions of the Software.
|
14
|
-
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
17
|
-
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
18
|
-
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
19
|
-
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
20
|
-
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/lib/README.md
DELETED
@@ -1,54 +0,0 @@
|
|
1
|
-
# gidb
|
2
|
-
|
3
|
-
gidb is a tool to simplify some common tasks for iOS pentesting and research. It is still a work in progress but already provides a bunch of (hopefully) useful commands. The goal was to provide all (or most) functionality for both, iDevices and the iOS simulator. For this, a lot is abstracted internally to make it work transparently for both environments. Although recently the focus has been more on supporting devices.
|
4
|
-
|
5
|
-
idb was released as part of a talk at [ShmooCon](http://shmoocon.org) 2014. The [slides of the talk](https://speakerdeck.com/dmayer/introducing-idb-simplified-blackbox-ios-app-pentesting) are up on [Speakerdeck](https://speakerdeck.com/dmayer/introducing-idb-simplified-blackbox-ios-app-pentesting). [Video](https://archive.org/details/ShmooCon2014_Introducing_idb_Simplified_Blackbox_iOS_App_Pentesting) is available on [archive.org](http://www.archive.org) There is also a [blog post](http://cysec.org/blog/2014/01/23/idb-ios-research-slash-pentesting-tool/) on my [personal website](http://cysec.org).
|
6
|
-
|
7
|
-
## Getting Started
|
8
|
-
Visit the [getting started guide](//github.com/dmayer/idb/wiki/Getting-started) on the wiki to get installation instructions. Next, there is a basic [manual and walk-through](//github.com/dmayer/idb/wiki/Manual-and--Walk-Through) available as well.
|
9
|
-
|
10
|
-
Bug reports, feature requests, and contributions are more than welcome!
|
11
|
-
|
12
|
-
## Command-Line Version
|
13
|
-
idb started out as a command line tool which is still accessible through the `cli` branch. Find the [getting started](//github.com/dmayer/idb/wiki/CLI-Version:-Getting-Started) guide and some more documentation in the wiki.
|
14
|
-
|
15
|
-
## gidb Features
|
16
|
-
|
17
|
-
* Simplified pentesting setup
|
18
|
-
* Setup port forwarding
|
19
|
-
* Certificate management
|
20
|
-
* iOS log viewer
|
21
|
-
* Screen shot utility
|
22
|
-
* Simplifies testing for the creation of backgrounding screenshots
|
23
|
-
* App-related functions
|
24
|
-
* App binary
|
25
|
-
* Download
|
26
|
-
* List imported libraries
|
27
|
-
* Check for encryption, ASLR, stack canaries
|
28
|
-
* Decrypt and download an app binary (requires [dumpdecrypted](//github.com/stefanesser/dumpdecrypted))
|
29
|
-
* Launch an app
|
30
|
-
* View app details such as name, bundleid, and `Info.plist` file.
|
31
|
-
* Inter-Process Communication
|
32
|
-
* URL Handlers
|
33
|
-
* List URL handlers
|
34
|
-
* Invoke and fuzz URL handlers
|
35
|
-
* Pasteboard monitor
|
36
|
-
* Analyze local file storage
|
37
|
-
* Search for, download, and view plist files
|
38
|
-
* Search for, download, and view sqlite databases
|
39
|
-
* Search for, download, and view local caches (`Cache.db`)
|
40
|
-
* File system browser
|
41
|
-
* Install utilities on iDevices
|
42
|
-
* Install [iOS SSL killswitch](//github.com/iSECPartners/ios-ssl-kill-switch)
|
43
|
-
* alpha: Compile and install [dumpdecrypted](//github.com/stefanesser/dumpdecrypted)
|
44
|
-
* Alpha:
|
45
|
-
* Cycript console
|
46
|
-
* Snoop-It integration
|
47
|
-
|
48
|
-
## Documentation
|
49
|
-
Some documentation can be found on the [wiki](//github.com/dmayer/idb/wiki).
|
50
|
-
|
51
|
-
## FAQ
|
52
|
-
|
53
|
-
### Q: After staring idb, the menu bar does not appear
|
54
|
-
A: This seems to be a bug when using ruby 2.1 on OS X. I have no idea why this is happening, but switching to a different application and the back to idb fixes it. Any pointers on how to fix this are greatly appreciated!
|