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

学无止境,须时刻空杯

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

一种C语言编译系统的实现设想

可能的方案选择 1、可直接将标准C90的代码编译成特定目标机器语言(x86)的编译器2、将标准C90的代码编译成某种约定好的VM字节码的编译器,以及可执行此字节码的虚拟机 实现的大概说明 我设想用 C++ 编程语言来实现这个编译器(可能附带虚拟机) 如果要实现…

   2019-09-29   116   2 查看全文

仿写U盘文件夹伪装病毒

病毒特性 笔者之前遇见过一种专门感染 U 盘的病毒,它的主要特征就是将它的程序图标看起来就是文件夹的图标,对一般的电脑使用者具有很强的误导性。一旦误运行了此病毒,它会将系统上的可移动磁盘(类似 U 盘)中的文件夹进行隐藏,并且将它的可执行文件本体改为这些…

   2019-09-05   101   3 查看全文

COM 学习笔记 (2) : 接口查询

IUnknown 接口概述 引述 客户对组件的了解是非常有限的,为知道某个组件是否支持某个特定的接口,客户可以在运行时询问组件。即使组件不支持所需要的某个接口,客户也可以在请求失败时很好地处理这种情形 IUnknown 接口 COM 中所有内容最终都起于接口、又…

   2019-07-16   46   0 查看全文

COM 学习笔记 (1) : COM 简明概念

COM 的简明概念 面向组件编程的优点 应用的可定制性 用户希望能够定制他们的应用,而程序员可以为用户建立应用定制方案 —— 通过组件架构本身的可定制性(用户能使用需要的组件来将某个组件替换掉) 组件库 组件架构拥有快速应用开发的优点,程序员可以…

   2019-07-15   76   0 查看全文

x86 保护模式浅析(三)

工具准备 NASM 汇编器,以及一个文本编辑器VirtualBox 虚拟机(或者 Bochs 也可以) 开始实战 进入保护模式的汇编代码 gdt_base equ 7e00h ; gdt_base 表示 GDT 头部的地址 ; 这一段代码主要是将 GDT 的头部地址,转换为 “段:偏移” 的形式,在实模式下的…

   2019-05-28   72   0 查看全文

x86 保护模式浅析(二)

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

   2019-05-28   66   0 查看全文

x86 保护模式浅析(一)

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

   2019-05-28   61   0 查看全文

Windows 内核字符串

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

   2019-05-24   84   5 查看全文

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

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

   2019-01-07   56   0 查看全文

for 循环的反汇编浅析

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

   2018-09-13   49   1 查看全文
加载更多