美文网首页逆向工程iOS逆向工程程序员
如何安装Tweak动态生成的.dylib文件

如何安装Tweak动态生成的.dylib文件

作者: 小黑丶 | 来源:发表于2016-09-27 10:37 被阅读2725次

    简述

    当我们通过theos,为越狱机器写了一些hook代码,然后通关<code>make package install</code>命令,成功安装到手机之后,发现代码的功能已经和我们的需求吻合,那么,下面要做的就是如何把生成的.dylib文件注入到二进制文件中,然后成功安装到非越狱的手机设备中.下文中,<code>ioswechatselectall.dylib</code>就是我通过代码生成的文件.

    1.更改环境

    这是十分重要的一步,如果没有执行这一步,直接通过<code>yololib</code>工具注入,然后安装到非越狱手机上就会出现应用闪退的情况.(因为tweak会默认依赖越狱环境,在这里浪费了太多的时间)

    1>找到你生成的.dylib文件

    在你的tweak目录下,应该会找到你通过<code>make package install</code>或者<code>make package</code>指令生成的.dylib文件,

    /代码目录/obj/ioswechatselectall.dylib
    

    2>通过 <code>otool -L </code>命令查看你生成的.dylib文件

    otool -L ioswechatselectall.dylib
    
    Paste_Image.png

    如图所示,这里有对CydiaSubstrate的依赖 , 这是不行的 , 这个是theos在越狱机上特有的, 在非越狱机上需要更改此依赖

    3>修改依赖

    首先要找到<code>libsubstrate.dylib </code>文件,该文件应该在<code>/opt/thoes/lib/</code>目录下,然后将其拷贝到与你生成的的.dylib一个目录下,通过下面的指令修改依赖,

    install_name_tool -change /Library/Frameworks/CydiaSubstrate.framework/CydiaSubstrate @loader_path/libsubstrate.dylib ioswechatselectall.dylib
    

    然后重新查看<code>ioswechatselectall.dylib</code>
    会发现依赖已经被修改完毕


    Paste_Image.png

    2 重新签名ioswechatselectall.dylib 和libsubstrate.dylib(很重要)

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

    3 添加可执行文件的依赖

    此处用的是<code>insert_dylib</code>
    下载地址在https://github.com/Tyilo/insert_dylib
    编译后,将其与其他两个文件拷贝到同一目录下

    Paste_Image.png

    然后将其插入到执行文件中


    Paste_Image.png

    4.其他

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

    5打包

    用iResign工具或者iOS App Signer修改bundle id 并且重签整个应用,并打包生成.ipa文件,就可以成功安装在非越狱的手机设备中

    相关文章

      网友评论

      • 星星杨:楼主,能否问下.dylib文件是怎么生成的,我make package生成的都是deb包啊
      • 3dc9ae236975:我按照上面的步骤,注入自己的dylib到执行文件, libsubstrate.dylib没有注入只是拷贝到执行文件同目录下,结果是Hook没有生效。请问作者我是哪个步骤可能出现问题了?
        7504b383ae7d:可以 用otool -L 可执行文件 看一下是否依懒成功
      • 3dc9ae236975:对第三步 添加可执行文件的依赖 有些疑问:作者是通过insert_dylib把自己写的ioswechatselectall.dylib注入到微信可执行文件,那么libsubstrate.dylib需不需要注入呢?
      • d9557f883fd8:iResign 重签名有什注意的地方吗,我所有的都重签完,最后打包的ipa安装不上。。。。。。

      本文标题:如何安装Tweak动态生成的.dylib文件

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