Windows逆向工程入门之MASM整数存储机制

  • 公开视频 -> 链接点击跳转公开课程
  • 博客首页 -> ​​​链接点击跳转博客主页

目录

一、基础数据类型的存储模型

二、内存布局的逆向工程实践


一、基础数据类型的存储模型

1. 字节级存储规则

  • 无符号BYTE

    dbvar4 BYTE 0FFh  ; 存储值:0xFF(二进制补码,十进制255)
    • 内存布局:单字节直接存储
    • 逆向特征:取值范围0x00-0xFF,常用于标志位或ASCII字符
  • 有符号SBYTE

    dbvar5 SBYTE 80h  ; 存储值:0x80(二进制补码,十进制-128)
    dbvar6 SBYTE 7Fh  ; 存储值:0x7F(二进制补码,十进制+127)

2. 字与双字存储规则

  • 小端模式(Little-Endian)验证

    dwvar6 SWORD 1111h,2222h  ; 内存布局:11 11 22 22
    ddvar6 SDWORD 1111h,2222h ; 内存布局:11 11 00 00 22 22 00 00
    • 核心特征:低有效位优先存储
  • 符号边界值存储

    dwvar4 SWORD 7FFFh  ; 有符号最大值+32767
    ddvar5 SDWORD 80000000h  ; 有符号最小值-2,147,483,648
    • 识别模式:
      • 0x7FFF/0x8000模式常见于WORD边界检测
      • 0x7FFFFFFF/0x80000000模式用于DWORD越界检查

3. 四字存储与内存对齐

  • QWORD存储细节
    dqvar1 QWORD 123456789ABCDEFh  
    ; 内存布局:EF CD AB 89 67 45 23 01(x86小端模式)
    • 逆向技巧:
      • 识别连续8字节结构,常见于64位地址或大整数存储

二、内存布局的逆向工程实践

1. 数据段结构重建

  • 典型.data段布局
    00404000: 41 00 00 FF 80 7F 11 22   ; BYTE/SBYTE区域
    00404008: 33 44 ?? ?? FF FF ?? ??   ; 未初始化数据
    00404010: FF 7F 00 80 11 11 22 22   ; WORD/SWORD交叉存储

2. 符号扩展检测技术

  • 隐式符号扩展模式
    movsx eax, byte ptr [ebx]  ; 有符号扩展
    movzx ecx, byte ptr [esi]  ; 无符号扩展
    • 逆向推断:
      • movsx出现暗示操作数为有符号类型
      • movzx标志无符号数据处理

3. 复合数据结构解析

  • 结构体与联合体识别
    PROCESS_INFO STRUCT
      PID    DWORD ?
      Status BYTE ?
      _align BYTE 3 DUP(?)  ; 对齐填充
    PROCESS_INFO ENDS
    • 内存特征:
      00405000: 78 56 34 12 01 ?? ?? ??  ; PID=0x12345678, Status=0x01

你可能感兴趣的:(windows,汇编,逆向,安全,C)