iOS小技能:逆向工具hopper的使用

628 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第4天,点击查看活动详情

引言

I 、基础操作

1.1 修改汇编代码

Hopper的功能是非常强大的,在Hopper中你可以对ARM指令进行修改,并且生成一个新的可执行文件

使用快捷键option+a直接修改汇编代码: (在菜单Modify - Assemble Instruction 进行汇编代码的修改) 在这里插入图片描述

1.2 逻辑图的查看

Hopper会根据ARM汇编生成相关的逻辑图 红线表明条件不成立时的跳转,蓝线则表明条件成立时的跳转。 在这里插入图片描述

1.3 伪代码的查看

Hopper的功能强大到可以将ARM汇编生成相应的伪代码,如果你看ARM指令不直观的话,那么伪代码对你来说会更好一些

在这里插入图片描述

II、交叉引用的查看

将光标放在一个交叉引用的目标地址上,使用快捷键x查看引用列表

在这里插入图片描述

2.1 CODE XREF

在这里插入图片描述

  CODE XREF=EntryPoint+3433

代码交叉引用类型

o 普通流 ,表示一条指令到另一条指令的顺序流 p 调用流,表示控制权被转交给目标函数,如BL等命令 j 跳转流,表示分支操作,常见于if/switch等操作

2.2 DATA XREF

在这里插入图片描述

00000001013f656a         db         "_placeholderLabel", 0                      ; DATA XREF=cfstring__placeholderLabel

数据交叉引用类型

r 读取交叉引用,表示访问的是某个内存位置的内容 w 写入交叉引用,指出了修改变量内容的程序位置 o 偏移量交叉引用,表示引用的是某个位置的地址(而非内容)

see also

How can you catch a process that is about to be launched, if you don’t know the PID yet?

———————————————— 版权声明:本文为CSDN博主「#公众号:iOS逆向」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:kunnan.blog.csdn.net/article/det…

iOS逆向之【借助LLDB调试第三方App】

kunnan.blog.csdn.net/article/det…