文章 2022-02-16 来自:开发者社区

1、从汇编语言到Windows内核编程笔记(1)

  汇编部分1、call 的本质相当于push+jmp,ret的本质相当于pop+jmp。 2、Windows中,不管哪种调用方式都是返回值放在eax中,然后返回。外部从eax中得到值。 3、Ebp总是被我们用来保存这个函数执行之前的esp的值。 4、把局部变量区域初始化成全0cccccccch,0cch实际是int 3 指令的机器码,这是一个断点中断指令。 5、任何一段中间不加任何跳转...

文章 2022-02-16 来自:开发者社区

4、从汇编语言到Windows内核编程笔记(4)

了解机器码<?xml:namespace prefix = o /> X86所有指令的机器码长度不定,且连续排列,因此读取机器码的唯一方法是从头开始逐条解析指令。 nop指令是单字节,可以用作填充替换长指令后的多余区域。 XDE32反汇编引擎。 关于进一步机器码的构成分析,可以看[6]。 CPU权限级与分页机制 Intel的x86通过ring级别进行访问控制,共分四级。R...

文章 2022-02-16 来自:开发者社区

3、从汇编语言到Windows内核编程笔记(3)

Windows内核(一).sys放在Drivers目录下。运行在R0层。在WDK的相应环境中,进行相应代码目录,build.一个内核程序被看作一个PE格式的DLL,它是被Windows整个内核调用的一个DLL,一旦加裁,就成为内核的组成部分。所有的内核内存空间是共享的。内核程序崩溃,Windows系统也就崩溃了。DriverEntry是一个内核程序的入口,以system进程名出现。编写内核的规则....

文章 2022-02-16 来自:开发者社区

2、从汇编语言到Windows内核编程笔记(2)

内核线程 在驱动中生成的线程一般是系统线程。系统线程所在的进程名为“System”。 NTSTATUS PsCreateSystemThread( OUT PHANDLE ThreadHandle, IN ULONG DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL, IN HANDLE ProcessHandle OP....

文章 2022-02-16 来自:开发者社区

C++windows内核编程笔记day06 代码创建菜单

创建菜单: HMENU CreateMenu(VOID); 添加菜单项: BOOL AppendMenu(  HMENU hMenu,         // handle to menu   UINT uFlags,       ...

文章 2022-02-16 来自:开发者社区

C++windows内核编程笔记day03_day04_day05

windows消息机制、消息格式和消息处理1 unicode支持,windows下用: 1、先在#include&lt;windows.h&gt;上面,定义 UNICODE #define UNICODE 2、定义字符串 TCHAR * ptxt=TEXT("学习hello c++"); 3、根据需要,打印不同格式字符串 #ifdef UNICODE &nbsp;&nbsp; &nbsp;wpri...

文章 2022-02-16 来自:开发者社区

C++windows内核编程笔记day01_day02

windows编程介绍、windows 库和头文件介绍 exe文件:.exe,可执行文件 静态库文件:*.lib,调用时,源代码嵌入到调用位置 动态库文件:*.dll,调用时,函数地址被传入 --写编译软件,要懂编译原理. windows 库和头文件 kernel32.dll-提供了核心的API,例如进程、线程、内存管理等 user32.dll-提供了窗口消息等API gdi32.dll-绘图相....

文章 2022-02-16 来自:开发者社区

C++windows内核编程笔记day13 进程、线程与信号量

Windows进程 进程是一个容器,包含程序执行需要的代码、数据、资源等信息, windows进程的特点:每个进程都有自己的ID号每个进程都有自己的地址空间,进程之间无法访问对方的地址空间。每个进程都有自己的安全属性每个进程至少包含一个线程。 获取和释放环境信息 GetEnvironmentStrings FreeEnvironmentStrings 获取或设置 本程序的环境变量 GetEnvi....

文章 2022-02-16 来自:开发者社区

c++windows内核编程笔记day12 硬盘逻辑分区管理、文件管理、内存管理

windows系统磁盘文件存储: 分区格式:NTFS / FAT32 GetSystemDirectory();//获取系统路径 GetWindowsDirectory();//获取windows路径 GetCurrentDirectory();//获取当前工作目录 SetCurrentDirectory();//修改当前工作目录 CreateFile/ReadFile/WriteFile/Ge....

文章 2022-02-16 来自:开发者社区

C++windows内核编程笔记day11 win32静态库和动态库的使用

windows库程序:静态库: 源代码被链接到调用的程序或动态库,被调用时,代码最少有1份,文件后缀.LIB 动态库: 函数被程序或其他动态库调用,被调用时,代码只有1份,文件后缀.DLL 静态库(C语言): 创建时,选择文本类型文件,输入Clib.c,设置输出路径 ../lib/Clib.lib int Clib_add(int a,int b) {return a+b; } 同一上工作区,建....

本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。

开发与运维

集结各类场景实战经验,助你开发运维畅行无忧

+关注