iOS逆向 Hopper

2020-03-04  本文已影响0人  不简单的风度

前言

iOS逆向中使用Hopper可以帮助我们分析目标APP的方法地址来实现动态调试,本文只是简单介绍一个Hopper的基本用法

下载Hopper

Hopper目前在最新的Mac系统上没有破解版,每次可以试用半小时,不过对于一般的分析也是够用了,这里贴一下Hopper的官网Hopper

分析目标APP

这里主要是用自己新建的Demo用来分析,我Demo里就写了两个方法


image.png

工程编译之后把.app文件拖到Hopper的窗口


image.png

然后点击OK就行了


image.png

然后就可以进行分析了,我首先是在viewdidload里加了断点


image.png

可以先用image list 打印文件的基地址,由于iOS的ASLR特性,需要用基地址来计算其他地址,上图第一条就是可执行文件加载的基地址


image.png

上图右边Hopper选中的部分是say方法的地址,不过这里自己新建的工程拉到Hopper里面Hopper也有一个基地址0x100000000
可以在控制台用p/x指令计算一下say方法的实际地址,计算方法是(可执行文件的基地址+Hopper中方法的偏移-Hoper加载的基地址),计算出结果后用b指令下断点,可以看到已经对say方法下了断点了,这时候让程序继续执行就会断到say方法了

截屏2020-03-04下午5.02.28.png Hopper展示的都是汇编,我们也可以让xcode展示汇编, 截屏2020-03-04下午5.11.27.png

选中Always Show Disassembly之后就可以看到汇编代码了


截屏2020-03-04下午5.01.41.png
Xcode的汇编代码和Hopper的汇编代码相差的就是基地址了

Hopper和MachOView

MachO文件是iOS的可执行文件,里面的地址也可以跟Hopper反汇编出来的对应


截屏2020-03-04下午5.10.07.png 截屏2020-03-04下午5.15.02.png

Hopper还有很多用法,我这里只是做个基本的介绍。我是逆向初学者,如果文中有什么不对的地方,欢迎各位提出宝贵意见。

上一篇 下一篇

猜你喜欢

热点阅读