|
my_MessageBoxA | 整数型 | |
|
hWnd | 整数型 | | | |
lpText | 文本型 | | | | lpCaption | 文本型 | | | | uType | 整数型 | | | |
变量名 | 类 型 | 静态 | 数组 | 备 注 |
回溯 | 整数型 | | |
count | 整数型 | | |
i | 整数型 | | |
BaseAddress | 整数型 | | |
ModuleHnadle | 整数型 | | |
ModuleName | 文本型 | | |
输出 | 文本型 | | |
输出文本内容 | 文本型 | | |
文件路径 | 文本型 | | |
文件号 | 整数型 | | |
ApiHook.
StopHook () 回溯 =
申请内存 (32,
真)count =
Call_ (RtlWalkFrameChain_, 回溯, 32, 0
) 输出文本内容 =
#换行符 +
#换行符 输出文本内容 = 输出文本内容 +
到文本 (时间_格式化2 (取现行时间 ())
) +
#换行符 +
“层数:” +
到文本 (count
)
计次循环首 (count, i
)
BaseAddress =
Read (回溯 �
�� (i - 1
) × 4
)
取模块句柄 (GetCurrentProcess (), BaseAddress, ModuleHnadle, ModuleName
)
输出 =
取空白文本 (255
)
Call_ (wsprintfA_,
取文本指针 (输出
),
取文本指针 (“%s + %08X”),
取文本指针 (ModuleName
),
选择 (ModuleName =
“??”, BaseAddress, BaseAddress - ModuleHnadle
))

输出文本内容 = 输出文本内容 + 输出 +
#换行符
计次循环尾 ()文件路径 =
取运行目录 () +
“\MessageBoxA_堆栈.txt”
如果真 (文件是否存在 (文件路径
) =
假)
写到文件 (文件路径,
{ })文件号 = 打开文件 (文件路径, , )移到文件尾 (文件号
)写文本行 (文件号, 输出文本内容
)关闭文件 (文件号
)程序_重启 () ApiHook.
BeginHook ()返回 (0
)