自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(67)
  • 收藏
  • 关注

原创 WIN32_模块

本文摘要: 本文系统讲解了Windows动态链接库(DLL)的核心原理与应用实践。主要内容包括:1) DLL基本概念与优势,如代码重用、模块化和内存效率;2) 动态加载未文档化API的完整流程;3) DLL开发环境配置与入口函数;4) 数据导出的两种方式(__declspec与.def文件)及错误处理;5) 导入表对接导出数据的实现方法;6) 模块遍历技术,包括获取模块基址、名称和跨进程枚举模块等。

2026-06-17 20:21:10 444

原创 WIN32_文件

本文介绍了Windows文件系统的基本概念与操作,包括文件和目录的定义、层次结构,以及通过Win32 API实现文件的创建、打开、读写、复制、移动和删除等操作。详细解析了C++代码示例,展示如何获取文件属性、时间戳、大小、类型和完整路径。内容涵盖文件指针设置、错误处理及系统时间转换,是Windows系统编程中文件管理的核心知识总结。

2026-06-17 20:20:31 236

原创 WIN32_内存

本文介绍了Windows平台下跨进程内存操作与堆区管理的核心技术,主要包括: 内存修改:使用CE工具修改指定进程内存值,以及编程实现跨进程内存读写(OpenProcess、VirtualAllocEx等API); 内存管理:虚拟内存页面操作(VirtualQueryEx查询内存属性、VirtualProtectEx修改权限); 堆区管理:默认堆与私有堆的创建(HeapCreate)、内存分配(HeapAlloc)、扩容(HeapReAlloc)及释放(HeapFree);

2026-06-17 20:19:49 354

原创 WIN32_线程(下)

多线程同步机制总结(≤150字) 本文系统分析了Windows多线程编程中的竞态问题及同步方案。全局变量自增操作因非原子性导致竞态条件,可通过LOCK指令、临界区或互斥体解决。临界区适用于进程内线程同步,互斥体支持跨进程但性能较低。互斥体在持有线程异常终止时会被系统自动释放,而临界区会导致永久死锁。信号量通过计数机制实现并发控制,限制同时执行的线程数量。事件对象分为手动/自动重置模式,用于线程间通知。

2026-06-15 20:38:02 483

原创 WIN32_线程(上)

本文摘要: 线程是操作系统调度的最小单位,拥有独立的寄存器与堆栈,共享进程资源,可提升执行效率。线程与进程存在包含关系,进程是资源分配单位,线程是CPU调度单位。内核结构体_EPROCESS和ETHREAD分别管理进程与线程信息,涉及内存管理、优先级调度等机制。线程通过API(如CreateThread、SuspendThread等)实现创建、挂起、恢复和终止,需注意线程同步(WaitForSingleObject)以确保执行顺序。

2026-06-15 20:37:25 198

原创 WIN32_进程

本文摘要主要介绍了Windows系统中进程的基础知识、创建与管理方法。内容包括:进程与程序的区别(静态程序文件与动态执行实例)、进程运行所需的资源环境(内存空间、动态链接库等)、进程组成结构(代码段、数据段、堆栈等)。重点阐述了通过CreateProcess API创建进程的流程、主线程/工作线程机制,以及进程终止方式。此外还涉及进程句柄操作和两种进程间通信技术(剪切板共享、文件映射内存)。

2026-06-14 09:23:21 266

原创 WIN32_入门

本文主要介绍了编程中的数据类型、错误处理和字符编码三大主题。在数据类型部分,对比了C/C++基本数据类型与Win32 API数据类型的区别,强调了后者在跨平台兼容性方面的优势。错误处理章节分别阐述了C语言通过返回值和errno、C++通过异常机制以及Win32 API通过GetLastError()的不同处理方式。字符编码部分重点比较了GBK和Unicode编码体系的差异,说明了Win32程序中推荐使用Unicode的原因,并通过实例演示了wchar_t类型的使用注意事项。文章配有多个代码示例和图表说明

2026-06-14 09:22:36 250

原创 X32DBG和IDA调试心得

本文介绍了在x32dbg和IDA Pro中定位main函数入口的方法。在x32dbg中需设置入口断点,通过跟踪_mainCRTStartup、_scrt_common_main等跳转指令层层深入,最终找到main函数的反汇编代码。IDA Pro中则可通过函数视图搜索并回溯调用链,从main函数开始逆向追踪到start过程。文章强调了识别call指令特征和堆栈回溯的重要性,并提供了两种工具下的具体操作步骤和验证方法,帮助分析人员准确找到程序入口点。

2026-06-06 20:35:49 506

原创 X86反汇编_深度学习_基础二叉树

本文通过反汇编分析和C语言代码映射,深入解析了二叉树的各种递归操作实现原理。重点对比了前序、中序、后序遍历的本质区别:前序遍历在递归调用前执行核心判断动作,符合"辐射-受阻返回"的执行逻辑;后序遍历则必须遍历完整棵树才能执行操作。文章详细展示了9种典型二叉树算法(包括节点计数、求高度、查找节点、树相等判断、单值树判断等)的底层实现机制,通过汇编指令与高级语言代码的对应关系,揭示了递归在二叉树操作中的实际执行流程。特别强调前序遍历的广泛应用性,因其条件判断的前置性能够实现高效剪枝。

2026-06-06 20:34:56 219

原创 X86反汇编_深度学习_栈反汇编分析

本文通过反汇编分析和C语言代码映射的方式,详细解析了栈数据结构的基本操作实现。主要内容包括栈初始化(STInit)、入栈(STPush)、获取栈大小(STSize)、判断栈空(STEmpty)、获取栈顶元素(STTop)、出栈(STPop)和销毁栈(STDestory)等函数的底层实现机制。每个函数都提供了对应的反汇编代码分析和C语言实现代码,最后给出了测试用例和运行结果验证。文章系统地展示了从底层汇编到高级语言的栈实现全过程,为理解数据结构底层原理提供了实用参考。

2026-06-05 20:49:16 360

原创 X86反汇编_深度学习_队列反汇编分析

本文通过逆向分析技术,从汇编代码还原队列数据结构的实现。首先解析了嵌套结构体的内存布局,确定外层结构体包含三个成员(含内层结构体指针)。随后逐步还原了队列初始化(QueueInit)、入队(QueuePush)、出队(QueuePop)和销毁(QueueDestory)等核心操作的C语言实现代码,并提供了测试用例验证功能正确性。整个过程展示了如何通过反汇编技术逆向推导数据结构实现,最终输出测试结果验证了还原代码的准确性,完整呈现了队列数据结构的底层实现原理。

2026-06-05 20:47:28 244

原创 x86反汇编_深度学习_链表OJ题反汇编

本文系统性地分析了链表操作的五大核心算法:移除元素、查找中间节点、定位倒数第N个节点、有序链表合并及链表反转。每个算法均通过反汇编与C代码映射进行双重验证,并配以"极简战术卡"总结关键要点。重点技术包括:双指针策略(快慢指针、前后指针)、哨兵节点优化、边界条件防御(空指针处理、短路求值)以及指针操作的底层汇编实现。特别强调内存安全(防野指针/泄漏)和算法效率(O(n)时间复杂度),为链表操作提供了从理论到汇编层面的完整解决方案。

2026-06-04 23:18:00 620

原创 x86反汇编_深度学习_单链表

这篇文章以军事化语言生动解析了C语言单向链表的底层实现原理。通过反汇编分析,作者将链表操作形象化为"内存战场"上的战术行动,包括:1) 节点创建("堆内存地契");2) 头插尾插("二级指针爆破"与"顺藤摸瓜");3) 头删尾删("跨阵地接力");4) 链表销毁与遍历等核心操作。文章强调理解物理内存布局和指针操作的本质,将抽象语法转化为实际的"内存位移法则",为后续高级算法(如快慢指针、链表反转等)打下坚实基础。采用"战术手册"的叙述方式,使复杂的指针操作变得直观可感。

2026-06-04 23:16:38 252

原创 X86汇编:复杂逻辑判断_针对性扫盲

本章主要讲解了反汇编中遇到分支情况如何抽丝剥茧分析对应的数据流关系。

2026-06-03 20:06:35 264

原创 X86反汇编_深度学习:从 C 指针到汇编逻辑

本文深入探讨了指针与数据的基础关系,重点分析了字符指针、指针数组和数组指针的区别与内存分布,并通过反汇编视角揭示了底层实现机制。文章首先对比了字符指针与字符数组的差异,指出常量区与栈区的本质区别;随后详细解析了指针数组和数组指针的寻址方式及汇编特征,强调"指针数组是地址列表,数组指针是步长计算"。在函数指针部分,通过汇编指令对比了直接调用与间接调用的区别,并剖析了函数指针数组的查表法寻址逻辑。最后,文章以快速排序为例,展示了如何在C语言和汇编层面实现基于函数指针的回调机制。全文通过大量反汇编实例,系统性地阐

2026-06-03 20:05:10 1040

原创 X86反汇编_深度学习_4

本文通过反汇编分析展示了多个函数的功能实现与C语言映射过程。主要内容包括: 二维数组处理:通过imul指令实现二维数组寻址,分析行列关系(5x3数组) 指针数组操作: 使用指针数组存储字符串首地址 通过[ebp+index*4-offset]实现指针数组访问 字符串排序输出流程(输入→指针赋值→排序→输出) 字符串处理: 使用strcmp进行字符串比较 通过strcpy实现字符串交换 双层循环实现选择排序算法 关键指令分析: imul用于多维数组寻址 lea指令取地址 指针数组与二维数组的区别 文章详细记录

2026-06-02 20:12:41 214

原创 X86反汇编_深度学习阶段_3

本文通过对多个函数模块的反汇编分析,揭示了C语言代码的底层实现逻辑: Level_1展示了静态二维数组加法运算,实际为固定10×10数组,输入行列仅控制遍历范围。关键特征包括0x28行间距寻址和嵌套循环结构。 Level_2分析了5整数排名算法,重点指出现场发现并修正的未初始化数组问题,最终通过倒序嵌套循环实现两两比较计数。 Level_3深入解析了字符串处理函数,通过[eax+edx+0xF]等地址计算模式识别出结构体数组特征,包含两个字符数组成员。 文章采用"极简笔记+铁证分析"的双重视角,既提炼关键汇

2026-06-02 20:11:54 257

原创 X86反汇编:深度学习阶段_2

本文分析了三个汇编代码逆向工程案例,分别实现: 三数排序:通过exchange函数比较三个输入数字,调用swap实现升序排列,关键点在于指针参数传递和条件跳转指令。 数组极值计算:循环输入10个整数,调用max_min函数用指针遍历数组,动态更新最大最小值,重点考察数组寻址和指针操作。 基础函数调用:展示汇编层面的函数调用规范,包括参数传递、局部变量分配和返回机制。 核心知识点包括:指针参数传递、条件跳转指令、循环结构实现、数组内存布局和函数调用约定,是逆向工程中识别基础算法的关键特征。

2026-06-01 20:20:03 371

原创 X86反汇编_深度学习阶段_1

本文介绍了多个汇编编程案例的核心实现逻辑,包括杨辉三角生成、进制转换、折半查找、位移运算和矩阵对角线求和。重点解析了以下技术要点: 杨辉三角的汇编实现 详细的内存布局设计(栈空间分配) 手动调用printf的技术细节(字符串构造、参数压栈、栈平衡) 分阶段实现初始化、计算和打印的全流程 进制转换与折半查找 N进制字符串转十进制的实现方法 折半查找中的CDQ指令陷阱识别 有符号/无符号除法的汇编实现差异 位移运算本质 左移(SHL/SAL)统一对应乘法 右移区分逻辑右移(SHR)和算术右移(SAR) 快速逆向

2026-06-01 20:19:14 659

原创 X86反汇编:内存幻影_数组解码纪元(3-2)

本文摘要: 《汇编逆向工程入门指南:从基础到实战》是一篇关于汇编逆向学习的系统性教程。文章以"破雾之旅"为隐喻,详细讲解了从基础到进阶的8个逆向关卡。重点内容包括: 基础篇(Level1-2):数组直接寻址与指针操作 硬编码偏移量访问(arr[0]+arr[2]-arr[1]) 指针移动与取值(*(p++)操作) 循环结构(Level3-4): 标准数组遍历模式识别([esi+ecx*4]) 循环中的条件筛选(统计0值元素) 进阶技巧: 逆向工程方法论 从混乱指令流还原清晰逻辑 无源码"盲测"能力培养 教程

2026-05-31 09:34:14 195

原创 X86反汇编:内存矩阵与指针之剑(3-1)

文章摘要:C语言数组与指针的汇编本质 本文通过四关实验揭示了C语言数组和指针在汇编层的本质: 序列关展示数组是"基地址+偏移量"的连续内存块; 步幅关揭示数据类型决定内存访问的步长(int为4字节,char为1字节); 遍历关拆解循环中寄存器如何作为索引变量; 投影关演示指针本质是存储地址的普通变量,通过LEA指令获取地址。全程采用"先C代码后反汇编"的对照方式,证明高级语法只是内存操作的抽象,理解底层机制能提升调试和逆向能力。

2026-05-31 09:32:47 447

原创 X86反汇编:时间回溯(2-2)

这篇文章通过几个反汇编代码示例,展示了不同循环结构(for、while、do-while)及其控制流(break、continue)在底层汇编中的实现方式。关键点包括:1)循环的基本结构(初始化、检查、步进);2)do-while与while的区别(检查位置);3)break和continue对应的跳转逻辑;4)switch-case在汇编中的比较链模式。这些示例揭示了高级语言控制结构到汇编指令的映射关系,体现了"业余者看指令,专业者识模式"的核心观点。

2026-05-30 19:55:47 207

原创 X86反汇编:衔尾之蛇 —— 时间的轮回与算法之基(2-1)

这篇文章通过C代码与反汇编的对比分析,揭示了三种循环结构(do-while/while/for)和流程控制(break/continue)在汇编层面的实现机制。核心发现包括:1) do-while循环先执行后判断,体现在汇编中先执行循环体再比较;2) while循环先判断后执行,汇编中会先跳转到条件检查;3) for循环被分解为初始化、检查、累加三个独立区块;4) break和continue分别对应跳出循环和跳回循环头的跳转指令。文章强调逆向工程需要"考古式"思维,通过碎片化指令还原程序逻辑结构。

2026-05-30 19:55:02 370

原创 X86反汇编:透视之眼_反编译特训(1-2)

本文展示了如何通过分析汇编代码还原C语言逻辑结构的多层次练习。从基础的条件判断(Level_1检查密码权限)到复合条件(Level_2的VIP判断),再到多条件组合(Level_3的登录验证),逐步深入。后续练习(Level_4-6)演示了区间判断(10≤val≤20)、三态判断(正/负/零)以及参数比较等场景,每例均包含汇编代码片段和对应的C语言还原,揭示了汇编指令(jmp/je/jg等)与高级语言控制结构的对应关系。

2026-05-29 18:46:12 202

原创 X86反汇编:破茧成蝶 —— 赤裸逻辑与机械之心(1-1)

这篇文章通过三个代码示例,深入浅出地讲解了C语言条件语句在汇编层面的实现原理。从Level_1的简单if语句(比较输入值是否为666),到Level_2的if-else结构(判断分数是否及格),再到Level_3的多条件判断(区分优秀、及格和挂科),作者逐步展示了汇编语言中cmp比较指令和jmp跳转指令的配合使用。文章特别强调了分支跳转时的两种关键跳转:条件不满足时的"踢走跳转"和条件满足后的"强制离场跳转"。

2026-05-29 18:45:20 383

原创 函数战争:内存领地的争夺与撤退

讲解函数栈帧的创建和销毁,希望大家能在进入真正反汇编之前夯实基础。

2026-05-28 20:12:15 207

原创 汇编指令与底层操作核心课程

本文介绍了汇编语言中常用的基础指令及其功能,包括MOV、ADD、SUB、INC、DEC、LEA和XCHG。重点讲解了MOV指令在寄存器与内存间的数据传输规则,32位/16位/8位寄存器的结构及用途。此外,还详细说明了LEA与MOV的区别、XCHG交换操作数的机制,并通过具体案例演示了各指令的用法。调试相关快捷键(如F9断点、F5运行等)也有提及,为汇编初学者提供了实用参考。

2026-05-28 20:08:02 504

原创 C++_多态

本文系统讲解了C++多态的核心概念与实现机制。主要内容包括:1)多态的定义及构成条件(虚函数+重写);2)虚函数表原理与多态实现机制;3)抽象类与接口继承;4)重载、重写与隐藏的区别;5)C++11的override和final关键字。重点剖析了虚函数表在多态中的作用,以及派生类如何通过重写基类虚函数实现运行时多态。同时强调了虚析构函数的必要性,并对比了不同继承方式的特点。全文通过代码示例和内存图示,深入浅出地阐释了多态这一面向对象编程的核心特性。

2026-05-27 19:48:43 405

原创 C++_继承

本文摘要: 面向对象继承机制是代码复用的重要手段,允许在基类基础上扩展功能生成派生类。主要内容包括:继承概念与定义(public/protected/private继承方式及访问权限变化);基类与派生类对象间的赋值转换(派生类可切片赋值给基类);继承中的作用域规则(同名成员隐藏);派生类默认成员函数的生成规则(需调用基类对应函数);继承与友元的关系(友元不可继承);菱形继承问题及虚拟继承解决方案。最后总结了继承的优缺点,指出合理使用继承能提高代码复用性,但需避免过度设计带来的复杂性。

2026-05-27 19:47:44 759

原创 C语言_俄罗斯方块

本文介绍了一个基于C语言的控制台俄罗斯方块游戏实现。项目通过手动管理内存和绘制逻辑,追求高效的渲染性能。核心内容包括:1) 使用Windows API控制光标和界面渲染;2) 采用结构体存储游戏状态(棋盘、方块位置、分数等);3) 实现碰撞检测、方块旋转和消行逻辑;4) 提供键盘控制功能(移动、旋转、加速下落)。代码结构清晰,包含Tetris.h头文件定义和Tetris.c功能实现,展现了底层编程对内存和性能的精确控制。

2026-05-26 18:53:51 100

原创 C语言_贪吃蛇

本文介绍了一个基于C语言的贪吃蛇游戏实现方案。通过结构体设计游戏核心元素(蛇、食物、分数等),实现了游戏初始化、画面渲染、蛇移动控制、食物碰撞检测等核心功能。关键代码包括:使用方向键控制蛇移动方向,蛇身坐标更新逻辑,随机生成食物位置,以及碰撞检测(围墙和自身)。游戏界面简洁,包含分数显示和操作提示,通过控制台API实现光标隐藏和定位功能。该实现展示了基础游戏开发的核心逻辑和数据结构应用。

2026-05-26 18:52:24 394

原创 C++_List_调用及模拟实现

本文主要介绍了C++中list容器的使用及其模拟实现。首先讲解了list的基本操作如reverse、sort、splice等,并通过实验对比了list与vector在排序效率上的差异。随后详细剖析了list的底层实现,包括节点类设计、迭代器实现、常用成员函数(push_back、pop_back、insert、erase等)的模拟,以及拷贝构造、赋值运算符等核心功能。特别强调了const和非const迭代器的实现差异及合并方法,最后通过swap优化了赋值操作。

2026-05-26 18:50:27 559

原创 C++_vector_调用及模拟实现

本文介绍了C++中vector容器的基本使用和模拟实现。主要内容包括:1. vector的基本功能介绍,如resize、reserve等操作的使用方法及注意事项;2. 通过杨辉三角案例展示vector嵌套结构的应用;3. 详细讲解了vector的模拟实现过程,包括构造函数、析构函数、size()、capacity()等基础成员函数,以及push_back()、insert()、erase()等核心操作的实现细节;4. 重点分析了reserve()的深拷贝问题和insert()的迭代器失效问题。

2026-05-25 22:28:48 907

原创 C++_string类_调用及模拟实现

本文介绍了C++中string类的学习要点,主要包括:1) 为什么要学习string类,对比C语言字符串操作的不足;2) string类的常用接口和操作方法,如构造、拷贝、赋值、容量操作等;3) 字符串的遍历方式,包括下标访问、迭代器、反向迭代器等;4) 字符串修改操作,如插入、替换、追加等。通过多个代码示例演示了string类的实际应用,包括字符串反转、查找唯一字符、扩容观察等。文章还比较了C风格字符串与string类的区别。

2026-05-25 22:27:32 397

原创 C++_STL简介(了解)

STL(standard template libaray-标准模板库):是C++标准库的重要组成部分,不仅是一个可复用的组件库,而且是一个包罗数据结构与算法的软件框架。

2026-05-24 15:33:57 352

原创 C/C++内存管理

本文摘要: C/C++内存管理专题,主要讲解内存分布、动态内存管理方式及实现原理。内容涵盖:1) C/C++内存分区(栈、堆、数据段、代码段)及变量存储位置判断;2) C语言动态内存管理函数(malloc/calloc/realloc/free)的区别与原理;3) C++新增的new/delete操作符,对比malloc/free在自定义类型处理上的优势(自动调用构造/析构函数);4) 通过链表实现案例演示new/delete的实际应用;5) 底层机制operator new/delete函数的作用。重点比

2026-05-24 15:32:43 520

原创 C++_类和对象(下)

本章内容重点学习友元以及内部类的使用,也让我们对于类会有一个更加深入的理解。也会让我们对于后面的学习有一个坚实的基础。

2025-04-05 20:19:58 1422

原创 C++_类和对象(中)

本章内容我们重点引入了类的六大默认成员函数:构造、拷贝、析构、赋值以及取地址及const取地址操作符重载。

2025-04-05 20:15:59 1273

原创 C++_类和对象(上)

本章内容引入了类的概念,学习类的定义以及作用域,再后面学习类的示例、学会计算类的大小、引入this指针的概念。学习完以后让我们对类有一个简单的了解,后续的章节我们会继续深入类的学习。

2025-04-05 20:14:19 854

原创 C++入门

本章节内容主要是从C语言到C++学习做一些前期知识储备,从而可以平滑过渡到C++的学习中。

2025-04-04 13:45:46 721

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除