.版本 2
.子程序 _按钮1_被单击
.局部变量 phandle, 整数型
.局部变量 lpbuf, 整数型
.局部变量 ret, 整数型
.局部变量 messageaddr, 整数型
.局部变量 hthread, 整数型
.局部变量 sa, SECURITY_ATTRIBUTES
.局部变量 shellcode, 字节集
.局部变量 dwsize, 整数型
.局部变量 m1, 文本型
.局部变量 m2, 文本型
phandle = OpenProcess (2035711, 0, 到整数 (进程ID))
.如果真 (phandle = 0)
信息框 (“打开进程失败!”, 0, )
返回 ()
.如果真结束
messageaddr = API_GetProcAddress (API_GetModuleHandle (“user32.dll”), “MessageBoxA”)
lpbuf = API_VirtualAllocEx (phandle, 0, 100, 4096, 64)
.如果真 (lpbuf = 0)
信息框 (“分配内存失败!”, 0, )
CloseHandle (phandle)
返回 ()
.如果真结束
m1 = “注入成功”
m2 = “aboutme”
shellcode = 到字节集 (m2) + { 0 } + 到字节集 (m1) + { 0 } + { 96, 184 } + 到字节集 (messageaddr) + { 106, 0, 104 } + 到字节集 (lpbuf) + { 104 } + 到字节集 (到整数 (lpbuf + 取文本长度 (m2) + 1)) + { 106, 0, 255, 208, 97, 195, 144 }
dwsize = 取字节集长度 (shellcode)
ret = WriteProcessMemory (phandle, lpbuf, shellcode, dwsize, 0)
.如果真 (ret = 0)
信息框 (“写内存失败!”, 0, )
VirtualFreeEx (phandle, lpbuf, 100, 16384)
返回 ()
.如果真结束
hthread = API_CreateRemoteThread (phandle, sa, 0, lpbuf + 取文本长度 (m1) + 取文本长度 (m2) + 2, 0, 0, 0)
WaitForSingleObject (hthread, -1)
VirtualFreeEx (phandle, lpbuf, 100, 16384)
CloseHandle (hthread)
CloseHandle (phandle)
|