[安全实战]逆向工程核心名词详解

逆向工程核心名词详解

一、调试与执行类

1. 断点(Breakpoint)

  • 定义:在代码中设置标记,使程序执行到此处时暂停
  • 类型
    • 普通断点 :通过INT3指令实现
    • 条件断点:满足特定条件时触发
    • 内存断点:监控指定内存区域的读写操作
    • 硬件断点:利用CPU调试寄存器(DR0-DR3)

2. 步进(Step Over/Into)

  • Step Over

    • 逐行执行代码,跳过函数内部逻辑
    • 示例:调试printf()时不进入C标准库源码
  • Step Into

    • 进入被调用函数的内部实现
    • 示例:分析自定义函数CalculateDamage()的算法

3. 调用栈(Call Stack)

  • 定义:记录函数调用关系的动态数据结构
  • 特征
    • 后进先出(LIFO)结构
    • 每个栈帧包含参数、返回地址、局部变量
    • 通过EBP寄存器访问当前栈帧

二、内存操作类

4. 游戏基址(Game Base Address)

  • 核心概念:程序模块加载到内存的起始地址
  • 技术难点
    • ASLR(地址空间随机化)导致基址动态变化

    • 静态基址特征:

      cpp 复制代码
      // Unity引擎常见基址
      GameAssembly.dll + 0x00123456

5. 偏移(Offset)

  • 定义:相对于基址的地址位移量

  • 层级结构

    复制代码
    最终地址 = [[基址 + 偏移1] + 偏移2] + 偏移3
  • 寻址类比

    类似GPS导航:从市中心(基址)出发,向东走500米(偏移1),再向北300米(偏移2)

6. 指针(Pointer)

  • 本质:存储内存地址的特殊变量

  • 多级指针

    cpp 复制代码
    int** ppValue = &pValue;  // 二级指针
  • 内存模型

    复制代码
    指针变量 → 地址A → 地址B → 目标数据

三、数据结构类

7. 栈(Stack)

  • 操作特性

    • PUSH:压入数据,ESP减4(32位系统)
    • POP:弹出数据,ESP加4
  • 函数调用原理

    assembly 复制代码
    ; 典型调用过程
    push 参数3
    push 参数2
    push 参数1
    call 函数地址

8. 堆(Heap)

  • 对比栈

    特性
    管理方式 编译器自动分配释放 程序员手动管理
    分配速度
    内存碎片 可能产生
    典型应用 局部变量 动态内存分配

四、汇编核心类

9. 寄存器(Register)

  • 通用寄存器

    寄存器 特殊用途 示例指令
    EAX 函数返回值存储 mov eax, [ebp+8]
    ECX 循环计数器 loop 标签
    EDX I/O端口操作 out dx, eax
    ESP 始终指向栈顶 push/pop
  • 标志寄存器(EFLAGS)

    标志位 触发条件 应用场景
    ZF 运算结果为0 jz/jnz跳转
    CF 无符号运算溢出 进位判断
    OF 有符号运算溢出 溢出异常处理

10. 常见汇编指令

指令 功能说明 典型应用场景
MOV 数据传送 mov eax, ebx
LEA 加载有效地址 lea eax, [ebx+4]
CMP 比较操作数 cmp eax, 10
JMP 无条件跳转 jmp 0x401000
CALL 调用子程序 call printf
RET 函数返回 ret 4

五、逆向工具类

11. CheatEngine关键功能

  • 地址扫描三阶段

    1. 首次扫描:精确数值匹配
    2. 变化筛选:数值增加/减少过滤
    3. 指针扫描:建立地址关联链
  • 内存修改技巧

    python 复制代码
    # 典型修改流程
    if 找到目标地址:
        冻结数值 → 防止游戏重置
        锁定数值 → 持续保持特定值

12. 反汇编(Disassembly)

  • 核心价值:将机器码转换为可读汇编代码

  • 工具对比

    工具 特点
    IDA Pro 支持多架构,交互式分析
    Ghidra 开源逆向框架,NSA开发
    OllyDbg 动态调试利器,适合Windows程序

六、扩展概念

13. Hook技术

  • 定义:劫持程序执行流程的技术
  • 类型
    • Inline Hook:修改函数入口指令
    • IAT Hook:修改导入地址表
    • SSDT Hook:内核级系统服务表劫持

14. 内存分页(Memory Paging)

  • 关键机制

    • 4KB分页单位(x86架构)
    • CR3寄存器控制页表基址
  • 逆向意义

    cpp 复制代码
    // 虚拟地址转物理地址
    物理地址 = 页目录[DIR]→页表[TABLE]→页内偏移[OFFSET]

附:逆向工程学习路径图
基础阶段 掌握调试工具 理解PE文件结构 动态分析能力 静态分析能力 实战项目 外挂开发 漏洞挖掘

如果本教程帮助您解决了问题,请点赞❤️收藏⭐关注支持!欢迎在评论区留言交流技术细节!欲了解更深密码学知识,请订阅《密码学实战》专栏 → 密码学实战

相关推荐
BullSmall4 小时前
第三方软件安全-Dependency‑Track Docker 部署
安全·docker·容器
AImatters4 小时前
国产算力底座,支撑油气储运数字化迈过关键分水岭
安全·cpu·算力·海光·油气储运
叠叠乐7 小时前
中国移动家庭云电脑window关闭所有安全脚本
安全
Jmyd01238 小时前
实训室的 3D 模型涉及肖像文物,数据安全与合规怎么做?
安全·3d·数据安全·虚拟实训
芯盾时代8 小时前
《金融业网络安全管理办法(征求意见稿)》全条款深度拆解(三)
网络·安全·网络安全
敢敢是只喵i8 小时前
一个本地 AI Agent 要操作多个门店或 SaaS 账号,应该怎样安全切换身份?
人工智能·安全·ai·系统架构·业界资讯
Acrel12349 小时前
DC800V 大规模落地,算力机房安全该如何保障
安全
其实防守也摸鱼10 小时前
权限提升与横向移动:从内网渗透到域控的完整技术图谱
运维·服务器·数据库·安全·github·copilot·渗透
深圳海导科技10 小时前
资产防盗追踪系统:物联网高价值资产安全管理|海导科技navynav
科技·物联网·安全
波多利希最高礼仪的握力器10 小时前
安全复制SCP
linux·服务器·安全