美文网首页
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