千年是一款比较老游戏,是用Delphi语言写的游戏,属于和传奇一个时代的产品。不过在国内的市场份额远远不如传奇。而面临游戏运营方头疼的外挂主要有两类
一类是 加速挂,另一类是自动挂机打材料的挂
这里说到加速挂主要是类似变速齿轮的那种挂和驱动级的游戏守望者电脑整体加速
下面是部分变速齿轮的原理代码
BOOL WINAPI DllMain(HINSTANCE hmodule,DWORD reason, LPVOID lpreserved)
{
if(reason==DLL_PROCESS_ATTACH)// 如果DLL被注入到其他进程,DLL_PROCESS_ATTACH表示注入DLL的时候
{
HMODULE hWsock32=GetModuleHandle("winmm.dll");//获取winmm.dll模块句柄
dwAddrtimeGetTime=(DWORD)GetProcAddress(hWsock32,"timeGetTime");//获取api函数timeGetTime真正的地址
DWORD tmp=(DWORD)MytimeGetTime-(dwAddrtimeGetTime+5);// 假冒的API函数地址的字节(一个4个字节)
//通过字节的形式来代表假冒api函数MytimeGetTime的地址 ,保存到变量tem里面
//公式:假冒的API函数地址的4个字节=My函数地址-(真的函数地址+5)
WriteJMP(dwAddrtimeGetTime,&tmp);//开始HOOK-修改timeGetTime函数头的5个字节
}
if(reason==DLL_PROCESS_DETACH)// 如果DLL被卸载, DLL_PROCESS_DETACH表示卸载DLL的时候
{
UnHOOK(dwAddrtimeGetTime);//卸载HOOK -恢复timeGetTime函数头的5个字节
}
return TRUE;
}
还有自动挂机打材料的挂主要是图色按键挂 和 内存脚本挂。
而大部分的挂都是采用易语言开发。
目前我设计的发外挂系统针对千年游戏中出现的以上两类外挂有很好的作用