代码还原的技术: Unidbg调试浮点数运算(一)
一、目标在做代码还原的时候,经常能看到一些奇怪的寄存器和奇怪的指令:vldrs15,可以看出两个区别,一个是寄存器不一样,普通运算使用的寄存器是R0Rx,浮点数运算使用的是D0Dx(其实还有S0Sx),另一个是指令不一样,普通运算是MOV、MUL,而浮点数运算使用的是VMOV,VMUL,感觉就是普通运算的VIP版。第一个知识点就出来了,V开头的指令
Wesley13 Wesley13
2年前
STM32 影子寄存器
上一篇文章《STM32基础定时器详解(https://www.oschina.net/action/GoToLink?urlhttp%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzIxNTg1NzQwMQ%3D%3D%26mid%3D2247484864%26idx%3D1%26sn%3D9409d3d677de4e
Stella981 Stella981
2年前
Smali语法学习三
寄存器与变量Java中的变量都是放在内存中的,安卓为了提高性能,变量都是放在寄存器中的。寄存器为32位,可以支持任何类型。其中long和double这种64为的类型需要两个寄存器保存。寄存器采用v和p来命名,v表示本地寄存器,p表示参数寄存器,关系如下:v0:第一个本地寄存器v1:第二个本地寄存器v2p0(this)v3p
Wesley13 Wesley13
2年前
PIC中档单片机汇编指令详解(5)
位操作指令详述BCF数据寄存器指定位清0语法形式:BCFf,b操作数:f为数据寄存器的低7位地址(0x00~0x7F)B为数据位编号(0~7)执行时间:一个指令周期执行过程:使数据寄存器f的的b位清0状态标志影响:无说明:该指令可对任何数据寄存器的任意一个位置清0,常用于标志位的设定和清除,或者把某一管脚置成低电平。指
Stella981 Stella981
2年前
Modbus功能码及错误码说明
有效功能码说明(十进制)功能码说明01读取线圈状态02读取输入状态03读取保持寄存器04读取输入寄存器05强置单线圈06预置单寄存器07读取异常状态08回送诊断校验09编程(只用于484)10控询11读取事件计数12读取通信事件记录13编程
Stella981 Stella981
2年前
JVM基本结构
JVM架构图!(http://static.oschina.net/uploads/space/2016/0814/104922_8DB5_2253738.png)PC寄存器每个线程拥有一个PC寄存器在线程创建时创建指向下一条指令的地址执行本地方法时,PC的值为undefined
Wesley13 Wesley13
2年前
8086汇编中的标识寄存器详解
每天都在学习。写点笔记。remark。8086汇编中的标识寄存器叫flag。16位每一位都标识不一样的含义,1514131211(OF)10(DF)9(IF)8(TF)7(SF)6(ZF)54(AF)32(PF)10(CF
Stella981 Stella981
2年前
RTC时钟和BKP的配置stm32
摘自:https://blog.csdn.net/gtkknd/article/details/52233605RTC和后备寄存器通过一个开关供电,在VDD有效的时候选择VDD供电,否则选择VBAT引脚供电.后备寄存器(10个16位的寄存器),可以用于在关闭VDD时,保存20个字节的用户应用数据(中容量和小容量产品,大容量和互联性产品有84字节).
Stella981 Stella981
2年前
JVM 的基本结构
一 基本结构   !(https://static.oschina.net/uploads/space/2018/0127/110055_rYaE_3218528.png)二 程序计数器(PC)  PC寄存器是每个线程的私有空间,JAVA虚拟机会为每一个JAVA线程创建PC寄存器。任意时刻,一个JAVA
Wesley13 Wesley13
2年前
Java内存管理
一、Java内存分类1、Java有几种存储区域?\寄存器\在CPU内部,开发人员不能通过代码来控制寄存器的分配,由编译器来管理\栈\在Windows下,栈是向低地址扩展的数据结构,是一块连续的内存的区域,即栈顶的地址和栈的最大容量是系统预先规定好的。\优点:由系统自动分配,速度较快。