![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
ARM
Ansel_m
阿里天猫
展开
-
剖析ARM64下的objc_msgSend
本文来自Mad_Mark的简书,作者 sasukeo 原文 原文:Dissecting objc_msgSend on ARM64 原文作者:Mike Ash 本文结合原文评论区Greg Parker的评论略做修改。 建议结合objc_msgSend源码来阅读本文。在了解objc_msgSend的原理的同时,也可作为ARM64汇编的入门。 概述 每一个OC对象有一个类,每一个OC...转载 2019-09-30 17:39:11 · 1014 阅读 · 0 评论 -
xcode反汇编调试iOS模拟器程序(四)自动断点应用之NSNotificationCenter
知道怎么查看后,先看看有什么实际应用,拿NSNotificationCenter来做实践吧。 首先在某个容易进入的地方加断点,并停在那,例如main函数。在gdb或lldb输入命令,手工添加断点。如下图: 输入的命令如下: [plain] view plain copy b -[NSNotificationCenter addObserver:s转载 2017-07-06 21:22:46 · 265 阅读 · 0 评论 -
xcode反汇编调试iOS模拟器程序(三)查看Objective-C函数与参数
在Objective-C函数的入口处(第一行)加断点,可用esp指针来探查参数。 以esp为基址,往后的偏移分别是: 0:函数执行完毕后的返回地址(不是返回值的地址哦) 4:对象实例的指针,即self指针 8:selector,实际是一个char数组型的字符串,即char* 12:(如果有)第一个参数 …(前一个参数的基址+前一个参数所占的字节数):(如果有)第n个参数 由此转载 2017-07-06 21:22:04 · 614 阅读 · 0 评论 -
xcode反汇编调试iOS模拟器程序(二)看懂反汇编
这里当然不会从零开始讲汇编代码了,零基础的话可以看看 王爽 写的书《汇编语言》,请自己找度娘或谷哥要了。其实只为了iOS调试的话并不需要学多少,懂几个命令和明白寄存器的作用就行。建议遇到不懂的时候再搜索看看。 这一节主要讲讲书上没有的东西。 在xcode中看到的汇编语法不是熟悉的intel格式,而是叫AT&T汇编。基本上只要懂intel,at&t会很快上手。两者的区别请参考这篇文章:转载 2017-07-06 21:13:45 · 303 阅读 · 0 评论 -
xcode反汇编调试iOS模拟器程序(一)查看反汇编
iOS模拟器程序的实质就是Mac OS X程序,只不过它需要以模拟器为载体来运行显示。故它的反汇编代码指令都是x86 CPU的,不是真机上的arm指令。 研究模拟器程序的反汇编有两个目的,或叫做好处: 一是为了研究深入到ios系统的类库,你可以较容易地发现私有API,以及看到系统的实现。 二是,很直接地,模拟器调试比真机快。而且,相信大多数人更懂x86指令,各类高校教材的汇编教程都不是a转载 2017-07-06 20:52:11 · 511 阅读 · 0 评论 -
iOS 逆向之ARM汇编
目前iOS逆向的书籍有: 《Hacking and Securing IOS Applications》, 《iOS Hacker's Handbook》中文书籍有《iOS应用逆向工程:分析与实战》 中文博客有: 程序员念茜的《iOS安全攻防系列》 英文博客有:Prateek Gianchandani的iOS 安全系列博客 这些资料中都涉及到有ARM汇编,但都只是很泛地用到,并没有转载 2017-02-15 11:21:03 · 392 阅读 · 1 评论 -
iOS程序破解——ARM汇编基础
阅读目录 一、Thumb指令与ARM指令二、ARM的寄存器初步了解三、常用汇编四、函数调用 原文在此:http://www.cnblogs.com/mddblog/p/4951650.html 一、Thumb指令与ARM指令 Thumb指令为16位,因此存储代码的密度高,节省存储空间。但是功能不全,它只是ARM指令(32位)集的补充,是ARM指令集下的转载 2017-02-15 11:19:32 · 515 阅读 · 0 评论 -
iOS汇编教程:理解ARM
前言 本文翻译自iOS Assembly Tutorial: Understanding ARM 翻译的不对的地方还请多多包涵指正,谢谢~ iOS汇编教程:理解ARM 当你写Objective-C代码时,它们最终转换成机器码---ARM处理器能理解的原始的0和1指令。在Objective-C和机器码之间,还有一种可直接理解的汇编语言。 理解汇编会让你在调试和优化时更加深入转载 2017-02-15 11:17:46 · 522 阅读 · 0 评论