HOOK代码的疑问
源代码在图上疑问的是
Data = 指针到字节集 (参数_原地址, 5) + { 233, 0, 0, 0, 0 }
pData = lstrcpyn (Data, Data, 0)
写到内存 (到整数 (参数_原地址 - pData - 5), pData + 6, 4)
这三句代码是啥意思,data是啥,取pdata的指针又是为啥?写到内存就更不懂了,第一个参数我理解为jmp跳转的偏移计算,那么pdata+6是啥意思?4又是啥。
希望有大牛解惑。 图看不清这有代码由于手机复制粘贴所以代码层次不分明望理解
Hook 整数型 只支持5字节HOOK
参数名 类 型 参考 可空 数组 备 注
参数_原地址 整数型
参数_新地址 整数型 为空 卸载HOOK
变量名 类 型 静态 数组 备 注
pData 整数型 -4
Data 字节集
dwOldProtect 整数型
如果真 (是否为空 (参数_新地址))
VirtualProtect (参数_原地址, 5, 64, dwOldProtect)
写到内存 (Data, 参数_原地址, 5)
VirtualProtect (参数_原地址, 5, dwOldProtect, dwOldProtect)
返回 (1)
Data = 指针到字节集 (参数_原地址, 5) + { 233, 0, 0, 0, 0 }
pData = lstrcpyn (Data, Data, 0)
写到内存 (到整数 (参数_原地址 - pData - 5), pData + 6, 4)
VirtualProtect (参数_原地址, 5, 64, dwOldProtect)
写到内存 ({ 233 } + 到字节集 (到整数 (参数_新地址 - 参数_原地址 - 5)), 参数_原地址, 5)
VirtualProtect (参数_原地址, 5, dwOldProtect, dwOldProtect)
返回 (pData)
DLL命令名 返回值类型 公开 备 注
VirtualProtect 整数型
DLL库文件名:
kernel32.dll
在DLL库中对应命令名:
VirtualProtect
参数名 类 型 传址 数组 备 注
lpAddress 整数型
dwSize 整数型
flNewProtect 整数型
lpf撸啊撸dProtect 整数型
DLL命令名 返回值类型 公开 备 注
lstrcpyn 整数型
DLL库文件名:
kernel32.dll
在DLL库中对应命令名:
lstrcpynA
参数名 类 型 传址 数组 备 注
lpString1 字节集
lpString2 字节集
iMaxLength 整数型
建议看基础课。。? jghfdjfghkjfghkfjkj
页:
[1]