IDA反汇编/反编译静态分析iOS模拟器程序(八)IDA for Mac

简介: iOS多用OC(Objective-C)编程,Mac也类似,所以IDA for Mac对OC的支持似乎强些。Windows的IDA在反汇编某些SDK库文件时会识别不出OC的函数名,而且对OC运行时的结构体也没识别出来。

iOS多用OC(Objective-C)编程,Mac也类似,所以IDA for Mac对OC的支持似乎强些。Windows的IDA在反汇编某些SDK库文件时会识别不出OC的函数名,而且对OC运行时的结构体也没识别出来。当然,因为我用的是6.1版的windows IDA, Mac上用的是6.4版,不知道是不是windows IDA 6.1的bug了。

总之在界面操作流程上,感觉Mac IDA是对OC有做优化的。当加载一个app时,


会询问是否解析和重命名OC的函数:


如果选择No,所有OC函数都会识别成sub_开头的名字。它的识别原理估计和上一节提到的相同

一个例子是用IDA打开这个库文件时(关于这个库,可参考《iOS的QuickTime Plugin》)

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator6.1.sdk/System/Library/Internet Plug-Ins/QuickTime Plugin.webplugin/QuickTime Plugin

windows版识别不出函数名:


Mac版可以识别出部分:



因为是反汇编同一个文件,所以得到的代码的偏移地址是一致的,如果windows版没识别好OC函数,可以用Mac版同时打开,知道偏移地址后,在windows版goto address即可。


Mac IDA还识别出一些OC运行时的结构体信息。点开Structures栏,

按照提示,在其中一行同时按下control键和加号键就会展开详细信息:


这也就是前两节列出IVAR结构体和METHOD结构体的方法。

(在Structures栏还可以自定义结构体来标识C++类,具体方法请查阅《IDA Pro权威指南》等资料。)


以上就是未注册版的IDA for Mac的辅助作用,谁有XX版的最好分享下哈~


上一篇:IDA反汇编/反编译静态分析iOS模拟器程序(七)识别类的信息

下一篇:IDA反汇编/反编译静态分析iOS模拟器程序(九)block

转载请注明出处:http://blog.csdn.net/hursing

目录
相关文章
|
4月前
|
存储 运维 安全
iOS加固原理与常见措施:保护移动应用程序安全的利器
iOS加固原理与常见措施:保护移动应用程序安全的利器
70 0
|
23天前
|
测试技术 Linux 虚拟化
iOS自动化测试方案(五):保姆级VMware虚拟机安装MacOS
详细的VMware虚拟机安装macOS Big Sur的保姆级教程,包括下载VMware和macOS镜像、图解安装步骤和遇到问题时的解决方案,旨在帮助读者顺利搭建macOS虚拟机环境。
37 3
iOS自动化测试方案(五):保姆级VMware虚拟机安装MacOS
|
23天前
|
测试技术 开发工具 虚拟化
iOS自动化测试方案(一):MacOS虚拟机保姆级安装Xcode教程
这篇文章提供了一份保姆级的教程,指导如何在MacOS虚拟机上安装Xcode,包括环境准备、基础软件安装以及USB扩展插件的使用,以实现iOS自动化测试方案的第一步。
24 0
iOS自动化测试方案(一):MacOS虚拟机保姆级安装Xcode教程
|
30天前
51单片机用汇编语言实现独立按键检测,每个按键有不同功能,包含按键消抖程序
51单片机用汇编语言实现独立按键检测,每个按键有不同功能,包含按键消抖程序
|
1月前
|
缓存 iOS开发
如何在Xcode删除某个版本的IOS模拟器
如何在Xcode删除某个版本的IOS模拟器
99 1
|
1月前
|
iOS开发
mac不通过Xcode直接打开IOS模拟器
mac不通过Xcode直接打开IOS模拟器
77 2
|
14天前
|
iOS开发 Android开发 MacOS
从零到全能开发者:解锁Uno Platform,一键跨越多平台应用开发的神奇之旅,让你的代码飞遍Windows、iOS、Android、macOS及Web,技术小白也能秒变跨平台大神!
【8月更文挑战第31天】从零开始,踏上使用Uno Platform开发跨平台应用的旅程。只需编写一次代码,即可轻松部署到Windows、iOS、macOS、Android及Web(通过WASM)等多个平台。Uno Platform为.NET生态带来前所未有的灵活性和效率,简化跨平台开发。首先确保安装了Visual Studio或VS Code及.NET SDK,然后选择合适的项目模板创建新项目。项目结构类似传统.NET MAUI或WPF项目,包含核心NuGet包。通过简单的按钮示例,你可以快速上手并构建应用。Uno Platform让你的技术探索之旅充满无限可能。
22 0
|
1月前
|
TensorFlow 算法框架/工具 Python
【Mac 系统】解决VSCode用Conda成功安装TensorFlow但程序报错显示红色波浪线Unable to import ‘tensorflow‘ pylint(import-error)
本文解决在Mac系统上使用VSCode时遇到的TensorFlow无法导入问题,原因是Python解析器未正确设置为Conda环境下的版本。通过在VSCode左下角选择正确的Python解析器,即可解决import TensorFlow时报错和显示红色波浪线的问题。
46 9
|
1月前
|
网络安全 数据安全/隐私保护 iOS开发
【Mac os】如何在服务器上启动Jupyter notebook并在本地浏览器Web端环境编辑程序
本文介绍了如何在服务器上启动Jupyter Notebook并通过SSH隧道在本地浏览器中访问和编辑程序的详细步骤,包括服务器端Jupyter的启动命令、本地终端的SSH隧道建立方法以及在浏览器中访问Jupyter Notebook的流程。
45 0
8086 汇编笔记(五):包含多个段的程序
8086 汇编笔记(五):包含多个段的程序