iOS逆向学习笔记之--常用工具安装篇

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wj610671226/article/details/81057346

iOS逆向学习笔记之–常用工具安装篇

OpenSSH

OpenSSH用来在电脑端登录iPhone手机,从而在电脑端对手机进行一系列操作。
在Cydia中搜索OpenSSH并安装,这样iOS上面就可以开启SSH服务。SSH服务默认绑定端口号22。安装OpenSSH之后 iOS设备上面的用户分别为root用户和mobile用户
mac需要和iOS越狱设备在同一个网段中,iOS连接wifi,设置中可以看到ip地址,也可以改成静态IP地址
使用ssh命令连接iOS设备,默认登录密码”alpine”
ssh [email protected]
修改root用户默认密码
passwd root
然后在命令行中输入新密码,完成修改即可

安装软件管理包apt-get

在Cydia 中搜索APT 0.6 TRansitional 并安装
使用apt-get安装必要的工具包

apt-get install  ping 
apt-get install  ps
apt-get install  find        
apt-get install tcpdump
apt-get install top
apt-get install vim
apt-get install  network-cmds   //-arp, ifconfig, netstat, route, traceroute
apt-get install cycript

// 补充一些命令
apt-get update                        【更新所有的源】
apt-get upgrade                       【更新所有通过apt-get安装的程序】
apt-get install  packagename          【安装软件包】
apt-get remove  packagename           【删除软件包,不删除依赖包,不删除配置文件】
apt-get remove --purge packagename    【删除该软件包,不删除依赖包,删除配置文件】
apt-get autoremove packagename         [删除该软件包,删除依赖包,不删除配置文件]
apt-get autoremove --purge packagname    【可以删除所有依赖包+配置文件】
apt-cache search string               【搜索含有该string字段的软件包】
apt-cache show packagename            【详细显示该软件包的信息】
apt-get clean                         【清除apt-get安装的软件包备份,可以释放储存空间,不影响软件正常使用】

利用apt-get安装一些软件过程中遇到的问题
Could not get lock /var/lib/dpkg/lock - open (35: Resource temporarily unavailable)
Unable to lock the administration directory (/var/lib/dpkg/), is another process using it?
解决办法
rm /var/lib/apt/lists/lock
rm /var/cache/apt/archives/lock    如果有的话
apt-get update  更新然后再重新安装


利用scp命令可以传输文件
scp filename  root@192.168.0.15:/tmp             // 拷贝本地文件到越狱手机
scp root@192.168.0.15:/tmp/filename  /tmp/       // 从越狱手机拷贝文件到本地Mac电脑

Apple File Conduit “2”

Apple File Conduit “2”是配合在电脑端查看越狱iOS设备文件目录的插件(电脑端软件iFunBox)
在Cydia中搜索Apple File Conduit “2”安装即可

Mac端安装iFunbox
下载地址:http://www.i-funbox.com/zh-cn_download.html

Reveal

方法一:
这里Reveal用的是比较旧的版本1.6.3破解版,越狱手机是4S(iOS8.0)版本,但是出现了左侧控件类名不显示的问题
1、在Cydia中搜索安装Reveal Loader
2、在iOS越狱设备/Library/下创建RHRevealLoader目录
3、在Mac电脑上Reveal的help菜单下找到Show Reveal Library in Finder中找到libReveal.dylib,然后拷贝到刚创建的RHRevealLoader目录下
4、在iOS设备设置中Reveal点击Enabled Applications打开需要查看的APP
5、重启需要观察的APP,在mac上开始观察(mac 和 越狱手机需要在同一局域网)
这里写图片描述

方法二:
1、下载新版本Reveal,由于没有找到破解版的,就申请了一个14天试用的版本
2、在Mac电脑上Reveal的help菜单下找到Show Reveal Library in Finder/iOS Library/RevealServer.framework/RevealServer文件
3、然后将RevealServer重命名为libReveal.dylib,然后新建一个libReveal.plist文件.
plist的内容为目标APP的bundleIdetifier

macdeiMac:reveal mac$ cat libReveal.plist 
{ Filter = { Bundles = ( "com.jingyao.EasyBike" ); }; }

4、然后利用scp命令或者iFunBox将这两个文件拷贝到越狱手机/Library/MobileSubstrate/DynamicLibraries/目录下就可以查看对应APP的UI结构了
这里写图片描述

安装usbmuxd

  • 利用usbmuxd转发ssh连接设备和lldb调试信息,解决通过WiFi连接带来的延时和卡顿问题

1、下载usbmuxd
http://cgit.sukimashita.com/usbmuxd.git/snapshot/usbmuxd- 1.0.8.tar.gz
2、解压usbmuxd- 1.0.8.tar.gz文件,拷贝python-client文件夹中的两个Python文件到至自己需要的目录下,并赋予执行权限

mkdir ~/usbtool 
cd ~/usbtool
chmod 755 ./tcprelay.py
chmod 755 ./usbmux.py
  • 把本地2222端口转发到iOS设备的22端口(ssh)
// 在命令行中开启转发端口
~/usbtool/tcprelay.py -t 22:2222  
// 在新窗口中ssh连接到手机
ssh root@localhost -p 2222
// scp
scp -P root@localhost:/Library/MobileSubstrate/DynamicLibraries/HaLuoTweakProject.plist ./

结果如下:
这里写图片描述
这里写图片描述

  • 利用usbmuxd转发lldb调试信息

1、在iOS上指定debugserver需要监听的端口号
debugserver *:9999 -a “caipudaquan”
2、在Mac上开启转发请求
~/usbtool/tcprelay.py -t 9999:9999
3、开启lldb调试
process connect connect://localhost:9999
这里写图片描述
这里写图片描述
这里写图片描述

cycript

官方网站:http://www.cycript.org/
Cycript是一款脚本语言,可以看作是Objective-JavaScript,它可以帮助我们轻松测试和验证函数效果

扫描二维码关注公众号,回复: 3738010 查看本文章
  • 安装

方法一:在越狱iOS设备的Cydia中搜索cycript然后进行安装
方法二:apt-get install cycript

  • cycript常用操作
ps -e // 找出需要注入的APP进程
cycript -p caipudaquan // 注入该进程
var dir = NSHomedirectory() // 打印沙盒目录
// 使用recursiveDescription打印UIView对象
[[UIApp keyWindow] recursiveDescription].toString() 
UIApp.keyWindow.recursiveDescription().toString()
// 用对象地址借助nextResponder方法获取下一个响应者(最终获取视图控制器)
[#0x14eaed070 nextResponder]
// 直接打印所有UIViewController
[[[UIWindow keyWindow] rootViewController] _printHierarchy].toString()
// recursiveDescription的简化版,去掉了UIView的一些描述
[[UIApp keyWindow] _autolayoutTrace].toString()
// 获取bundle info
[[NSBundle mainBundle] infoDictionary].toString()
// 选择某个类的实例数组
choose(UIButton)
// 打印某个对象的属性
[#0x192dd620 _ivarDescription].toString()
// 打印某个对象的方法
[#0x192dd620 _methodDescription].toString()
control + D 退出
  • 封装工具方法

1、将一些常用的操作方法封装到一个Python脚本中
2、然后拷贝到越狱手机/usr/lib/cycript0.9目录下,赋予执行权限
3、在注入对应进程后导入该工具
4、调用其中的工具方法

iPhone:/usr/lib/cycript0.9 root# cycript -p EasyBike
cy# @import mytool
{}

// 出现上面则表示导入成功,可以使用

其他软件

Mac 安装 brew install dpkg
使用:
dpkg -i/r deb包的安装/卸载
dpkg -c name.deb 查看deb包目录结构
这里写图片描述

猜你喜欢

转载自blog.csdn.net/wj610671226/article/details/81057346