hook ()_临时子程序 () 返回 (0
) 变量名 | 类 型 | 静态 | 数组 | 备 注 |
hProcess | 整数型 | | |
pfnhook | 整数型 | | |
fnhook | 字节集 | | |
lw | lwcom | | |
modProcess | MODULEENTRY32 | | 0 |
i | 整数型 | | |
hKernelUtil | 整数型 | | |
hookaddr | 整数型 | | |
hProcess = -1
EnumModule (modProcess, 0
)
计次循环首 (取数组下标 (modProcess,
), i
) 
如果真 (到文本 (modProcess
[i
].szModule
) =
“KernelUtil.dll”)

hKernelUtil = modProcess
[i
].hModule

跳出循环 ()

计次循环尾 ()hookaddr = hKernelUtil +
HEX_to_DEC (“8336A”)pfnhook =
VirtualAlloc (0, 1024,
#MEM_COMMIT, HEX_to_DEC ( #PAGE_EXECUTE_READWRITE )) lw.
Initialize ()lw.
AsmAdd (“pushad”) lw.
AsmAdd (“call ” + lw.
AsmCallret (DEC_to_HEX (pfnhook + 1 - 1
),
DEC_to_HEX (取子程序地址 (&hook2
))
)) lw.
AsmAdd (“popad”)lw.
AsmAdd (“mov [ecx],eax”) lw.
AsmAdd (“mov eax,[ebp+10]”) lw.
AsmAdd (“ret”) fnhook =
HEX_to_Bytes (lw.
AsmCode ())
WriteProcessMemory (hProcess, pfnhook,
取变量数据地址 (fnhook
),
取字节集长度 (fnhook
), 0
) lw.
AsmClear ()lw.
AsmAdd (“call ” + lw.
AsmCallret (DEC_to_HEX (hookaddr
),
DEC_to_HEX (pfnhook
))
) fnhook =
HEX_to_Bytes (lw.
AsmCode ())
WriteProcessMemory (hProcess, hookaddr,
取变量数据地址 (fnhook
),
取字节集长度 (fnhook
), 0
) 变量名 | 类 型 | 静态 | 数组 | 备 注 |
EAX | 整数型 | | |
EBX | 整数型 | | |
EDX | 整数型 | | |
置入代码 ({ 137, 69, 252, 137, 93, 248, 137, 85, 244
}) 子程序1 (EAX, EBX, EDX
) 返回 ()
如果真 (ebx = 5
且 eax ≠ 0
且 edx =
HEX_to_DEC (“A0”))

a =
打开文件 (“C:\Users\asd\Desktop\log.txt”, 2,
)
移到文件尾 (a
)
如果 (eax < 0
)
插入文本行 (a,
“qqNUM:” +
到文本 (2147483647 × 2 + eax + 2
))

插入文本行 (a,
“qqNUM:” +
到文本 (eax
))
关闭文件 (a)返回 ()