美文网首页iOS逆向工程iOS越狱
theos的Tweak创建的dylib怎么安装到非越狱机上详解

theos的Tweak创建的dylib怎么安装到非越狱机上详解

作者: 西博尔 | 来源:发表于2016-08-04 21:19 被阅读1022次

    两个日夜 , 终于调试出来了 , 坑, 太坑

    1.准备tweak创建的dylib
     现在的版本应该在.theos/obj/debug/YourDylib.dylib
    .theos是隐藏文件 , 在你创建的tweak工程下
    
    2.查看你的dylib
    otool -L hongbao.dylib
    
    
    5.png
    这里有对CydiaSubstrate的依赖 , 这是不行的 , 这个是theos在越狱机上特有的, 在非越狱机上需要更改此依赖

    .
    .
    .

    3.修改依赖
    先上一张修改之后的依赖图片
    6.png
    这里面用到了libsubstrate.dylib , 这个在/opt/theos/bin 下
    需要的命令:install_name_tool -change old.dylib @executable_path/new.dylib 目标文件
    
    再来查看我们的hongbao.dylib
    7.png
    已经修改完成

    .
    .
    .

    4.签名hongbao.dylib 和libsubstrate.dylib(很重要)

    codesign -f -s 自己证书名称 要签名的文件
    
    11.png

    5.添加可执行文件的依赖

    ./insert_dylib @executable_path/hongbao.dylib WeChat
    
    xiaowudeMacBook-Pro:iOS逆向开发 DH$ ./insert_dylib @executable_path/hongbao.dylib WeChat
    Binary is a fat binary with 2 archs.
    LC_CODE_SIGNATURE load command found. Remove it? [y/n] n
    LC_CODE_SIGNATURE load command found. Remove it? [y/n] n
    Added LC_LOAD_DYLIB to all archs in WeChat_patched
    
    会生成一个WeChat_patched 这个就是修改了依赖关系的二进制文件

    .
    .
    .

    6.替换

    1.将 hongbao.dylib libsubstrate.dylib 还有 WeChat_patched拷贝进你的WeChat.app 
    2.记住要把WeChat_patched的名字改回来
    

    7.生成ipa

    xcrun -sdk iphoneos PackageApplication -v WeChat.app  -o ~/WeChat.ipa
    

    8.用iResign工具修改bundle id 并且重签整个应用

    相关文章

      网友评论

      • 小白逆向:dylib成功签名 但是推送服务没有了是怎么回事呢 @西博尔
        西博尔:@小白逆向 弄明白也跟我说说
        小白逆向:@西博尔 我看有人都可以用自己的证书照样推送
        西博尔:@小白逆向 签名都变了, 当然没有推送了, 推送和证书有关
      • bbf4b3b9fd7c:安装的时候出现 A signed resource has been added, modified, or deleted,请问怎么解决啊?
      • 万事笔通:@西博尔 watch,PlugIns目录都删了,也用codesign命令将dylib和Unix executable文件逐一签名,签名过程发现部分Unix executable文件修改时间不会变化,但是用“codesign -vv -d xxx”显示签名成功了。确认全部dylib和Unix executable文件全部重签名,(隐藏文件也显示)最后打包安装后,还是出现闪退。壳方面,应该没有问题,ipa文件本身能安装。用了查壳命令也看过。
        万事笔通:@zhnnnnn 不好意思 还没找到原因 后面没去弄了
        d9557f883fd8:@万事笔通 你后来又发现是什么问题吗,我用iresign重签 watch,PlugIns目录都删了,重签完的ipa装上闪退。
        西博尔:@万事笔通 加qq:775934870 说明是谁 , 在这回复太慢了
      • 万事笔通:@西博尔 很感谢您的回复 我先说下我的步骤 1.unzip命令解压 2.将entitlement.plist和embedded.provision文件分别cp进payload同一目录下和payload里面 3.利用codesign命令分别将.dylib和entitlements.plist重签名 4.重新打包后,用iresign重签名 --经过以上几步,我成功签名了一个ipa(不闪退,也有3个.dylib),但是另外一些具有多个.dylib文件的就闪退。其他的要签名的是什么文件能告诉一下么?
        西博尔:@万事笔通 步骤是没问题的, 但是你重签有问题 ,微信的Payload里面有一个Watch目录下的xx.app
        也要重签 , PlugIns下的文件也要重签 , 你也可以删掉这两个目录 . 只要是dylib 或者二进制文件就都要签名
      • 万事笔通:请教下楼主知不知道重签名除了你上述的dylib和entitlements,还有可能那些文件需要重签名的,我有一个微信ipa包(本来可以用)重签名后闪退,另外一个ipa重签名就可以。请问知道什么原因么?
        西博尔:@万事笔通 抱歉, 才看到 , 其实你是签名失败了 ,iResign显示成功, 其实只是签名了WeChat, 还有其他要签的并没有签名

      本文标题:theos的Tweak创建的dylib怎么安装到非越狱机上详解

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