美文网首页
IPhone一起玩越狱 -(十六)- tweak 反反插入

IPhone一起玩越狱 -(十六)- tweak 反反插入

作者: struggle3g | 来源:发表于2018-06-28 14:13 被阅读41次

    引言

    通过tweak的原理的研究的出来的结论是:

    • tweak是根据dyld中的DYLD_INSTER_LIBRARIES这个宏环境变量临时插入自己的动态库
    • 在App的MachO文件中存在segmentname、sectionname 分别为__RESTRICT、 __restrict就能够使dyld中的DYLD_INSTER_LIBRARIES这个宏插入动态库失败,也就是tweak失败
    • IPhone一起玩越狱 -(十五)- 禁止tweak插入App进程介绍了反tweak插入,也就是防护你的App被tweak篡改

    反tweak插入,是一个防护问题,我怎么去攻破这层防护呐?这个防护是完美无缺的吗?

    对反tweak插入分析

    • 在dyld源码会直接循环遍历DYLD_INSTER_LIBRARIES中的lib动态库,然后加载到当前目标App进程
    • 当然dyld源码中有加载DYLD_INSTER_LIBRARIES的临时动态库有个先觉条件就是,必须issetugid() == false hasRestrictedSegment(mainExecutableMH) == false
    • 因为没有找到issetugid()相关解释,或者也是apple的私有API,上架的App是无用的
    • hasRestrictedSegment(mainExecutableMH) 分析这个实现得到反tweak的方法就是在你项目生成*.app文件的时候,插入segmentname、sectionname 分别为__RESTRICT、 __restrict的一个Section 详情->戳我
    • 如果想反反tweak目前的方式就是将MachO文件中的__RESTRICT的Section干掉或者修改segmentname、sectionname任意一个,让判断失效

    入手操作

    通过分析,当前我能做的只能是通过修改MachO二进制文件,难点出现了我怎么修改MachO二进制文件,因为学过一点汇编知识,二进制文件都是0、1组成的机器语言,项目通过通过上层语言、汇编语言,最后生成的二进制的计算机语言,如果在一堆二进制文件中找到这个Section,好比是海底涝针,没法入手,这就靠我们去寻找一些工具,古人云:"工欲善其事,必先利其器。"如果有工具可以使用为什么不用呐? 牛顿:"站在巨人的肩膀上"!
    然后我找到了这个神器
    Synalyze It! Pro
    这个可以修改二进制文件


    只要修改以后的内容不等于__RESTRICT、 __restrict
    最后要做的是将MachO文件放回*.app中
    注意
    修改过后的MachO文件需要重新签名才能够安装到手机里面
    无越狱iphone安装多个同样应用的方法(一)
    无越狱IPhone安装多个同样应用的方法(二)Xcode签名
    无越狱IPhone安装多个同样应用的方法(三)自动化重签名
    安装成功以后就可以直接用tweak插入动态库的方式去Hook你的App的代码

    码运昌盛

    相关文章

      网友评论

          本文标题:IPhone一起玩越狱 -(十六)- tweak 反反插入

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