iOS逆向之 代码注入

作者: meryin | 来源:发表于2018-05-15 08:57 被阅读33次

    一 framework注入

    1. 新建工程001--Demo,根据我上一篇文章的重签名方式之三 脚本重签名的xcodeCodesign.sh文件,进行重签名后
    2. Xcode -> TARGETS -> +号 ->Cocoa Touch Framework新建meryinFramework
    3. 在meryinFramework文件下新建类,在类的+(void)load方法中,进行代码编写,如
    +(void)load{
        NSLog(@"meryin--------------xx--");
    }
    
    1. 绑定meryinFramework:TARGETS ->001--Demo ->+New Copy File Phase,
      在Copy File下把Ddestination改为Frameworks,然后把Copy File下的+号,加上新建的meryinFramework,然后build一下
    2. yololib工具拷贝到/usr/local/bin文件夹中
    3. 工程001--Demo的Products,001--Demo.app显示包内容找到包内容中的WeChat可执行文件,拷贝到桌面上yololib WeChat Frameworks/meryinFramework.framework/meryinFramework那么就修改了macho文件的framework依赖关系
      7.修改成功过后在工程文件夹的App文件夹中把微信ipa用归档方式打开,然后进行Payload,找到WeChat.app,显示包内容,找到包内容中的WeChat可执行文件,替换成第6步的WeChat可执行文件
    4. 然后把替换后的WeChat.app文件打包成WeChat.ipazip -ry WeChat.ipa Payload,替换原来的ipa
    5. 最后App文件夹中只剩下替换后的WeChat.ipa,进行运行,结果如下:


      屏幕快照 2018-05-14 下午4.12.51.png

      用MachOView查看macho的framework依赖关系:


      屏幕快照 2018-05-14 下午4.14.30.png

    二 脚本framework注入

    1. 根目录建立APP文件夹,把ipa放进去
    2. xcodeCodesign.sh中写入下面代码
    # 注入dylib 或者framework
    echo "开始注入"
    FRAMEWORK_PATH="Frameworks/meryinFramework.framework/meryinFramework"
    yololib "$TARGET_APP_PATH/$APP_BINARY" "$FRAMEWORK_PATH"
    echo "注入结束"
    
    1. 新建meryinFramework的Cocoa Touch Framework
    2. 在001--Demo工程的TARGETS的Run Script处,把xcodeCodesign.sh的路径写进去,然后就可以运行了

    之后要注入framework,只需建立一个meryinFramework的库,然后把xcodeCodesign.sh的路径写进去就OK

    三 Dylib注入

    1. 接着上面的工程001--Demo , Xcode -> TARGETS -> +号 新建macOS->Library新建meryinDylib

    2.改base sdk为iOS


    1.png
    1. 改code sign identity为iOS developer


      2.png
    2. 绑定meryinDylib:选中meryinDylib真机build过后在Copy File下把Ddestination改为Frameworks,然后把Copy File下的+号,加上新建的meryinDylib


      3.png
    3. 在xcodeCodesign.sh文件中下入代码,然后001--Demo工程的TARGETS的Run Script处,把xcodeCodesign.sh的路径写进去

    # 注入dylib
    echo "开始注入"
    FRAMEWORK_PATH="Frameworks/libmeryinDylib.dylib"
    yololib "$TARGET_APP_PATH/$APP_BINARY" "$FRAMEWORK_PATH"
    echo "注入结束"
    
    1. 在meryinDylib.m中写入测试代码,然后运行
    +(void)load{
        NSLog(@"meryin=dylib------");
    }
    

    结果如下


    相关文章

      网友评论

        本文标题:iOS逆向之 代码注入

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