- 博客(193)
- 收藏
- 关注

原创 C/C++ 安全 开发 全栈 学习目录
导航栏博客首页 ->链接点击跳转博客主页 文章分类 编程基础 -C/C++ 编程基础 - Python 编程基础 - Java 数据结构 -C/C++ 核心编程 - WIN32 图形界面 - DLG - MFC - QT 网络编程 - SOCKET 项目开发 - C/C++ 汇编语言 - x86 - x64 软件逆向 - C/C++ 文件格式 - PE 调试异常 - Debug - Exception
2024-01-29 19:22:19
1511
1
原创 Windows逆向工程提升之线程环境块
操作系统为每个线程分配一个独立的 TEB(即线程环境块),通过 FS 段寄存器,线程可以快速访问自己独立的数据。对应线程的 SEH(Structured Exception Handling,结构化异常处理)链表的头节点。对应当前线程的 PEB(Process Environment Block, 进程环境块)地址。PEB 是与进程相关的一块数据结构,保存一个进程的全局信息。TEB 是与线程相关的一块数据结构,包含线程的关键信息。存储线程栈信息,如栈的基址和栈的大小。存储线程的异常处理链 (SEH)。
2025-05-27 21:29:34
1044
原创 Windows逆向工程提升之IMAGE_TLS_DIRECTORY
在多线程程序中,每个线程可以有自己独特的一组数据,互不干扰。指向一个 TLS 索引(通常位于线程环境块 TEB 中),用于标识当前线程的 TLS 段。表示未初始化数据的大小,如果存在,则这部分数据会在 TLS 数据段初始化时清零。静态 TLS 的数据在程序加载时由系统内存分配,并初始化到对应的线程。分配一个 TLS 索引,动态管理每个线程的 TLS 数据。这部分数据会复制到每个线程的 TLS 段中,作为初始化状态。指的是 TLS 初始化数据段的起始地址。:当线程启动时,初始化 TLS 数据。
2025-05-27 21:27:28
1770
原创 Windows逆向工程提升之IMAGE_DEBUG_DIRECTORY
调试器(如 Visual Studio)利用结构中的信息定位 PDB(Program Database)文件,加载符号表,解析调试符号。确保调试器可以查看程序中的变量、代码行号、函数调用堆栈等。调试者可以通过提取此结构获取程序的调试信息地址,进而分析可执行文件的工作逻辑。存储与调试相关的信息(如符号文件路径、时间戳、调试信息类型)。调试器(如 WinDbg、Visual Studio)利用这些信息定位符号文件(.pdb:调试项的特性字段,大多情况下设置为 0。
2025-05-26 20:15:34
1227
原创 Windows逆向工程提升之IMAGE_RUNTIME_FUNCTION_ENTRY
【代码】Windows逆向工程提升之IMAGE_RUNTIME_FUNCTION_ENTRY。
2025-05-26 20:08:49
1244
原创 Windows逆向工程提升之x86结构化异常SEH处理机制
避免为每个try/except块生成独立的处理函数。:允许实现过滤器表达式评估、嵌套异常和异常转发。作为通用入口点,为所有异常提供一致的处理框架。:通用处理器可以执行额外验证和安全检查。:标识异常处理标志,是否可恢复等。:异常发生的指令地址。:异常附加参数个数。
2025-05-25 17:11:00
1939
原创 Windows逆向工程提升之IMAGE_RESOURCE_DIRECTORY
起始位置:由数据目录IMAGE_DIRECTORY_ENTRY_RESOURCE指定RVA,需转换为FOA访问。紧跟在每个IMAGE_RESOURCE_DIRECTORY结构之后的是多个目录条目。
2025-05-24 19:25:50
1967
原创 Windows逆向工程提升之IMAGE_BASE_RELOCATION
目录重定位的概念与作用什么是重定位?为什么需要重定位?IMAGE_RELOCATION 结构详解结构定义字段解析重定位类型(Relocation Type)重定位表的工作流程加载器处理步骤示例计算图解示例重定位表结构解析绝对地址数据引用重定位表由多个 重定位块(Block) 组成,每个块对应一个内存页(4KB),结构定义为 IMAGE_BASE_RELOCATION:字段解析
2025-05-24 19:13:51
1422
原创 Windows逆向工程提升之IMAGE_IMPORT_DESCRIPTOR
在 PE 文件中,Import Table(导入表)用于指定可执行文件或动态链接库需要从其他模块(通常是 DLL 文件)加载的符号(函数或变量)。
2025-05-23 23:24:32
1808
原创 Windows逆向工程提升之IMAGE_EXPORT_DIRECTORY
在 Windows SDK 的winnt.h文件中,IMAGEEXPORTDIRECTORY// 保留字段(总为0)// 时间戳(编译器生成时间)// 主版本号(通常为0)// 次版本号(通常为0)DWORD Name;// DLL名称的RVA(如"kernel32.dll")DWORD Base;// 导出函数序号的基值(实际序号=索引+Base)// 导出函数总数(最大的导出序号 - 最小的导出序号 + 1)// 按名称导出的函数数量(可能小于总数)
2025-05-23 23:16:51
1804
原创 Windows逆向工程提升之IMAGE_SECTION_HEADER
描述PE文件中各个节(Section)的属性,包括代码、数据、资源等段的文件布局和内存映射规则。每个节表项对应一个节(如.text.data.rdata),定义其名称、大小、偏移、权限等。节表位于之后,节数据紧随其后。// 节名称(8字节,非空终止)union {// 节在内存中的实际大小(未对齐)} Misc;// 节的RVA(内存中的起始地址)// 节在文件中的大小(对齐后的值)// 节在文件中的偏移// 重定位表偏移(OBJ文件用)// 行号表偏移(调试用)
2025-05-22 21:56:41
1936
原创 Windows逆向工程提升之IMAGE_OPTIONAL_HEADER
IMAGE_FILE_HEADER IMAGE_OPTIONAL_HEADER32IMAGE_OPTIONAL_HEADER64数据目录是。
2025-05-21 18:36:07
1518
原创 Windows逆向工程提升之IMAGE_FILE_HEADER
目录IMAGE_FILE_HEADER 介绍IMAGE_FILE_HEADER 结构核心字段解析Machine(目标平台架构)NumberOfSections(节数目)TimeDateStamp(时间戳)PointerToSymbolTable(符号表指针)NumberOfSymbols(符号数目)SizeOfOptionalHeader(可选头的大小)Characteristics(文件属性标志)IMAGE_FILE_HEADER 位置核心字段解析Machine(目标平台架构) 定义:
2025-05-21 18:29:49
1989
原创 Windows逆向工程提升之IMAGE_DOS_HEADER
IMAGE_DOS_HEADER 是PE文件(Portable Executable)结构中的第一部分,它包含了DOS程序使用的起始信息。尽管现代Windows操作系统直接运行PE文件(而不是DOS程序),但DOS头依然被保留下来,主要用于兼容性。// 用于标记DOS可执行文件(0x5A4D,即"ZM")。// 最后一页的字节数。WORD e_cp;// 文件的页总数。// 重定位项数目。// 段信息表中的段头大小。// 最小数据长度需求。// 最大数据长度需求。WORD e_ss;
2025-05-20 16:58:10
1295
原创 Windows逆向工程提升之二进制分析工具:HEX查看与对比技术
二进制对比工具用于识别两个PE文件之间的差异,这在分析软件补丁、不同版本间的变化或恶意软件变种时非常有用。十六进制查看器是逆向工程的基础工具,它可以以十六进制格式显示文件内容,同时展示对应的ASCII字符表示。:理解PE文件的内存布局对于动态分析至关重要。)来验证文件是否为合法的PE文件。PE文件是Windows可执行文件的标准格式,包含代码、数据和资源。这个函数接收数据缓冲区、偏移量和长度,以标准的十六进制转储格式输出。:通过比较软件不同版本,可以快速定位被修改的代码段,这在分析安全补丁时特别有用。
2025-05-19 22:54:35
1369
原创 Windows逆向工程提升之PE文件的基本概念
PE 是 Microsoft 提出的可移植可执行文件格式,用于描述程序在磁盘上的存储格式以及加载到内存后运行的布局。文件扩展名.exe.dll.sys。用途:应用程序、动态链接库(DLL)、驱动程序等。架构兼容性:支持 x86、x64、ARM 等多种架构。
2025-05-19 22:47:00
1807
原创 Windows逆向工程入门之 ADDRESS(virtual logical effective linear physical)
段选择器:段内偏移。
2025-03-08 17:38:28
1592
原创 Windows逆向工程入门之MASM x64架构与调用约定实战指南
【代码】Windows逆向工程入门之MASM x64架构与调用约定实战指南。
2025-03-05 21:28:34
1206
原创 Windows逆向工程入门之MASM ALIGN、TYPE、LENGTHOF、SIZEOF与LABEL
【代码】Windows逆向工程入门之MASM ALIGN、TYPE、LENGTHOF、SIZEOF与LABEL。
2025-03-03 20:53:26
983
原创 Windows逆向工程入门之MASM 指针操作
目录一、数据定义与内存布局:逆向工程的第一视角1. 多维度数据存储模型2. 指针的静态化存储二、指令级逆向分析:操作语义与机器码映射1. MOV 指令的多重面孔2. 部分寄存器操作的隐蔽性三、逆向工程高阶:内存访问模式与漏洞模式1. 数组越界访问的二进制特征2. 类型混淆漏洞的汇编级表现四、拓展:PE 文件结构与逆向工具的协同作战1. PE 节区与内存映射五、安全机制对抗:逆向工程的攻防视角1. ASLR 绕过技术
2025-03-02 19:08:48
1192
原创 Windows逆向工程入门之MASM OFFSET 伪指令
在 Windows 逆向工程与底层开发中,理解内存寻址机制是核心技能之一。MASM(Microsoft Macro Assembler)的。伪指令作为静态地址计算工具,直接影响代码生成与内存操作模式。表明 DWORD 类型)和索引逻辑。逆向时需推断元素类型(
2025-03-02 18:58:35
1196
原创 Windows逆向工程入门之MASM数据结构使用
标准定义语法原始字节定义带符号最大值十六进制表示法八进制表示法存储特征对比矩阵:类型位宽值域范围机器码示例内存布局模式SBYTE8-128~12788 FF补码存储WORD160~65535B8 00 01小端序SDWORD32扩展符号位REAL864±1.7E±308 (精确到15位小数)IEEE-754标准;二维数组定义技巧3行5列零矩阵访问matrix[row][col]内存布局验证:15个DWORD零值。
2025-02-27 19:51:41
1931
原创 Windows逆向工程入门之MASM编程深度解析
数据类型伪指令对照表:伪指令位宽等价类型BYTE8WORD16shortDWORD32longQWORD64__int64REAL432float内存分配高级技巧:.data200字节未初始化数组自定义结构体x DWORD?y DWORD?ends结构体实例化。
2025-02-27 19:42:09
1652
原创 Windows逆向工程入门之LOOP与REP指令的深度解析
是一个前缀指令,用于确保后续指令在多处理器环境中以原子方式执行。它通过锁定总线来保证对共享资源的独占访问。指令是 x86 汇编中的一个循环控制指令,用于实现基于计数的循环操作。指令使用较少,因为手动控制寄存器的方式被高级语言的循环结构(如。是一个前缀指令,通常与字符串操作指令(如。)结合使用,用于重复执行这些指令。的性能可能不如显式的跳转指令(这些变种通常用于字符串比较(如。寄存器的值来控制循环次数。
2025-02-26 18:14:26
1493
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人