Alone Cáfe
There is no limit to learning.
阿龙咖啡

学无止境,须时刻空杯

阿龙咖啡
学无止境,须时刻空杯
搜索什么...

x86 保护模式浅析(二)

走进保护模式 A20 地址线 在本文中,要完全解释 A20 地址线的作用以及原理是不太现实的。对于我们程序员而言,我们只需要了解一些大致的概念。简单来说,因为考虑到向下兼容性,A20 地址线在默认情况下是禁用的。于是,我们得启用它,这样我们就可以访问全部内存…

   2019-05-28   150   0 查看全文

x86 保护模式浅析(一)

实模式下的内存访问 实模式下,CPU通过段寄存器(16位)和偏移地址(16位)来访问物理地址,这个过程可以抽象地简述成以下步骤:1、将段寄存器中存放的地址,左移4位(乘以2的4次方,即乘以16)得到基址(为了方便理解暂且这么叫吧)2、将上一步得到的基址加上偏移…

   2019-05-28   187   0 查看全文

Windows 内核字符串

UNICODE_STRING 结构 Unicode 字符串的结构定义如下 typedef struct _UNICODE_STRING { USHORT Length; // 字符串长度(Byte) USHORT MaxiumLength; // 字符缓冲区长度(Byte) PWSTR Buffer; // 字符串缓冲区 } UNICODE_…

   2019-05-24   308   5 查看全文

C语言右移操作在汇编层面的相关解释

在 CSDN 看到帖子回复如下: x=y>>2;004122A8  mov         eax,dword ptr [y] 004122AB  sar         eax,2 '算术移位 0…

   2019-01-07   166   0 查看全文

for 循环的反汇编浅析

for 循环     for 循环是使用频度最高的循环结构,我们通过 C 语言反汇编实例,来分析 for 循环结构在计算机底层的原理和构造。首先,我们编写一个简单的 for 循环:     为了方便观察,我们用十六进制来表示循环变量,编译后,我们用 …

   2018-09-13   155   0 查看全文

switch 语句的反汇编浅析

switch 的简单情景(case 不超过 3 项)     首先,我们分析一下 switch 语句的一种简单情景,我们可以用 C 写出如下如下代码。     编译后用 OllyDBG 载入,它将显示出如下的反汇编代码。     首先,我们可以看到 ESP…

   2018-09-12   158   0 查看全文

通过分析反汇编还原 C 语言 if…else 结构

    让我们从反汇编的角度去分析并还原 C 语言的 if … else 结构,首先我们不看源代码,我们用 OllyDBG 载入 PE 文件,定位到 main 函数领空,如下图所示。                         &nbs…

   2018-09-11   114   0 查看全文

__cdecl、__stdcall、__fastcall 与 __pascal 浅析

call 指令与 retn 指令     首先我们得了解 CALL 和 RETN 指令的作用,才能更好地理解调用规则,这也是先决条件。     实际上,CALL 指令就是先将下一条指令的 EIP 压栈,然后 JMP 跳转到对应的函数的首地址,当执行完函数体后,…

   2018-09-11   142   1 查看全文

ESP、EBP、CALL 指令与局部变量浅析

概述     函数调用是计算机程序中一个最重要的概念之一,从汇编的角度看,能更加直观地理解函数调用的原理,理解 CALL 指令调用过程中 ESP、EBP 寄存器的作用。     我们先从一段简陋的 C 语言代码说起,我们首先调用了 printf 函…

   2018-09-10   248   1 查看全文

GDI 映射模式(11)

概述 调用 SetMapMode 函数可以设置映射模式:int SetMapMode( HDC hdc, // 设备环境句柄 int fnMapMode // 要设置的映射模式 ); 同样,调用 GetMapMode 函数可以获取映射模式:int GetMapMode( HDC hdc // 设备环境句柄 ); 注:…

   2018-06-05   96   0 查看全文
加载更多