摘要: 一、一句话概括 堆栈展开 是指在程序执行过程中(通常是因为异常或某些特定操作),从当前的函数调用栈帧开始,逐层退出并销毁栈帧,直到找到一个能处理当前状况(如异常)的帧为止的过程。 二、详细解释 为了更好地理解,我们需要先回顾几个基本概念: 1.调用栈:当程序执行函数调用时,系统会为每个函数在内存的“ 阅读全文
posted @ 2026-01-10 21:26 歌德巴赫猜想 阅读(10) 评论(0) 推荐(0)
摘要: 这是一个关于 Windows x64 调用约定中一个非常重要且特定的概念。 一、核心定义 Shadow Space(中文常译为“影子空间”或“阴影空间”)是 Windows x64 调用约定(包括 x64 fastcall)强制要求的一种栈空间。它在函数被调用时,由调用者在栈上为其预留的一块 32 阅读全文
posted @ 2026-01-10 20:10 歌德巴赫猜想 阅读(21) 评论(0) 推荐(0)
摘要: 简单来说,ntdll.dll 是 Windows 操作系统中最核心、最底层的系统动态链接库之一,它充当了用户模式应用程序与 Windows 内核之间的“桥梁”。 下面我们从几个层面来详细解释它的作用: 1. 核心作用:用户模式与内核模式的桥梁 Windows 操作系统为了安全和稳定性,将运行环境分为 阅读全文
posted @ 2026-01-08 21:00 歌德巴赫猜想 阅读(31) 评论(0) 推荐(0)
摘要: 下面是读取二进制文件并加载执行的关键步骤 1.读取二进制文件 err = fopen_s(&file, filename, "rb"); 2.获取文件大小 fseek(file, 0, SEEK_END); fileSize = ftell(file); fseek(file, 0, SEEK_SE 阅读全文
posted @ 2026-01-06 22:02 歌德巴赫猜想 阅读(5) 评论(0) 推荐(0)
摘要: 原文地址:http://www.rohitab.com/discuss/topic/45310-obtain-dll-addresses-from-the-peb-of-a-64-bit-process/ 这里有两个小的代码片段,可以在64位程序中动态获取已加载DLL的地址。这种技术可以用来替代Lo 阅读全文
posted @ 2026-01-06 19:40 歌德巴赫猜想 阅读(4) 评论(0) 推荐(0)
摘要: 1.点击初始框右下方的 Create a new project 2.点击Empty Project 项目,设置项目名和项目位置 3.配置汇编环境 右键单击项目名称-->选择生成依赖项-->选择生成自定义 选择masm(.target.props),然后点击确定 4.新建汇编文件 右键点击项目名称- 阅读全文
posted @ 2026-01-04 21:53 歌德巴赫猜想 阅读(5) 评论(0) 推荐(0)
摘要: 汇编代码(assembly.asm)如下: .code AddNumbers PROC mov rax, rcx ; the first parameter add rax, rdx ; the second parameter ret AddNumbers ENDP GetTimestamp PR 阅读全文
posted @ 2026-01-04 21:10 歌德巴赫猜想 阅读(2) 评论(0) 推荐(0)
摘要: 好的,我们来详细解析一下 x64 架构下的函数调用过程。这是一个核心的底层概念,理解它对于调试、性能分析和编写高效代码都至关重要。 x64(或称为 AMD64 / Intel 64)调用约定与 32 位的 x86 有显著不同,主要得益于更多的通用寄存器,从而实现了更高效的寄存器调用约定,减少了对栈操 阅读全文
posted @ 2026-01-03 18:48 歌德巴赫猜想 阅读(26) 评论(0) 推荐(0)
摘要: 第一部分:创建 DLL 步骤 1:创建新项目 打开 Visual Studio 2022。 点击“创建新项目”。 在搜索框中,输入 dynamic,然后选择“动态链接库 (DLL)”模板。如果找不到,也可以选择“空项目”,然后手动配置。 点击“下一步”,为项目命名(例如 MyMathDLL),选择位 阅读全文
posted @ 2025-12-28 21:37 歌德巴赫猜想 阅读(19) 评论(0) 推荐(0)
摘要: C语言代码首先被编译成与硬件平台相关的汇编指令,然后汇编器将这些汇编指令翻译成机器指令(二进制代码)。 C代码不能直接变成机器指令,它必须经过一个被称为“编译”的转换过程。下面详细拆解这个神奇的过程。 一、宏观过程概览 整个过程可以概括为以下四个主要步骤,由一个叫做“编译器”的软件驱动: C源代码 阅读全文
posted @ 2025-12-23 20:42 歌德巴赫猜想 阅读(37) 评论(0) 推荐(0)