.支持库Extension
// 定义一些变量
字节数据 =
[]目标地址指针 = 0
源地址指针 = 0
目标地址 = "00FAB6FF" // 根据实际情况修改
源地址 = "我的数据包存放地址" // 根据实际情况修改
程序集地址 = "我的程序集" // 根据实际情况修改
// 分配内存(模拟 mov edx, 00FAB6FF)
目标地址指针 =
整数_从十六进制文本 (目标地址
)// 分配内存空间
分配的内存 = API.
分配内存 (目标地址指针, 100
) // 分配 100 字节的内存
源地址指针 =
整数_从十六进制文本 (源地址
)源数据 =
读取内存 (源地址指针, 12
) // 读取 12 字节数据
目标地址指针 =
整数_从十六进制文本 (目标地址
)// 将源数据写入目标地址
API.
写入内存 (目标地址指针, 源数据
)目标地址指针 = 目标地址指针 + 12
// 调整指针(add edx, FFFFFFEe,等同于目标地址指针 - 18)
目标地址指针 = 目标地址指针 +
(-18
)// 调用我的程序集
API.
调用函数 (程序集地址
)// 最后返回
窗口程序集名 | 保 留 | 保 留 | 备 注 |
程序集1 | | | |
变量名 | 类 型 | 数组 | 备 注 |
数据包存放地址 | 字节型 | 12" ' 假设原始数据包存放 |
目标地址 | 字节型 | 30" ' 预留足够空间(12 |
变量名 | 类 型 | 静态 | 数组 | 备 注 |
eax | 整数型 | | |
edx指针 | 整数型 | | |
edx指针 =
取变量数据地址 (目标地址
) + 6 eax = 0
判断循环首 (eax < 12
)

目标地址
[eax + 6
] = 数据包存放地址
[eax
] 
eax = eax + 1
判断循环尾 () edx指针 = edx指针 - 6
我的程序集 (edx指针
)返回 (0
)