
逆向工程汇编
TYW----子曰小玖
人生最重要的不是所在的位置,而是所朝的方向。
展开
-
逆向之汇编学习总结
数据宽度或许你曾经有这样的疑惑,有符号数在二进制的表示中,以1开头的表示为负数,那么10000000是表示的-1还是128呢 ?在这里引入数据宽度的概念,即8位二进制数能够存储的数据范围为-128~127,很显然,上面存储的数,在数据宽度为8位时,表示-1,同理-127表示为10000001,-2表示为11111110,这里关于原码、补码的概念不加以赘述,其本质都是为了表示数值。基于x...转载 2019-10-24 10:29:21 · 1558 阅读 · 0 评论 -
详解栈帧结构
https://www.1024do.com/?p=367栈帧结构含义:C语言中,每个栈帧对应着一个未运行完的函数。栈帧中保存了该函数的返回地址和局部变量。栈帧也叫过程活动记录,是编译器用来实现过程函数调用的一种数据结构。从逻辑上讲,栈帧就是一个函数执行的环境:函数参数、函数的局部变量、函数执行完后返回到哪里等等。实现上有硬件方式和软件方式(有些体系不支持硬件栈)首先应该明白,...转载 2019-07-26 10:42:16 · 8666 阅读 · 0 评论 -
arm汇编—ldr加载指令,ldr伪指令
https://blog.csdn.net/stephenbruce/article/details/511352231,ldr加载指令LDR指令的格式为:LDR{条件} 目的寄存器,<存储器地址>LDR指令用亍从存储器中将一个32位的字数据传送到目的寄存器中。该指令通常用亍从存储器中读取32位的字数据到通用寄存器,然后对数据迕行处理。当程序计数器PC作为目的寄存器时,...转载 2018-08-07 10:56:43 · 22666 阅读 · 0 评论 -
r0-r15寄存器的作用
https://blog.csdn.net/u014379540/article/details/51996209r0-r3 用作传入函数参数,传出函数返回值。在子程序调用之间,可以将 r0-r3 用于任何用途。 被调用函数在返回之前不必恢复 r0-r3。如果调用函数需要再次使用 r0-r3 的内容,则它必须保留这些内容。r4-r11 被用来存放函数的局部变...转载 2018-08-07 10:54:56 · 8618 阅读 · 0 评论 -
__cdecl,__stdcall,__fastcall,__pascal,__thiscall 的区别
转自:http://www.cppblog.com/oosky/archive/2007/01/08/17422.htmltag:汇编,pascal,fastcall,stdcall,thiscall,cdecl,调用约定,函数调用约定,返回值传递方式摘要:文章讲述了几种主要程序语言中的函数调用约定;详细说明时主要以VC6中的函数调用约定为主,阐释方式主要是以C++转载 2017-11-24 17:09:04 · 487 阅读 · 0 评论 -
汇编语言浮点指令
浮点数如何存储浮点寄存器浮点数指令浮点计算例子浮点高级运算CMOV移动指令浮点数如何存储浮点数的运算完全不同于整数,从寄存器到指令,都有一套独特的处理流程,浮点单元也称作x87 FPU。现在看浮点数的表示方式,我们所知道的,计算机使用二进制存储数据,所表示的数字都具有确定性,那是如何表示浮点这种具有近似效果的数据呢,答案是通过科学计数,科学计数由符号,尾数和指数表示,这三部转载 2017-12-04 15:07:54 · 2506 阅读 · 0 评论 -
ARM汇编指令集
http://blog.csdn.net/fyyy4030/article/details/6268626 ARM汇编指令集一、跳转指令。跳转指令用于实现程序流程的跳转,在ARM程序中有以下两种方法可以实现程序流转载 2017-12-04 11:09:31 · 228 阅读 · 0 评论 -
ARM的六大类指令集---LDR、LDRB、LDRH、LDM、STR、STRB、STRH、STM
http://blog.csdn.net/u013477200/article/details/50723555ARM的六大类指令集---LDR、LDRB、LDRH、STR、STRB、STRHARM微处理器支持加载/存储指令用于在寄存器和存储器之间传送数据,加载指令用于将存储器中的数据传送到寄存器,存储指令则完成相反的操作。常用的加载存储指令如下:— LDR转载 2017-12-04 10:48:08 · 8603 阅读 · 0 评论 -
MOV指令、LDR指令、LDR伪指令之间的区别
http://blog.csdn.net/qingkongyeyue/article/details/522390501、MOV指令MOV指令可以把立即数或者寄存器内容(注意:这里绝对不可以是内存!!)传递给一个寄存器。 立即数相当于高级语言中的常量(常数), 立即数就是数字嘛,表示数值的数字, 存储器用的是地址,一般立即数前需要加#,转载 2017-12-04 10:30:17 · 1163 阅读 · 0 评论 -
arm汇编指令之数据块传输(LDM,STM)详见
http://blog.chinaunix.net/uid-28458801-id-3791987.html数据块传输指令用于加载(LDM)或者存储(STM)当前有效寄存器的任意子集。它们支持所有可能的堆栈模式,维持空或者满的堆栈,此堆栈可以向上或者向下,在保存或者恢复内容,移动主存储器的大数据块是非常有效的。1,指令格式:{cond} Rn转载 2017-11-22 17:00:31 · 7192 阅读 · 3 评论 -
堆栈平衡
转自:http://www.cnblogs.com/this-543273659/archive/2012/03/01/2375652.html先说明。原发者iso9001 http://www.ghoffice.com/bbs/read.php?tid-35165.html他提供的地址(当他是个指针好了:P)http://ajiannet.cnblogs.com/下边是我转载 2017-11-21 16:17:38 · 1995 阅读 · 2 评论 -
esp和ebp详解
我的理解:国外一个比较好的汇编网站http://www.tenouk.com/Bufferoverflowc/Bufferoverflow1b.html//////////////////////////////////////////////////////////////////////////////////////////////////////////////转载 2017-11-21 16:09:29 · 2316 阅读 · 0 评论 -
段寄存器和8种地址寻址方式
https://www.cnblogs.com/findumars/p/3708260.html段寄存器是因为对内存的分段管理而设置的。16位CPU有四个段寄存器,其程序可同时访问四个不同含义的段,引用方面有如下规定:1. 取命令:段寄存器CS指向存放程序的内存段,IP是用来存放下条待执行的指令在该段的偏移量,把它们合在一起可在该内存段内取到下次要执行的指令。转载 2017-11-28 17:13:26 · 4018 阅读 · 1 评论