iOS逆向工程一:入门知识

1、iOS 软件逆向工程常用的工具

class-dump软件获取app的.h文件目录 逆向常用的监测工具:Reveal、tcpdump、libNotifyWatch、PonyDebugger Reveal:一款类似Xcode查看器的UI页面查看工具 开发越狱代码的工具:Theos(从低维的APP看向高维的APP) 反编译器工具:IDA、IDA pro(可以查看到伪代码) 调试器:Xcode有源码的情况下打断点一步步调试(集成了GDB或LLDB)

无源码的情况下在iOS设备上运行基于命令行的GDB

2、iOS程序类型

越狱最常见的程序有Application(简称APP)、Dynamic Library、Daemon三大类 在App Store 中只能发布App这一类型的程序,在越狱平台(Cydia)上还有另外两种类型的存在:WeeApp(依附于Notification Center的APP)、PreferenceBundle(依附于Settings的APP) 在逆向工程中,FrameWork的地位比APP的地位高很多,因为APP的大部分功能都是通过调用FrameWork提供的接口来实现的。 逆向工程主要关注APP的三大部分 1)Info.plist (利用MobileSubstrate对APP进行hook) 获取正确的Bundle Identifier是成功逆向的第一前提 2)Executable (可执行程序) 3)Resource(资源文件) 目录权限问题 /Application :存放的是从Cydia下载的程序和苹果自带的那些程序,有root权限和admin权限,安装包格式deb /var/mobile/Application:存放从App store下载的程序,只有个mobile权限,安装包格式spa

静态库与动态库的区别:

Static Library:在一个APP启动时,系统会把代码和它所链接的Static Library一股脑的放进分配好的内存空间里,不过会因为一次性加载的内容过多,会造成APP启动慢。 Dynamic Library:相对“智能”,只有当APP要用到Library时,系统才把这个Library加载进内存。值得一提的是,虽然Dynamic Library的功能非常的强大,但其本身不是可执行的程序,而是以类似插件的形式存活在一个APP中的,是APP的一部分。所以,Dynamic Library的权限及内存空间是由加载它的那个APP决定的,比如你写了一个Instagram的tweak插件,用来将你喜欢的图片保存在本地,如果你保存的目录是/var/mobile/Applications/InstagramGUID/Documents,那么这样操作没有问题,你的tweak 插件能够非常好的工作;如果你想保存在/Developer下,而你又没注意或忘记了这个tweak插件是存活在一个App Store APP里,那么可能在兴高采烈地保存了一大推美图,准备回头细细品味时,却发现/Developer里啥也没有—你的写操作都被sandbox给禁掉了。

3、Daemon(后台程序)

BackGrounder是一款帮助APP实现真正后台运行的强大插件。 imagent保障iMessage的正确收发; mediaserverd处理几乎所有的音频、视频; syslogd记录系统日志。

iOS系统中的daemon主要由一个可执行文件和一个plist文件构成。iOS的根进程是/sbin/launchd,会在开机或接到命令时检查/System/Library/LaunchDaemons和/Library/Daemons下所有符合格式规定的plist文件,然后按需启动对应的daemon。这里的plist文件与APP中Info.plist文件作用类似,记录了daemon的基本信息。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sailip

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值