遊戲加速外掛程式分析以及製作

2021-04-19 22:11:04 字數 1468 閱讀 7703

原理:加速外掛程式其實是修改時鐘頻率達到加速的目的

首先我們建立乙個過程,這個過程就是本程式的核心部份:

procedure setring(value:word); stdcall;

const zdh = 03; // 設乙個中斷號

var

idt : array [0..5] of byte; // 儲存idt表

og : dword; //存放舊向量

begin

asm

push ebx

sidt idt //讀入中斷描述符表

mov ebx, dword ptr [idt+2] //idt表基位址

add ebx, 8*zdh //計算中斷在中斷描述符表中的位置

cli //關中斷

mov dx, word ptr [ebx+6]

shl edx, 16d

mov dx, word ptr [ebx]

mov [og], edx

mov eax, offset @@ring0 //指向ring0級**段

mov word ptr [ebx], ax //低16位,儲存在1,2位

shr eax, 16d

mov word ptr [ebx+6], ax //高16位,儲存在6,7位

int zdh //中斷

mov ebx, dword ptr [idt+2] //重新定位

add ebx, 8*zdh

mov edx, [og]

mov word ptr [ebx], dx

shr edx, 16d

mov word ptr [ebx+6], dx //恢復被改了的向量

pop ebx

jmp @@exitasm //到exitasm處

@@ring0: //ring0,這個也是最最最核心的東東

mov al, 34 //寫入8253控制暫存器

out 43,al

mov ax,value //寫入定時值

out 40,al //寫定時值低位

mov al,ah

out 40,al //寫定時值高位

iretd //返回

@@exitasm:

end;

end;

下面我們就試著用一下這個過程來做乙個類似於「變速齒輪」的乙個東東吧!

先加乙個視窗,在視窗上放上乙個trackbar控制項把其max設為20,min設為1,把position設為10,在這個控制項的change事件裡寫上:

setring(strtoint(' '+inttostr(1742+(10-trackbar1.position)*160)));

因為windows預設的值為 1742,所以我們把1742做為基數,又因為值越小越快,反之越慢的原理,所以寫了這樣乙個公式,好了,這就是「變速齒輪」

遊戲外掛程式分析

這個動態連線庫的作用很大,不要低估了哦,它可以切入所有的程序空間,也就是可以載入到所有的遊戲裡面哦,只要用對,你會發現很有用途的 這個需要你複習一下win32程式設計的基礎知識了,呵呵,趕快去看書吧 2截獲訊息 有些遊戲的響應機制比較簡單,是基於訊息的,或者用什麼定時器的東西,這個時候你就可以用攔截...

遊戲加速外掛程式的原理是什麼 ?

加速類輔助會對遊戲平衡造成極大的破壞,這類輔助會通過hook api的方式來達到修改遊戲對時間判斷的目的,一般情況下,在r3層,這類輔助會在 queryperformancecounter timegettime gettickcount 這三個api上hook,修改他們的返回值。獲取 cpu 效能...

網頁遊戲外掛程式分析及防範

最近在開發社群版網頁遊戲,其實在整個開發過程中碰到了不少問題。而這些問題也被很細心的使用者們發現,並使用外掛程式鑽了空子。例如我在前面曾寫過的一篇部落格 web開發安全守則之永遠不要相信使用者的輸入 中介紹過,因為判斷使用者購買道具時,整個程式遺漏對負數的處理。今天藉著另外乙個外掛程式問題,講講網頁...