美文网首页iOS逆向工程iOS逆向iOS逆向开发
iOS安全攻防(一):Hack必备的命令与工具

iOS安全攻防(一):Hack必备的命令与工具

作者: Visitor | 来源:发表于2016-06-08 15:11 被阅读381次

    未经允许,禁止转载

    你的应用正在被其他对手反向工程、跟踪和操作?你的应用是否依旧裸奔毫不防御?

    郑重声明一下,懂得如何攻击才会懂得如何防御,一切都是为了之后的防御作准备。废话少说,进入正题。

    今天总结一下为hack而做的准备工作。

    常用的命令和工具

    ps ——显示进程状态,CPU使用率,内存使用情况等
    sysctl ——检查设定Kernel配置
    netstat ——显示网络连接,路由表,接口状态等
    route ——路由修改
    renice ——调整程序运行的优先级
    ifconfig ——查看网络配置
    tcpdump ——截获分析网络数据包
    lsof ——列出当前系统打开的文件列表,别忘记一切皆文件,包括网络连接、硬件等
    otool ① ——查看程序依赖哪些动态库信息,反编代码段……等等等等
    nm ② ——显示符号表
    ldid ③ ——签名工具
    gdb ——调试工具
    patch ——补丁工具
    SSH ——远程控制

    备注:
    ① otool, 可查看可执行文件链接了哪些库

    img.png
    可以得到:
    img2.png
    可以反编译AlipayWallet的TEXT段内容, 截前10行:
    img3.png

    ② nm,显示程序符号表,g表示global用支付宝现身说法一下:


    img4.png

    ③ ldid,是iPhoneOS.platform提供的签名工具,我们自己编译的程序需要签上名才能跑在iPhone/iPad上,使用方法
    查看应用程序签名:

    img5.png

    或者给应用程序重新签名:
    export CODESIGN_ALLOCATE=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/codesign_allocate
    ldid -S helloworld

    编译Hello world
    1.首先找到编译器:

    1355320147_4514
    arm-apple-darwin10-llvm-gcc-4.2 就是了。为了方便起见,可以在.bashrc或者profile 配置下环境变量,方便编译。
    2.找到SDK
    1355320496_4498
    编译我们自己的程序的时候需要指定该目录下的SDK。
    3.来个经典Hello world :

    Objective-C

    1
    2
    3
    4
    5

    include <stdio.h>

    int main(){
    printf("Hello world !!!\n");
    return 0;
    }

    4.编译

    1355320696_9374
    其中 -isysroot用来指定build时的SDK
    5.校验
    1355320804_3461
    file查看一下类型,没问题。
    6.SCP给iPhone、iPad前提是,设备已经越狱并且安装了SSH,且必须在同一网段。$scp helloworld root@x.x.x.x:hello world
    7.登录设备签名$ssh -l root x.x.x.x#ldid -S helloworld
    8.执行程序#./helloworldHello world !!!
    运行成功,这就完成了最简单的手动执行自己的应用程序。

    注:本文参考了《念茜的博客》

    相关文章

      网友评论

        本文标题:iOS安全攻防(一):Hack必备的命令与工具

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