今天閑來無事,游戲也上不了,就寫點東西吧,很少在濮陽吧里發貼子,今天我也來點貢獻吧,以下內容對於有些人來說,也許很有用,但對於一些不懂裝懂的人來說呢,你不懂就不要亂拍磚,你可以保持沉默,大家都是有文化,有素質的人,對吧。
所謂游戲外掛,其實是一種游戲外輔程序,它可以協助玩家自動產生游戲動作、修改游戲網絡數據包以及修改游戲內存數據等,以實現玩家用最少的時間和金錢去完成功力升級和過關斬將。雖然,現在對游戲外掛程序的“合法”身份眾說紛紜,在這里我不想對此發表任何個人意見,讓時間去說明一切吧。
好了,費話有點多,我今天要說的就是這些年我對於開發游戲外掛,游戲輔助的那么一點點心得和體會,高手請繞道,以下內容是給那些想學開發游戲外掛新手們的。寫的不好不要拍磚,以后我會寫的更好。
我對於技術學習的口號是-----用到的時候在說!
我個人認為要學游戲外掛開發可以分三步:
第一步:掌握一門編程語言
C 、C++ 、 Delphi 、vb、易語言,學會其中一種就可以,不過你C或是C++必須還要在學VC,但我建設你會這個,學這個好處多多。至於匯編這老大哥,先掌握一些常用指令就行,沒有必要精通,但如果你是牛人,能精通那更好。
友情提示:如果這第一步基礎沒打好,那就不要往下學,學也是白學。越學越頭大。
第二步:掌握最基本的調試工具
熟練使用Spy++,Cheat.Engine,ida,ollyice,softice,vc等逆向工程工具。
這些工具不用專門學,調試游戲的時候,一邊調試一邊學,在喊一下口號:用到的時候在說!,別拍磚。
了解常用的API函數:
FindWindow
GetWindowThreadProcessId
OpenProcess
ReadProcessMemory
WriteProcessMemory
這些API的作用我就不多說了,百度更詳細,百度更健康。
這個時候就需要你掌握以下知識點:
1. 什么是基址?
2. 為什么要找基址?
3. 什么是偏移,一級偏移,二級偏移,N級偏移
4. 什么是Call:它又分無參Call,和有參Call
5. 如何調試CALL可能對應的功能?
6. 知道了有參數CALL的參數數據,如何調試CALL效果?
7. 通過“代碼注入器”這個工具來調試CALL效果
8. 能達到CALL效果,但游戲出錯怎么辦?理解什么是堆棧平衡
9. 發送封包的函數都有哪些?OD如何下斷?
10. 學會找游戲的特征碼,做個可以免更新的外掛,或是快速找到基址和游戲更新后的新Call
掌握這些內容,你現在因該可以寫出簡單的小掛掛了,比如自動吃葯,自動喊話,自動打怪,或是寫個自動完成 重復繁瑣的工作,或是寫個論壇發貼機也是沒有問題的啦
其實我上面寫的東西雖說不多,但要想完全掌握以上內容,也不是一天二天的事。
第三步:接下了才是真正核心的東西
你寫的外掛好不好,功能強不強,要掌握的就是這就三步:
本想在另外寫一篇,外掛秘笈文章的,想想算了,所以我就在這里只是提一下,經后有時間了我在寫吧,想了解更多的,可以找我詳細問,因為一些細節真的很難一言兩語就能寫明的。
1. 游戲常用有那些殼,如果反殼
2. 了解SSDT_Hook,Inline_Hook
3. G.P.K鈎子的查找及相應的反Hook,043_繞過所有用戶層HOOK
4. 遍歷列表的基址、結構類型、觸發點
5. 列表之循環列表,二叉樹之樹
6. 反內核(ARK)工具使用
7. DNF過TP保護,T&P保護的處理
8. 繞過驅動保護