1、熟練的C語言知識
目前的外掛大部分都是用BC或者是vc寫的,擁有熟練的C語言知識是寫外掛的基本條件
2、具有很強的彙編基礎 一般遊戲都不可能有原始碼的,必須*反彙編或者跟蹤的辦
法來探索其中的機理 ,所以有強的彙編基礎也是必不可少的條件
3、熟練掌握跟蹤和除錯的工具
有了上面2個條件後,掌握一些工具也是很有必要的
跟蹤的工具,softice當然是不二之選,至於反彙編的工具,我推薦用IDA PRO
這個工具反彙編出來的程式碼結構清晰,非常好讀
如果你不具有上面的條件,還是先把基礎打好,再來寫外掛吧,一分耕耘,一分收穫,天下沒有白掉的餡餅的
二、寫外掛面臨的基本技術問題
1、修改程序的執行程式碼 要修改程序的執行程式碼,要先取得程序的ID,如果是由外掛程式啟動,返回值裡就有程序ID,
如果不是的話,
需要用findwindow找到視窗控制代碼,再用GetWindowProcessID取得程序ID,取得程序ID以後,就可以用
writeprocessmemory來修改程序的執行程式碼了,使程式按照我們的意願來執行,石器外掛裡的不遇敵、寸步遇敵
就是用這樣的方法來實現的
2、截獲外掛傳送和接收的封包
除了透過修改程式碼來實現的功能以外,很多的功能都是透過修改封包來實現的,要修改封包,首先要能截獲它。
第一步是要跟蹤出發和收的位置,至於怎麼跟蹤,我以後會提到,找到位置以後,有2個辦法,一是在那個位置加一
個jmp語句,跳到你的處理函式位置,處理完後,再跳回來,這種方法要求比較高,需要處理好很多事情,另一種辦法
是往那個位置寫條能造成例外的指令,比如int 3,然後用DebugActiveProcess除錯遊戲程序,這樣每當遊戲執行到那個 位置的時候,就會停下來,到外掛程式裡面去,等外掛程式處理完以後,用ContinueDebugEvent 繼續執行程式。
可能這些東西看起來會很枯燥,但是你要是入門了,就會輕鬆起來,可以去找一個水平高的老師帶著你,這樣能夠很好的提高自己的水平
如果對計算機逆向這塊技術感興趣的可以找我交流
1、熟練的C語言知識
目前的外掛大部分都是用BC或者是vc寫的,擁有熟練的C語言知識是寫外掛的基本條件
2、具有很強的彙編基礎 一般遊戲都不可能有原始碼的,必須*反彙編或者跟蹤的辦
法來探索其中的機理 ,所以有強的彙編基礎也是必不可少的條件
3、熟練掌握跟蹤和除錯的工具
有了上面2個條件後,掌握一些工具也是很有必要的
跟蹤的工具,softice當然是不二之選,至於反彙編的工具,我推薦用IDA PRO
這個工具反彙編出來的程式碼結構清晰,非常好讀
如果你不具有上面的條件,還是先把基礎打好,再來寫外掛吧,一分耕耘,一分收穫,天下沒有白掉的餡餅的
二、寫外掛面臨的基本技術問題
1、修改程序的執行程式碼 要修改程序的執行程式碼,要先取得程序的ID,如果是由外掛程式啟動,返回值裡就有程序ID,
如果不是的話,
需要用findwindow找到視窗控制代碼,再用GetWindowProcessID取得程序ID,取得程序ID以後,就可以用
writeprocessmemory來修改程序的執行程式碼了,使程式按照我們的意願來執行,石器外掛裡的不遇敵、寸步遇敵
就是用這樣的方法來實現的
2、截獲外掛傳送和接收的封包
除了透過修改程式碼來實現的功能以外,很多的功能都是透過修改封包來實現的,要修改封包,首先要能截獲它。
第一步是要跟蹤出發和收的位置,至於怎麼跟蹤,我以後會提到,找到位置以後,有2個辦法,一是在那個位置加一
個jmp語句,跳到你的處理函式位置,處理完後,再跳回來,這種方法要求比較高,需要處理好很多事情,另一種辦法
是往那個位置寫條能造成例外的指令,比如int 3,然後用DebugActiveProcess除錯遊戲程序,這樣每當遊戲執行到那個 位置的時候,就會停下來,到外掛程式裡面去,等外掛程式處理完以後,用ContinueDebugEvent 繼續執行程式。
可能這些東西看起來會很枯燥,但是你要是入門了,就會輕鬆起來,可以去找一個水平高的老師帶著你,這樣能夠很好的提高自己的水平
如果對計算機逆向這塊技術感興趣的可以找我交流