增强APIHook类模块

易语言 2020-07-19 18:15:13

增强APIHook类模块

.子程序 MywsprintfA1, 整数型, , 用来测试强制C方式调用以及多参数Hook传递错误。注意,当测试本Hook时,请注释掉 _演示窗口_创建完毕 内的代码,否则该函数会被反复调用哦
.参数 参数1, 整数型
.参数 参数2, 整数型
.参数 参数3, 整数型
.参数 参数4, 整数型
.参数 参数5, 整数型
.参数 参数6, 整数型
.参数 参数7, 整数型
.参数 参数8, 整数型
.参数 参数9, 整数型
.参数 参数10, 整数型
.局部变量 ret, 整数型
.局部变量 tempwenben, 文本型

.如果真 (指针取文本 (参数1) ≠ “”)
输出调试文本 (到文本 (参数1) + 指针取文本 (参数1))
.如果真结束
.如果真 (指针取文本 (参数2) ≠ “%d”)
输出调试文本 (到文本 (参数2) + 指针取文本 (参数2))
.如果真结束
.如果真 (指针取文本 (参数2) = “%s是%d”)
tempwenben = “%s是%d被Hook处理了哦!”
参数2 = API_lstrcpynA_文本 (tempwenben, tempwenben, 0)
.如果真结束
.如果真 (指针取文本 (参数2) = “%s是xxxxxxxxxxxxxxx%d”)
tempwenben = “%s是0.0.0.0.0.0.0%d被Hook处理了哦!”
参数2 = API_lstrcpynA_文本 (tempwenben, tempwenben, 0)
.如果真结束
' 如果真 (指针取文本 (参数3) ≠ “”) ' 为什么呢?从参数3开始就会出错,如果不能获取参数,Hook就没多大意义了吧??可能获取方式有问题?你自己研究吧。对了,另外发现,貌似如果用“指针到文本”还不如下面的“指针取文本”安全 = = 肿么回事捏。。。
' 输出调试文本 (到文本 (参数3) + 指针取文本 (参数3))
' 这里本来是为了测试这个内置的“HookwsprintfA.调用原函数 ”功能。可以正常用,但是这个函数 wsprintfA 获取参数有问题,没找到解决办法。
ret = HookwsprintfA.调用原函数 (参数1, 参数2, 参数3, 参数4, 参数5, 参数6, 参数7, 参数8, 参数9, 参数10) ' 这个函数参数个数不一定,我只用了4个参数,这里传递10个也没造成问题
' 汇编动态调用函数 (HookwsprintfA.新函数头 (), , ret, 参数1, 参数2, 参数3, 参数4) ' 这个是用外部子程序配合的