美文网首页
iOS逆向1020-2-越狱Cycript

iOS逆向1020-2-越狱Cycript

作者: lukyy | 来源:发表于2018-06-28 17:35 被阅读67次
 ###上节用到终端命令

$ ssh-copy-id root@192.168.31.178
$ ssh root@192.168.31.178
$ ssh -p 22 root@192.168.31.178
$ python tcprelay-py -t 22:12345  //监听本地(本机Mac)的12345,只要监听到,就给手机的22 端口发数据
$  python /Users/zhangmeng/ZMshell/python-client/tcprelay.py -t 22:12345 //映射本地端口
$ ssh root@localhost -p 12345
$ ssh root@127.0.0.1
$ sh usbConnect.sh
$ sh usbLogin.sh
$ vim /Users/zhangmeng/.ssh/known_hosts  // 编辑 hosts 删掉 localhost
$ touch 123.txt
$ rm 123.txt
$ scp 123.txt root@192.168.31.178:~/  // 通过WiFi 拷贝
$ ssh root@192.168.31.178
$ scp -P 12345 123.txt root@localhost:~/  // 把 12345 拷贝到 123.txt 文本内,通过映射 USB 传输数据

$ cd /      //到用户目录
$ cd ~/     //到电脑的根目录
$ cd Desktop

$ cd ~/.ssh
$ ~/.ssh ls 
$ ~/.ssh cat known_hosts


// 剥离架构 应用瘦身
$ lipo live4iphone -thin arm64 -output arm64_live4   //166M --> 64M
创建文件夹 PayLoad,arm64_live4 放入PayLoad文件内,
$ zip -ry TenXunLive.ipa PayLoad  //64M --> 47M
重新安装 TenXunLive.ipa //安装成功 --> 94.5 M  非越狱手机,用重签名安装

默认密码 pwd: alpine
  • 001--越狱环境启动Cycript.wmv

image.png
$ cat .inputrc
$ ls        //查看文件
$ ls -a     //查看隐藏文件
$ scp -P 12345 .inputrc root@localhost:~/
$ exit
$ sh usbLogin.s
$ cat .inputrc
$ vim .inputrc  // vim编辑 报错,要安装以下工具

image.png

// 在手机敲终端指令,安装以下工具

image.png

// 在越狱手机上调试

image.png

// iOS11 用以下

image.png
$ sh usbLogin.s
$ ps -A                 // 查看所有进程
$ ps -A | grep WeChat   // | 管道输出符查找对应app进程
$ cycript -p WeChat     // 连接app, app 要在运行中
cy# UIApp

control + D             // 断开
$ cycript -p 20572      // 重新连接app ( 20572 是进程id,即通过进程id连接 )

image.png
cy# UIApp
cy# UIApp,keyWindow
cy# UIApp,keyWindow.recursiveDescription().toString() // 结构层次清晰
cy# ObjectiveC.classes
cy# var keyWindow = UIApp,keyWindow
cy# keyWindow
cy# function sum(a,b) {return a+b; }    //在 cycript 下 的当前进程可用
cy# sum(1,2)

image.png image.png image.png

LLDB

(lldb) po [self.view.window recursiveDescription]

image.png

002--cy文件的运用.wmv

// 封装函数
创建test.cy Sublime Text 文件
// 内容
rootvc = function(){
return UIApp,keyWindow.rootViewController;
}

image.png image.png

$ cd /usr/lib/cycript0.9/
$ scp -P test.cy .inputrc root@localhost:/usr/lib/cycript0.9/
//拷贝在 cycript0.9 目录下

image.png

查看结果

image.png image.png
$ cycript -p WeChat     // 连接app,app 要在运行中
cy#  @import test           // 导入封装文件
cy#  rootvc()
image.png

2.2 修改封装,重启WeChat

image.png
$ cycript -p WeChat     // 连接app,app 要在运行中
cy#  @import test           // 导入封装文件
cy#  rootvc

2.3 修改封装文件的路径,重启WeChat

image.png image.png
$ cycript -p WeChat         // 连接app,app 要在运行中
cy#  @import com.TanZhou.test       // 导入封装文件
cy#  rootvc
2.4 修改封装,重启WeChat
image.png image.png

// 上面👆是变量
// 下面👇是函数,拿出的数据是当时的

image.png image.png
2.5 修改封装,重启WeChat
image.png image.png

$ cycript -p WeChat /usr/lib/cycript0.9/test.cy //直接附加文件

$ cycript -p WeChat /usr/lib/cycript0.9/test.cy //直接附加文件

//直接附加文件,执行一句,再执行下一句,可以直接改 test.cy ,不用重启 WeChat,直接执行
$ cycript -p WeChat /usr/lib/cycript0.9/test.cy ; cycript -p WeChat

2.6 修改封装,重启WeChat

//js语法:IIFE 匿名函数 自执行的表达式

image.png
(function(exports) {
    
    APPID = [NSBundle mainBundle].bundleIdentifier,
    APPPATH = [NSBundle mainBundle].bundlePath,
    APPHOME = NSHomeDirectory(),
    APPDOC = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0],
    APPLIBRARY = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES)[0],
    APPCACHE = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES)[0]
    
    
    HKRootVC = function(){
        return UIApp.keyWindow.rootViewController;
    };
    HKKeyWindow = function(){
        return UIApp.keyWindow;
    };
    
    
    HKGetCurrentVCFromRootVc = function(rootVC){
        var currentVC;
        if ([rootVC presentedViewController]) {
            // 视图是被presented出来的
            rootVC = [rootVC presentedViewController];
        }
        if ([rootVC isKindOfClass:[UITabBarController class]]) {
            // 根视图为UITabBarController
            currentVC = HKGetCurrentVCFromRootVc(rootVC.selectedViewController);
        } else if ([rootVC isKindOfClass:[UINavigationController class]]){
            // 根视图为UINavigationController
            currentVC = HKGetCurrentVCFromRootVc(rootVC.visibleViewController);
        } else {
            // 根视图为非导航类
            currentVC = rootVC;
        }
        return currentVC;
    };
    
    HKCurrentVC = function(){
        return HKGetCurrentVCFromRootVc(HKRootVC());
    }
    
})(exports);

003--非越狱上载入cy文件.wmv

// 先升级 MokeyApp

image.png

$ sh cylogin.sh

image.png

相关文章

网友评论

      本文标题:iOS逆向1020-2-越狱Cycript

      本文链接:https://www.haomeiwen.com/subject/epknyftx.html