LLDB调试
LLDB(Low Lever Debug):LLDB官方文档 如何进行LLDB调试: 点击蓝色断点右边的 | | ,进入到LLDB状态 直接打断点 常用LLDB命令 设置断点 breakpoint set -n test1 //给test1这个方法设置断点, 这里的-n是--name的缩写(此命令适用于给C函数添加断点) breakpoint set -n "-[ViewController run]" -n "-[ViewController jog:]” /给ViewController里的run 和jog:方法设置断...【详细】
2019年03月21日 赞:1 评论:0 阅读:294
逆向4-汇编1
常用汇编指令集 读写指令: str(store register)指令:将数据从寄存器中读出来,存到内存中 ldr(load register)指令:将数据从内存中读出来,存到寄存器中 stp :str的变种指令,可以同时操作两个寄存器 ldp : ldr的变种指令,可以同时操作两个寄存器 stur : 无符号变种指令,可当做str来看 stur 是str的变种指令(用于负数),当成str来用就行。 stur:st...【详细】
2019年03月21日 赞:0 评论:0 阅读:281
OC 对象本质
OC对象本质 如下代码: TLperson *p = [TLperson alloc]; p.age = 20; TLperson *p1 = [p init]; TLperson *p2 = [p init]; NSLog(@"\n%@\n%@\n%@",p,p1,p2); 控制台打印: 结论:init其实什么也没有,对象的初始化是alloc做的,init其实是为了给我们进行重载的。 objc源码地址: https://opensource.apple.com/tarballs/objc4/ 使用LLBD查看汇编代码,可以在汇编跳转[TLperson alloc]函数处下一个符...【详细】
alloc init本质
2019年03月20日 赞:1 评论:0 阅读:318
逆向2-CPU&进制
app执行过程 app包安装在本地磁盘,启动app会将磁盘里的东西装载到内存里(一堆0和1),cpu执行内存中的指令,进行读写操作,最终由CPU调度显示在屏幕上。 cpu如何知道读取的是指令还是数据? 内存有分段管理,有data段、text段等等,可以用MacOView看到 总线 概念 每一个CPU芯片都有许多管脚,这些管脚和总线相连,CPU通过总线跟外部器件...【详细】
进制 CPU
2019年03月20日 赞:1 评论:0 阅读:294
逆向3-CPU&寄存器
寄存器 CPU中最主要部件是寄存器,可以通过改变寄存器的内容来实现对CPU的控制 不同的CPU,寄存器的个数、结构是不相同的 寄存器的作用:数据临时存储 通用寄存器 64位: X0-X30, XZR(零寄存器) 32位: W0-W30, WZR(零寄存器) ARM64拥有有31个64位的通用寄存器X0 - X30 这些寄存器通常用来存放一般性的数据(有时也有特定用途) 通常,CPU会先将内存...【详细】
进制 CPU
2019年03月20日 赞:1 评论:0 阅读:356
逆向1-开篇
我们知道,app安装在手机上面的可执行文件本质上就是一个二进制文件。因为iPhone手机本质上执行的指令是二进制,是由手机上的CPU执行的。所以逆向开发是建立在分析二进制上面。 计算机语言的发展 机器语言:由0和1组成的机器指令 加:0100 0000 减:0100 1000 乘:1111 0111 1110 0000 除:1111 0111 1111 0000 汇编语言(assembly language):使用助记符代...【详细】
ios
2019年03月20日 赞:1 评论:0 阅读:307
共6个 共1页
sina weixin mail 回到顶部