c++编写dnf外挂部分代码(二)
essMemory(handle,(LPVOID)((int)newaddr+15),(LPVOID)&Jmp2,4,NULL);
//写入跳回地址jmp 0060C6A6
CloseHandle(handle);
[CODE]
若果不想用此功能,可将源代码写回0060C6A0
代码:
HWND hwnd = ::FindWindow(NULL,"地下城与勇士");
if (!hwnd)
{
MessageBox("请先运行游戏!");
return;
}
DWORD processid;
::GetWindowThreadProcessId(hwnd,&processid);
HANDLE handle = OpenProcess(PROCESS_ALL_ACCESS,false,processid);
::WriteProcessMemory(handle,(LPVOID)0x0060C6A0,(LPVOID)&m_char,6,NULL);
//写回我们改写的6个字节,之前已经保存在了类成员变量中
VirtualFreeEx(handle,m_newmem,NULL,0x256);
//释放内存,可有可无
如果你对此感兴趣,还可以设置一个编辑框,关联类成员变量后动态输入数字来修改当前血量,还可以编写动态链接库创建全局钩子实现在仓库按Home键呼出外挂界面并且按F2实现功能的开启与关闭,对DC使用熟练还可以美化用户界面,一个简单的C++DNF外挂就编写好了。
友情提醒:
如果你一直开着此功能刷图,掉线率达90%以上,如果要投入使用,请不要一直开启,而且可以将MOV [ESP +4],9999改成add [esp+4],XXX等等实现比较稳定的功能,这里不再赘述。
曾经怀疑出小三是因为有dnf代码校验,后来测试了一下一直手动修改堆栈值还是掉线,看来DNF不是检测的代码来判定小三的。
文中代码新建MFC添加按钮后直接复制可用,我不提供EXE文件下载