.版本 2.程序集 启动窗口.子程序 取窗口文本, 文本型, , GetWindowText
.参数 窗口句柄, 整数型
.局部变量 长度
.局部变量 缓冲, 文本型长度 = 发送消息 (窗口句柄, 14, 0, 0) + 1
缓冲 = 取空白文本 (长度)
发送消息 (窗口句柄, 13, 长度, 缓冲)
返回 (缓冲).子程序 __启动窗口_创建完毕编辑框_微信目录.内容 = 取文本注册项 (#现行用户, “Software\Tencent\WeChat\InstallPath”, ).子程序 _按钮_启动微信_被单击
.局部变量 Path, 文本型
.局部变量 File, 文本型
.局部变量 lpStartupInfo, STARTUPINFO
.局部变量 lpProcessInformation, PROCESS_INFORMATION
.局部变量 Dll, 文本型Dll = 取运行目录 () + “\WeChat_More.dll”
.如果真 (文件是否存在 (Dll) = 假)写到文件 (Dll, #DLL)
.如果真结束
Path = 编辑框_微信目录.内容
File = Path + “\WeChat.exe”
CreateProcessA (File, File, 0, 0, 0, 4, 0, Path, lpStartupInfo, lpProcessInformation)
.如果真 (lpProcessInformation.dwProcessId = 0)返回 ()
.如果真结束
injectDll (lpProcessInformation.hProcess, lpProcessInformation.hThread, Dll)
ZwResumeProcess (lpProcessInformation.hProcess)
CloseHandle (lpProcessInformation.hProcess)
CloseHandle (lpProcessInformation.hThread).子程序 injectDll
.参数 hProcess, 整数型
.参数 hThread, 整数型
.参数 dll, 文本型
.局部变量 CONTEXT, CONTEXT
.局部变量 tmp, 整数型
.局部变量 addr, 整数型
.局部变量 Code, 字节集tmp = VirtualAllocEx (hProcess, 0, 1024, 4096, 64)
CONTEXT.ContextFlags = 65543
ZwGetContextThread (hThread, CONTEXT)
addr = CONTEXT.Eip
CONTEXT.Eip = tmp
Code = { 96, 232, 0, 0, 0, 0, 88, 131, 192, 19, 80, 184 } + 到字节集 (_取函数入口 (“kernel32.dll”, “LoadLibraryA”)) + { 255, 208, 97 } + { 104 } + 到字节集 (addr) + { 195 } + 到字节集 (dll)
WriteProcessMemory_Bin (hProcess, tmp, Code, 取字节集长度 (Code), 0)
ZwSetContextThread (hThread, CONTEXT).子程序 _取函数入口, 整数型
.参数 动态链接库路径, 文本型, , 库名 例:user32.dll
.参数 欲截获的函数名, 文本型, , 函数名 例:GetWindow
.局部变量 hLibModule, 整数型hLibModule = GetModuleHandle (动态链接库路径)
.如果真 (hLibModule = 0)返回 (0)
.如果真结束
返回 (Ams_GetProcAddress (hLibModule, 欲截获的函数名)).子程序 Ams_GetProcAddress, 整数型
.参数 模块句柄, 整数型
.参数 函数名称, 文本型置入代码 ({ 139, 93, 8, 131, 251, 0, 116, 58, 139, 67, 60, 3, 195, 139, 80, 120, 3, 211, 139, 74, 24, 139, 66, 32, 81, 81, 80, 51, 192, 131, 201, 255, 139, 125, 12, 139, 63, 242, 174, 247, 209, 88, 81, 139, 125, 12, 139, 63, 139, 52, 24, 3, 243, 243, 166, 89, 116, 14, 131, 192, 4, 94, 78, 86, 117, 232, 51, 192, 201, 194, 8, 0, 94, 89, 43, 206, 139, 66, 36, 141, 4, 72, 15, 183, 4, 24, 139, 74, 28, 141, 4, 129, 139, 4, 24, 3, 195, 201, 194, 8, 0 })返回 (0)