如何得到其他进程里MSFlexGridWndClass表格控件里的内容 急问,CMsFlexGrid * pGrid=(CMSFlexGrid*)FromHandle(hGridWnd);这样行不行 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这样当然不行,向目标进程插入一个DLL? 向目标进程插入一个DLL?老大,你也不能确定线程注入可行吗?为什么打个?号 使用进程间通讯机制:1) A/B PROCESS之间内存文件共享的方式:A PROCESS发送消息到B,B接到后将GRID的内容写入共享内存区域,然后A读取B写入的数据即可2)SOCKET:A通过SOCKET发送命令到B,B得到本身的数据,返回数据到A3) 其它管道/等方式 #include "tlhelp32.h"#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE[] = __FILE__;#endif//注入代码。#pragma comment(lib,"th32.lib")const char *pkill="F:\\mydoc\\vcsrc\\GetScreenTable\\Debug\\HookTable.dll"; BOOL g_bStart = FALSE;HINSTANCE g_hInst = NULL;char *prosess="机械设计手册(软件版)R2.0.exe"; //要注入的进程名(目标进程名)int install(){ HANDLE hSnap; HANDLE hkernel32; //被注入进程的句柄 PROCESSENTRY32 pe; BOOL bNext; HANDLE hToken; TOKEN_PRIVILEGES tp; LUID Luid; LPVOID p; FARPROC pfn; if (!OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES|TOKEN_QUERY,&hToken)) { return 1; } if (!LookupPrivilegeValue(NULL,SE_DEBUG_NAME,&Luid)) { return 1; } tp.PrivilegeCount = 1; tp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED; tp.Privileges[0].Luid = Luid; if (!AdjustTokenPrivileges(hToken,0,&tp,sizeof(TOKEN_PRIVILEGES),NULL,NULL)) { return 1; } pe.dwSize = sizeof(pe); hSnap=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); bNext=Process32First(hSnap, &pe); while(bNext) { if(!stricmp(pe.szExeFile,prosess)) //--->> { hkernel32=OpenProcess(PROCESS_CREATE_THREAD|PROCESS_VM_WRITE|PROCESS_VM_OPERATION,1,pe.th32ProcessID); break; } bNext=Process32Next(hSnap, &pe); } CloseHandle(hSnap); p=VirtualAllocEx(hkernel32,NULL,strlen(pkill),MEM_COMMIT,PAGE_READWRITE); WriteProcessMemory(hkernel32,p,pkill,strlen(pkill),NULL); pfn=GetProcAddress(GetModuleHandle("kernel32.dll"),"LoadLibraryA"); CreateRemoteThread(hkernel32,NULL,0,(LPTHREAD_START_ROUTINE)pfn,p,NULL,0); return 0;} MFC 基于基本对话框的用ODBC如何修改数据库中的记录,求大侠指点 大家来说说自已喜欢的命名习惯 跪求从西门子手机模块TC35T中读取短信的代码! 菜单加载了以后所有菜单项都变成灰的了? 丑陋的Tcl!!!!!! 如何改变打印纸默认方向 cin出了什么问题? 有没有现成的vc控件生成xml文档? 图像文件格式的转换!!!!!!!!!!! 为什么在本机运行release中的exe有flash,但copy到另一台机子就没flash?????这要如何 内存一直增加 急!!!我创建的dialog工程中为什么看不到WM_ERASEBKGND这个消息呢?OnEraseBkgnd是怎么加进去的
老大,你也不能确定线程注入可行吗?为什么打个?号
1) A/B PROCESS之间内存文件共享的方式:A PROCESS发送消息到B,B接到后将GRID的内容写入共享内存区域,然后A读取B写入的数据即可
2)SOCKET:A通过SOCKET发送命令到B,B得到本身的数据,返回数据到A
3) 其它管道/等方式
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif//注入代码。
#pragma comment(lib,"th32.lib")
const char *pkill="F:\\mydoc\\vcsrc\\GetScreenTable\\Debug\\HookTable.dll";
BOOL g_bStart = FALSE;
HINSTANCE g_hInst = NULL;char *prosess="机械设计手册(软件版)R2.0.exe"; //要注入的进程名(目标进程名)int install()
{
HANDLE hSnap;
HANDLE hkernel32; //被注入进程的句柄
PROCESSENTRY32 pe;
BOOL bNext;
HANDLE hToken;
TOKEN_PRIVILEGES tp;
LUID Luid;
LPVOID p;
FARPROC pfn;
if (!OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES|TOKEN_QUERY,&hToken))
{
return 1;
}
if (!LookupPrivilegeValue(NULL,SE_DEBUG_NAME,&Luid))
{
return 1;
}
tp.PrivilegeCount = 1;
tp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
tp.Privileges[0].Luid = Luid;
if (!AdjustTokenPrivileges(hToken,0,&tp,sizeof(TOKEN_PRIVILEGES),NULL,NULL))
{
return 1;
}
pe.dwSize = sizeof(pe);
hSnap=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
bNext=Process32First(hSnap, &pe);
while(bNext)
{
if(!stricmp(pe.szExeFile,prosess)) //--->>
{
hkernel32=OpenProcess(PROCESS_CREATE_THREAD|PROCESS_VM_WRITE|PROCESS_VM_OPERATION,1,pe.th32ProcessID);
break;
}
bNext=Process32Next(hSnap, &pe);
}
CloseHandle(hSnap);
p=VirtualAllocEx(hkernel32,NULL,strlen(pkill),MEM_COMMIT,PAGE_READWRITE);
WriteProcessMemory(hkernel32,p,pkill,strlen(pkill),NULL);
pfn=GetProcAddress(GetModuleHandle("kernel32.dll"),"LoadLibraryA");
CreateRemoteThread(hkernel32,NULL,0,(LPTHREAD_START_ROUTINE)pfn,p,NULL,0);
return 0;
}