iOS逆向方法学习和工具尝试

admin 2021年7月27日02:53:20评论71 views字数 928阅读3分5秒阅读模式

之前接触过iOS逆向开发,后来工作中没这方面需求,也就没再看了。最近一段时间由于各种原因又需要逆向某些App来用于学习,所以又重新拾起来。

这里总结一下几种iOS逆向的方法和工具:

  • iOS逆向-静态分析

    涉及到的工具有

    • OpenSSH (用于远程登录ssh和文件传输scp)

    • class-dump(用于简单分析出工程中的类名和函数名)

    • Hopper Disassembler(反编译工具)

    • Reveal (对越狱后的设备查看任意app的布局)

  • iOS逆向-动态分析

    涉及到的工具有

    • cycript (cycript是一个脚本语言,可以看做Objective-JavaScript,形容 的非常贴切。配合静态调试,可以调用运行中的app内的任意方法)

  • iOS逆向-内部钩子

    主要是编写iOS动态库,加载到越狱手机中,使用iOS的 Method Swizzling(方法调配)来获 得(截断/改变)底层调用的方法。这样我们可以自由的修改或者读取一些想要的东西。

  • iOS逆向相关:theos和iOSOpenDev搭建越狱开发环境,创建iOS动态链接库(Dylib文件)编写(hook)及测试;

  • iOS逆向思路进展:使用InspectiveC来查看调用堆栈:

    跟踪一个程序,看看这个程序的执行流程是什么样的,以及某个函数的调用参数是什么。  常规的方法是在汇编中寻找objc_msgSend,一层一层跟下去。这是比较笨的办法,而且不能动态查看函数的数。  通过InspectiveC,我们可以动态的查看: * 某个类的所有方法调用情况 * 某个类的某个方法的调用情况 * 某个类的实例对象的所有方法的调用情况 * 某个类的实例对象的某个方法的调用情况 * 某个方法签名的调用情况
    跟踪一个程序,看看这个程序的执行流程是什么样的,以及某个函数的调用参数是什么。   常规的方法是在汇编中寻找objc_msgSend,一层一层跟下去。这是比较笨的办法,而且不能动态查看函数的数。   通过InspectiveC,我们可以动态的查看: * 某个类的所有方法调用情况 * 某个类的某个方法的调用情况 * 某个类的实例对象的所有方法的调用情况 * 某个类的实例对象的某个方法的调用情况 * 某个方法签名的调用情况


本文始发于微信公众号(飓风网络安全):iOS逆向方法学习和工具尝试

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2021年7月27日02:53:20
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   iOS逆向方法学习和工具尝试http://cn-sec.com/archives/359302.html

发表评论

匿名网友 填写信息