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
目录
相关文章
|
1月前
|
存储 运维 安全
iOS加固原理与常见措施:保护移动应用程序安全的利器
iOS加固原理与常见措施:保护移动应用程序安全的利器
31 0
|
25天前
|
iOS开发 开发者 索引
批量上传 iOS 应用程序截图的实用技巧
批量上传 iOS 应用程序截图的实用技巧
|
1月前
|
JSON JavaScript 安全
iOS 应用程序数据保护:如何保护 iOS 应用程序中的图片、资源和敏感数据
iOS 应用程序数据保护:如何保护 iOS 应用程序中的图片、资源和敏感数据
|
1月前
|
监控 测试技术 iOS开发
查看ios 应用程序性能
查看ios 应用程序性能
28 0
|
1月前
|
安全 Java 数据安全/隐私保护
Android和iOS应用程序加固方法详解:混淆、加壳、数据加密、动态加载和数字签名实现
Android和iOS应用程序加固方法详解:混淆、加壳、数据加密、动态加载和数字签名实现
33 0
|
2月前
|
iOS开发 开发者
📝iOS移动应用程序的备案与SHA-1值查看
在开发和发布移动应用程序时,进行App备案是非常重要的一步,它是确保您的应用在合规性方面符合相关法规的过程。同时,对于一些需要与第三方服务进行集成的情况,查看应用的SHA-1值也是必要的。本篇博客将向您展示如何进行iOS移动应用程序的备案,并查看SHA-1值。
|
3月前
|
运维 安全 数据安全/隐私保护
iOS加固原理与常见措施:保护移动应用程序安全的利器
随着移动应用的普及和用户对数据安全的关注度提高,iOS加固成为了很多开发者和企业的必备工具。那么,iOS加固是如何保护应用程序的安全性的呢? iOS加固是指对OS应用程序进行一系列的安全措施,以提高其抗逆向工程、反编译和破解的能力。下面将介绍iOS加固的原理和常见的加固措施。
iOS加固原理与常见措施:保护移动应用程序安全的利器
|
30天前
|
存储 iOS开发
iOS 开发,如何进行应用的本地化(Localization)?
iOS 开发,如何进行应用的本地化(Localization)?
77 2
|
1月前
|
存储 数据建模 数据库
IOS开发数据存储:什么是 UserDefaults?有哪些替代方案?
IOS开发数据存储:什么是 UserDefaults?有哪些替代方案?
18 0
|
1月前
|
API 定位技术 iOS开发
IOS开发基础知识:什么是 Cocoa Touch?它在 iOS 开发中的作用是什么?
IOS开发基础知识:什么是 Cocoa Touch?它在 iOS 开发中的作用是什么?
27 2

相关产品

  • 云迁移中心