【透明这么写一用就停止工作】
void 透明call(int 触发基址, int 无敌开关)
{
//LPVOID 空白地址 = (LPVOID*)calloc(100, sizeof(LPVOID));
__asm
{
//mov eax, dword ptr ds : [空白地址]
mov ecx, 触发基址
mov esi, ecx
push - 1
push 1
push 无敌开关
push 1
mov edx, 无敌CALL //无敌call
//push eax
call edx
}
//free(空白地址);
}
int 读整数(int address)
{
LPVOID 返回数据;
SIZE_T length = 4;//长度
//hProcess = GetCurrentProcess(); //打开当前进程
HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, (DWORD)pid);//PROCESS_VM_READ
int abb;
abb = ReadProcessMemory(hProcess, (LPCVOID)address, &返回数据, length, FALSE);//内存读整数
CloseHandle(hProcess);
return (int)返回数据;
}
int main(){
HWND hWnd = FindWindow(TEXT("地下城与勇士"), TEXT("地下城与勇士"));//定义DNF的窗口句柄和类名
GetWindowThreadProcessId(hWnd, &pid);//获取DNF进程句柄
HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pid);//打开DNF进程 提升权限
透明call(读整数(人物基址), 1);
}
void 透明call(int 触发基址, int 无敌开关)
{
//LPVOID 空白地址 = (LPVOID*)calloc(100, sizeof(LPVOID));
__asm
{
//mov eax, dword ptr ds : [空白地址]
mov ecx, 触发基址
mov esi, ecx
push - 1
push 1
push 无敌开关
push 1
mov edx, 无敌CALL //无敌call
//push eax
call edx
}
//free(空白地址);
}
int 读整数(int address)
{
LPVOID 返回数据;
SIZE_T length = 4;//长度
//hProcess = GetCurrentProcess(); //打开当前进程
HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, (DWORD)pid);//PROCESS_VM_READ
int abb;
abb = ReadProcessMemory(hProcess, (LPCVOID)address, &返回数据, length, FALSE);//内存读整数
CloseHandle(hProcess);
return (int)返回数据;
}
int main(){
HWND hWnd = FindWindow(TEXT("地下城与勇士"), TEXT("地下城与勇士"));//定义DNF的窗口句柄和类名
GetWindowThreadProcessId(hWnd, &pid);//获取DNF进程句柄
HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pid);//打开DNF进程 提升权限
透明call(读整数(人物基址), 1);
}