代码还原的技术: Unidbg调试浮点数运算(一)
一、目标在做代码还原的时候,经常能看到一些奇怪的寄存器和奇怪的指令:vldrs15,可以看出两个区别,一个是寄存器不一样,普通运算使用的寄存器是R0Rx,浮点数运算使用的是D0Dx(其实还有S0Sx),另一个是指令不一样,普通运算是MOV、MUL,而浮点数运算使用的是VMOV,VMUL,感觉就是普通运算的VIP版。第一个知识点就出来了,V开头的指令
Wesley13 Wesley13
2年前
STM32 HAL库 IIC 协议库函数
/\第1个参数为I2C操作句柄第2个参数为从机设备地址第3个参数为从机寄存器地址第4个参数为从机寄存器地址长度第5个参数为发送的数据的起始地址第6个参数为传输数据的大小第7个参数为操作超时时间\/HAL\_I2C\_Mem\_Write(&hi2c2,salve\_add,0,0,PA\_BUFF,sizeo
Stella981 Stella981
2年前
Linux性能分析之上下文切换
而在每个任务运行前,CPU都需要知道任务从哪里加载、又从哪里开始运行,也就是说,需要系统事先帮它设置好CPU寄存器和程序计数器CPU寄存器,是CPU内置的容量小、但速度极快的内存。而程序计数器,则是用来存储CPU正在执行的指令位置、或者即将执行的下一条指令位置。它们都是CPU在运行任何任务前,必须的依赖环境,因此也被叫做C
Stella981 Stella981
2年前
HttpURLConnection(http 1.1) 用法、状态码、状态描述
最近研究了java的HttpURLConnection的用法,这里简单的做一下记录:Java中可以使用HttpURLConnection来请求WEB资源。1、 URL请求的类别分为二类,GET与POST请求。二者的区别在于:     a:)get请求可以获取静态页面,也可以把参数放在URL字串后面,传递给servlet,
Wesley13 Wesley13
2年前
1 汇编实现简单的算数运算
1汇编实现简单的四则运算1.1加法inta\30;intb\20;intc;//cab;asm("mov%1,%0\\n\\t"//mov操作数写入寄存器"add%2,%0"//a
Stella981 Stella981
2年前
JVM运行机制(非原创)
文章大纲1.JVM基本概念2.JVM的体系结构3.JVM启动流程一、JVM基本概念1.Java虚拟机(JVM)是可运行Java代码的假想计算机2.Java虚拟机包括类加载器、一组寄存器、方法区、一个垃圾回收堆、直接内存、一个栈、和一个存储方法域、PC寄存器等3.Java编译、运行流程如
Wesley13 Wesley13
2年前
Java内存管理
一、Java内存分类1、Java有几种存储区域?\寄存器\在CPU内部,开发人员不能通过代码来控制寄存器的分配,由编译器来管理\栈\在Windows下,栈是向低地址扩展的数据结构,是一块连续的内存的区域,即栈顶的地址和栈的最大容量是系统预先规定好的。\优点:由系统自动分配,速度较快。
Wesley13 Wesley13
2年前
Java中多线程并发体系知识点汇总
一、多线程1、操作系统有两个容易混淆的概念,进程和线程。进程:一个计算机程序的运行实例,包含了需要执行的指令;有自己的独立地址空间,包含程序内容和数据;不同进程的地址空间是互相隔离的;进程拥有各种资源和状态信息,包括打开的文件、子进程和信号处理。线程:表示程序的执行流程,是CPU调度执行的基本单位;线程有自己的程序计数器、寄存器、堆栈和帧。同一进
Wesley13 Wesley13
2年前
C语言内存优化——继续含泪总结
之前分析了基本数据类型的优化,现在开始涉及全局和局部变量的优化,话说这个东西我从没想过还能这样优化的喂!全局变量/Globalvariables全局变量不会被分配在寄存器上,修改全局变量需要通过指针或者调用函数的方式间接进行。所以编译器不会将全局变量存储在寄存器中,那样会带来额外的、不必要的负担和存储空间。所以在比较关键的循环中,我们要
京东云开发者 京东云开发者
5个月前
玩转Spring状态机 | 京东云技术团队
说起Spring状态机,大家很容易联想到这个状态机和设计模式中状态模式的区别是啥呢?没错,Spring状态机就是状态模式的一种实现,在介绍Spring状态机之前,让我们来看看设计模式中的状态模式。1\.状态模式状态模式的定义如下:状态模式(StatePat