Windows逆向工程入门之MASM字符处理机制
- 公开视频 -> 链接点击跳转公开课程
- 博客首页 -> 链接点击跳转博客主页
目录
一、MASM字符编码体系深度解析
1. 多层编码支持架构
编码转换关键技术:
2. 字符串存储优化策略
内存优化特征:
二、逆向工程中的字符串特征识别
1. 字符串解密模式识别
典型加密算法特征:
2. 格式化字符串漏洞挖掘
漏洞利用模式:
三、系统级字符串操作分析
1. Windows API调用跟踪
关键函数Hook技术:
API调用特征:
一、MASM字符编码体系深度解析
1. 多层编码支持架构
; ANSI编码示例
ansi_str BYTE "中文",0
; UTF-8编码处理
utf8_str BYTE 0E4B8ADh, 0E69687h,0 ;
; UTF-16LE编码实现
unicode_str WORD 0x2D4E, 0x8765, 0 ;
编码转换关键技术:
- 代码页动态切换:
invoke SetConsoleCP, 65001 ; 设置控制台为UTF-8模式 invoke WideCharToMultiByte, 65001, 0, unicode_str, -1, 0, 0, 0, 0
2. 字符串存储优化策略
; 池化字符串技术
STRING_POOL SEGMENT READ SHARED
HelloStr BYTE "Hello World",0
FormatStr BYTE "%s %d",0
STRING_POOL ENDS
内存优化特征:
- 相同字符串地址复用检测(通过
/GF
编译选项启用) - 只读段(.rdata)与可写段(.data)分离存储
二、逆向工程中的字符串特征识别
1. 字符串解密模式识别
典型加密算法特征:
; RC4加密流程
mov ecx, str_len
decrypt_loop:
lodsb
xor al, [key+ecx]
stosb
loop decrypt_loop
- 识别特征:
- 循环结构中的XOR/ADD/ROL指令
- 密钥调度函数中的256字节初始化
2. 格式化字符串漏洞挖掘
vuln_func proc
push offset user_input
call printf ; 危险调用点
add esp, 4
ret
vuln_func endp
漏洞利用模式:
- 内存读写测试:
printf("%08x.%08x.%08x..."); // 栈数据泄露
- GOT表覆写攻击:
payload = b"%%%dc%%hn" % (target_value) # 精确地址写入
三、系统级字符串操作分析
1. Windows API调用跟踪
关键函数Hook技术:
; Detours库函数拦截
mov eax, Real_lstrcpyA
mov Detour_lstrcpyA, eax
mov Real_lstrcpyA, offset My_lstrcpyA
API调用特征:
函数名称 | 参数约定 | 危险等级 |
---|---|---|
lstrcat | stdcall | 高危 |
StringCchCopy | stdcall | 安全 |
wsprintf | cdecl | 中危 |