今天下午看一个反汇编的代码,并试图跟源代码对上号。 下面的语句组合让我非常费解,花了好久才弄清楚。贴出来,供大家参考。 neg r sbb &...
转载
2009-11-06 15:56:00
168阅读
2评论
; Find next lower page...
转载
2019-06-07 09:24:00
207阅读
2评论
|63..32|31..16|15-8|7-...
转载
2019-08-27 21:27:00
369阅读
2评论
|63..32|31..16|15-8|7-0| |AH.|AL.| |AX.....| |EAX............||RAX...................|
转载
2013-05-01 01:36:00
85阅读
2评论
I just tried compiling a couple of C++ snippets on VS2010 and analyzed the executables on IDA Pro. Something I noticed is that there most of them have something like the following at the start(shortly
转自:h介绍我们会经常看到的一些寄存器:4个数据寄存器(EAX、EBX、ECX和EDX)2个变址和指针寄存器(ESI和EDI)2个指针寄存器(ESP和EBP)4个数据寄存器(EAX、EBX、ECX和EDX):32位CPU有4个32位的通用寄存器EAX、EBX、...
转载
2022-09-10 00:48:35
1184阅读
I just tried compiling a couple of C++ snippets on VS2010 and analyzed the executables on IDA Pro. Something I noticed is that there most of them have something like the following at the start(shortly after a call to __security_check_cookie)xor eax, ebpand something likexor ecx, ebpat the bottom. Wh
转载
2012-06-07 20:04:00
66阅读
2评论
1.内存单元和地址 计算中(程序中)直接使用的数据保存在计算机的内存储器(简称内存)。内存是CPU可以直接访问的数据存储设备。与之对应的是外存储器,简称外存,如磁盘、光盘、磁带等。保存在外存里的数据必须先装入内存,而后CPU才能使用它们。 内存的基本结构是线性排列的一批存储单元。每个单元的大小相同,可以保存一个单位大小的数据。具体单元大小可能因计算机的不同而有所不同。在目前最常见的计算机中,一
一、 优点 使用内联汇编可以在 C/C++ 代码中嵌入汇编语言指令,而且不需要额外的汇编和连接步骤。在 Visual C++ 中,内联汇编是内置的编译器,因此不需要配置诸如 MASM 一类的独立汇编工具。这里,我们就以 Visual Studio .NET 2003 为背景,介绍在 Visual C++ 中使用内联汇的相关知识(如果是早期的版本,可能会有些许出入
dword 双字 就是四个字节ptr pointer缩写 即指针[]里的数据是一个地址值,这个地址指向一个双字型数据比如mov eax, dword ptr [12345678] 把内存地址12345678中的双字型(32位)数据赋给eax将地址为“ecx寄存器中数值”,长度为4的数据,复制到eax
转载
2017-10-26 23:28:00
180阅读
2评论
eax, ebx, ecx, edx, esi, edi, ebp, esp等都是X86 汇编语言中CPU上的通用寄存器的名称,是32位
原创
2022-11-25 17:06:06
1865阅读
原文地址: http://www.cnblogs.com/qq78292959/archive/2012/07/20/2600865.html 一般寄存器:AX、BX、CX、DXAX:累积暂存器,BX:基底暂存器,CX:计数暂存器,DX:资料暂存器索引暂存器:SI、DISI:来源索引暂存器,DI:目
转载
2017-03-30 11:39:00
130阅读
2评论
今天在写socket编程的时候,碰到一个很怪异的问题,调试程序的位置为:test dword ptr [eax],eax ; probe page.这是什么问题呢?经过查证才知道:这跟局部数组变量定义所分配的最大...
转载
2014-02-27 22:46:00
32阅读
2评论
今天在写socket编程的时候,碰到一个很怪异的问题,调试程序的位置为:test dword ptr [eax],eax ; probe page.这是什么问题呢?经过查证才知道:这跟局部数组变量定义所分配的最大空间设置大小有关。局部变量的申请空间是存放于栈中,windows里默认栈内存是1M,所以当申请空间大于1M时就会出现溢出错误。[cpp] vie
转载
2021-07-31 10:56:27
168阅读
x86家族的CPU都有8个通用寄存器,每一个寄存器的名字都是一组单词的缩写。就连这四个分别叫做%eax,%ebx,%ecx,%edx的寄存器,尽管看似是随意按照abcd的字母排序的,其实这a,b,c,d也分别是四个单词的缩写。 %——百分号表示这是一个寄存器。 末尾的x或许是register的缩写?(这句是我猜的) e表示extend 意思是扩展到了32位。因为以前的intel寄存器都是16位的,
转载
2020-03-23 11:58:00
659阅读
2评论
初学 Delphi 嵌入汇编[28] - 把 EAX 的值置为 0 的三种方法与效率
//以下三个函数功能一样, 但效率不同
{Fun1 需要读取常数 0, 最慢}
function Fun1: Integer;
asm
mov eax, 0
end;
{Fun2 与 Fun3 只是操作 CPU
原创
2021-04-30 11:11:20
160阅读
Delphi动态事件深入分析 2009-2-7 作者:不得闲核心提示:本实验证明了在类中方法的调用时候,所有的方法都隐含了一个Self参数,并且该参数作为对象方法的第一个参数传递... 首先做一个空窗体,放入一Button。在implementation下面声明两个方法如下: 运行之后点一下‘调用F Read More
转载
2014-11-21 19:28:00
24阅读
2评论
一、添加硬件断点、二、关键代码、三、MOV 汇编指令格式、四、EAX 寄存器值分析、五、使用命令查看 esi+0cc 地址、
原创
2022-03-07 17:11:02
296阅读
_asm{ push ebp;暂存基址 mov eax,fs:[30];获取PEB地址 mov eax,[eax+0ch];获取LDR地址 mov eax,[eax
原创
2023-04-03 17:18:50
112阅读
#include<stdio.h> #include<Windows.h> __declspec(naked) DWORD getKernel32() { __asm { mov eax,fs:[30h] mov eax,[eax+0ch] mov eax,[eax+14h] mov eax,[ea ...
转载
2021-08-27 00:08:00
300阅读
2评论