郁金香 初级班 知识总结
HANDLE 进程句柄获取() { HWND ifnd = FindWindowA("MainWindow", "植物大战僵尸中文版"); DWORD PID, TID; TID = GetWindowThreadProcessId(ifnd, &PID); HANDLE 全局进程句柄 = OpenProcess(PROCESS_ALL_ACCESS, 0, PID); return 全局进程句柄; } HWND 游戏窗口句柄(){ FindWindowA("GxWindowClassD3d", "魔兽世界"); } DWORD R4(UINT_PTR 地址) { __try { return *(DWORD*)地址;//ReadProcessMemory } __except (1) { return 0; } } int 读内存(UINT_PTR 读地址1) { HANDLE 进程句柄 = 进程句柄获取(); //存储地址数据 unsigned int 返回值 = 0; //读取游戏内存 ReadProcessMemory(进程句柄, (LPCVOID)读地址1, &返回值, 4, NULL); return 返回值; } int 写地址(UINT_PTR 读地址,int 修改值) { HANDLE 全局进程句柄 = 进程句柄获取(); int b=WriteProcessMemory(全局进程句柄, (LPCVOID)读地址, &修改值, 4, NULL); if (b == 0) { printf("修改失败\n"); if (全局进程句柄 == 0) { printf("进程句柄未找到 可能是由于游戏未打开 或者游戏类名或者名字错误\n"); } }; } char 文件路径[] = "C:\\Users\\cxyck\\Desktop\\植物大战僵尸\\1.dll"; void DLL写入() { HWND 窗口句柄 = 0; DWORD pid = 0; HANDLE 进程句柄 = 0; char mu[] = "植物大战僵尸中文版"; 窗口句柄 = FindWindowA(NULL, mu); GetWindowThreadProcessId(窗口句柄, &pid); 进程句柄 = OpenProcess(PROCESS_ALL_ACCESS, 0, pid); void* nj = 0; printf("%p\n", 进程句柄); nj = VirtualAllocEx(进程句柄, NULL, 4 * 1024, MEM_COMMIT, PAGE_READWRITE); printf("%p\n", nj); WriteProcessMemory(进程句柄, nj, 文件路径, 0x555, 0); CreateRemoteThread(进程句柄, 0, 0, (LPTHREAD_START_ROUTINE)LoadLibraryA, nj, 0, 0); printf("%p", nj); } 函数 VirtualAllocEx ---在指定进程的虚拟空间保留或提交内存区域 nj = VirtualAllocEx(进程句柄, NULL, 4 * 1024, MEM_COMMIT, PAGE_READWRITE); WriteProcessMemory---此函数能写入某一进程的内存区域(直接写入会出Access Violation错误),故需此函数入口区必须可以访问,否则操作将失败。 CreateRemoteThread----创建一个新的线程 多了一个进程句柄的参数 跨进程创建线程 CreateThread //创建一个新的线程 MessageBoxA--信息弹窗 AllocConsole显示控制台 FreeConsole();//关闭控制台 {freopen_s(&file,"CONOUT$", "w+t", stdout); //输出重定向CreateFile CreateFileA CreateFileW} 控制台防止卡线程 ::SetTimer---定时器 ::SetTimer(游戏窗口句柄, 10086, 1, 主线代码());//定时器 也可以挂主线程 主线代码中就是挂的主线程代码 ReadProcessMemory--读内存 ReadProcessMemory(进程句柄, (LPCVOID)读地址1, &返回值, 4, NULL); WriteProcessMemory---写内存 WriteProcessMemory(全局进程句柄, (LPCVOID)读地址, &修改值, 4, NULL); FindWindowA 通过窗口标题或者类名 来获取窗口句柄 GetWindowThreadProcessId 获取窗口所在的进程PID OpenProcess 获取目标进程句柄 FreeLibraryAndExitThread //释放DLL并退出当前线程 Sleep 延时
不是很多
本文来自博客园,作者:逆向狗,转载请注明原文链接:https://www.cnblogs.com/Agtw/p/16836842.html

浙公网安备 33010602011771号