IDA反汇编/反编译静态分析iOS模拟器程序(六)交叉引用

简介: 交叉引用cross reference是指 这个地址的 数据或代码 引用了哪个地址 以及 被哪些地址的代码所引用。引用了哪个地址,在反汇编就能看出来,一行汇编代码自然只会引用一个地址。

交叉引用cross reference是指 这个地址的 数据或代码 引用了哪个地址 以及 被哪些地址的代码所引用。引用了哪个地址,在反汇编就能看出来,一行汇编代码自然只会引用一个地址。但被引用是一对多的关系,正如一个函数可以被很多函数在内部调用。查看“被引用”是静态分析中得到堆栈的方法,当然,因为一对多的关系,还需要猜。这主要是看分析的目的是什么,与运行时动态分析相比各有好处,静态分析能得到完整的调用关系图。
在IDA里,cross reference也会缩写成XREF。

XREF主要是两种,数据引用和代码引用,只要看见有分号注释的 XREF 的地方,把鼠标悬停上去,都能看到部分交叉引用的代码。如果被引用的地方有很多,还可以通过快捷键Ctrl+X或菜单,得到更完整的交叉引用信息。例如在图中的Data XREF右键单击,弹出菜单:

选择Jump to cross reference,弹出对话框:


可以看到它被9个位置的代码引用。选中其中一条点击ok,即会跳转到那个地址。


由于Objective-C是一种弱类型语言,各种函数和成员变量都可以用字符串获取得到,开发者以实际为字符串的selector来调用函数,会令静态分析的引用分析变得复杂。下面做一个演示。

通过class-dump或xdb,可以知道UIView有这样一个私有API。

- (void)_addSubview:(id)arg1 positioned:(int)arg2 relativeTo:(id)arg3 
现在去IDA里搜索,由于category的可能存在,一般搜索一个类的具体某个函数时,关键字是不带类名的,这个函数在IDA中的表示是
__UIView_Internal___addSubview_positioned_relativeTo__
如果搜索
__UIView__addSubview_positioned_relativeTo__
那肯定搜不到,所以用关键字
addSubview_positioned_relativeTo

来搜索,有重复的就search again,直到找到是UIView的函数。它的反汇编代码头部信息为:

__text:00059DAC ; =============== S U B R O U T I N E =======================================
__text:00059DAC
__text:00059DAC ; Attributes: bp-based frame
__text:00059DAC
__text:00059DAC __UIView_Internal___addSubview_positioned_relativeTo__ proc near
__text:00059DAC                                         ; DATA XREF: __objc_const:0075DBE4
目录
相关文章
|
29天前
|
存储 运维 安全
iOS加固原理与常见措施:保护移动应用程序安全的利器
iOS加固原理与常见措施:保护移动应用程序安全的利器
38 0
|
12天前
|
编译器 开发者 C++
8086 汇编笔记(三):第一个程序
8086 汇编笔记(三):第一个程序
|
29天前
|
监控 测试技术 iOS开发
查看ios 应用程序性能
查看ios 应用程序性能
43 0
|
28天前
|
存储 编译器
C51汇编程序
C51汇编程序
25 5
|
29天前
|
iOS开发 开发者
iOS移动应用程序的备案与SHA-1值查看
iOS移动应用程序的备案与SHA-1值查看
62 2
|
29天前
|
iOS开发 开发者 索引
批量上传 iOS 应用程序截图的实用技巧
批量上传 iOS 应用程序截图的实用技巧
|
29天前
|
JSON JavaScript 安全
iOS 应用程序数据保护:如何保护 iOS 应用程序中的图片、资源和敏感数据
iOS 应用程序数据保护:如何保护 iOS 应用程序中的图片、资源和敏感数据
|
29天前
|
iOS开发 开发者
iOS移动应用程序的备案与SHA-1值查看
iOS移动应用程序的备案与SHA-1值查看
50 0
|
iOS开发
XCode 5 “ios模拟器未能安装此应用程序”解决办法
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px"> 首先,提示界面如下:</p> <p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px"> <img src
1395 0