從學習C++到用C++做外掛

我學習C++已經2個月了,從語法到sdk到MFC到現在親手做外掛經歷了很多,我把自己的學習過程帖出來,只是希望自己的經歷給新手們做個參考,高手不要笑話我了。我把這個過程寫成日記,打算邊完成這個外掛邊更新此帖,如果大家覺得還可以就回下吧,希望高手多提意見,最好能加我討論。


小新外掛開發日記(一)
以前讀書非常喜歡玩遊戲,還記得當年每夜通宵,白天趴在桌上"畫地圖"的日子,現在一晃工作好多年了,日子並沒有發生什麼改變,也許只是年齡變大了。總希望自己能多掙點錢,靠這車水杯薪的工資連養活自己都很有問題。有天看騰訊新聞,有對夫婦開工作室一年居然賺了500萬,羨慕不已,想想自己天天玩遊戲,還不如花時間學習做外掛,於是我便開始了製作外掛的旅程。時間是在一個多月前開始的,我自己也是從零開始,希望自己記錄下自己學習的過程,以便鞏固而知新,也是給如果有相同想法的朋友一個參考,我將會把自己開發過程中的知識、困難以及點滴都寫下來,最開始的路也許記得不是很全了,還需大家多多包含。
第一章 準備工作
第一步準備工作是最重要的,先要對外掛的分類有所瞭解,現在外掛主要有幾種,一種是模擬按鍵操作的,一種是修改封包的,還有一種是模擬客戶端的。第一種,實現很簡單,像以前那種放炸彈的遊戲按鍵精靈就可以完成,要做得高級點還可以選擇模擬精靈,模擬精靈教程與插件是要收費的,但是它可以操作數據庫,要是隻做模擬動作的話,我建議你用按鍵精靈就可以了;第二種,修改封包這種外掛就是我準備開發的方向,後面我會做詳細的講解;第三種模擬客戶端的,網上別人都叫它做機器人,就是說有它的話都不要客戶端了,這就叫脫機外掛,想完成這樣的外掛一般是有源代碼的人實現的。
我選擇做封包了外掛,接着是選擇的語言,很多語言都可以開發外掛,個有所長,主流有C++,DEPHI,C#,VB等。我的選擇是vb或c++,但是vb對指針很受限制,我最終選擇的是C++開發。
選擇C++所需要具備的工具主要是Microsoft Visual C++ 6.0。當然最好也準備EDITPLUS與UltraEdit備用,這2個強大的文本編輯器有各自的用途。當然後期對於彙編的反編譯與開發還需要其他工具,先不說那麼多了。你最關鍵需要一份信心、一份耐心,做外掛從來都是很痛苦、很艱辛的一件事,唯有你能御駕崎嶇時方纔能享受到成功後的喜悅。
我再說一下基礎功底的問題,千萬不用怕基礎不夠,你需要的是持之以恆的學習與信心,這個事情就不會難倒你,C++的基礎我也沒有多少,以前在大學的時候學過基礎語法,連指針那塊都沒有聽懂,大家也不用畏懼底子太差的問題了,沒有學過編程的兄弟可能要花1,2個星期學習下基礎,在腦海中留點印象就好了,現在知識太多而雜,我的學習方法通常是"不求甚解",你也可以參考下。
來源:(http://blog.sina.com.cn/s/blog_5f5455450100escm.html) - 從學習C++到用C++做外掛_sunny_新浪博客

第二章 學習、學習、再學習

當你瞭解了C++語法後,你發現其實你什麼都幹不了,你去問下讀過計算機專業的學生,會不會C++很多人都會,但是要他們做東西大部分是做不出來的,這是因爲你光學C++是沒有用的,這就象你學葵花寶典一樣,"如只自宮,必不成功"。學完C++後就要開始學習windows編程了,只有學會了 windows編程,你才能說入了門。

2.1 初學《windows程序設計 第5版》
當我用一個星期回顧完C++後,我就開始了學習WINDOWS編程,首先要選擇好入門的書籍,在百度中搜索了一大把,最終選擇了我的第一本書,被稱爲 WINDOWS教父之作的《windows程序設計第5版》,我在網上下了電子書,後面還在網上花了160¥買了本盜版書(該書早就停產了),用了兩個星期左右邊學邊做,這本書主要講的是關於 windows界面的原理,書中的例子不好說,雖然基礎但是沒有太多實用性(對於外掛程序來說),這個作爲界面編寫的參考書那是相當好了。當學完這個以後基本上能做出簡單的界面程序了,這對初學者的信心還是很有幫助的。
從現在學習倒過來看這本書,我覺得前期你所要認識到Windows簡史、WINDOWS環境,這些對你來說主要是提高了解,提高信心。接着我個人認爲前期你最好花一個星期的時間全部都預覽一遍,不要看得太仔細,太鑽了,因爲這本書實在太厚了,講的方面很多,一開始你就全部都看懂是不太現實的。第二週的時候我建議選學幾章對於你覺得重要的章節瞭解,並能在你的電腦中編寫跟他功能相同的代碼實現,不要複製、粘貼,要自己嘗試去敲,其中你會發現很多問題的,這是我的學習方法,你可以按照你自己的套路來。我個人推薦你主要看開始、Unicode、窗口和消息、子窗口、對話框這幾章,只要把這幾章過了,這本書其他的方面你用到的時候再來仔細看,把這本書當一本權威的參考書是最好不過了,我想在這個過程中,你應該能初步瞭解到windows api的開發,沒錯,這個就是根本,C++類庫加windows api就可以完成偉大的計算機程式,這兩週中你應該已經學會了最最最基礎的知識了。

2.1 再學《windows核心編程》
學完《windows程序設計第5版》以後,自己只能編寫出很簡單的窗口程序,對於windows消息機制有一定的認識,對windows底層機制還不是很懂,爲了瞭解到 windows底層在網上搜羅了很多資料,《windows核心編程》在網上評價很高,這本書講解了windows的用戶模式與內核模式,內核模式是晉身階級了,第一階段把用戶模式搞定就很不錯了。
這本書講的很詳細很深,第一次看很多都看不懂,多看幾遍是很有必要的,當對windows瞭解越深的時候就會了解到其書真的可謂是博大精深了,像很多很多講windows底層的書都有大部分出自或者參考的都是此書。
此書前4個部分在初期都很重要,第一部分是基礎,多多瞭解有益無害,而且往往不會太難學;第二部分對於第7,8,9,10,11,12章內容等以後開發多線程應用的時候再仔細學,不要被難在這裏耗費太多時間;第三部分除了第16、18章你要略懂外,其他的一定要認識到原理;第四部分是經常要用到的,到你後期的不懂了還可以再來看這部分,掛接其他進程、dll編程這些都是重中之重,如果能喫透更好了;第五部分其實是很有用的,只是前期要懂的太多了,這一塊可以放到以後再學,異常處理機制能讓你的錯誤處理掉很多BUG,也讓你在程序出錯的給予補救;後面幾章選讀,發送窗口消息你應該是早需要知道的,其他的選學了。
這本書我看了3遍,例子沒有敲,這都是底層的知識,在於瞭解、理解它的機制,推薦你用2~3周時間來學習這本書。如果你能喫透這本書,你已經是小有所成,能學完我說的那幾章,對於開發外掛來說理念是沒太大問題的,只是編程很多細節需要查資料了。
小新外掛開發日記(四)

2.3 再學《windows程序設計 第2版》
前期已經準備了5~6周的基礎墊底了,接下來我們要做點成果了。單單靠基礎你自己就能做應用也是比較困難的,就像練武功,你學會了馬步、招式,但是你沒有套路你的功夫那只是花拳繡腿。這時候你需要能教你能打出組合拳的套路。《windows程序設計第2版》是不二選擇,這個第2版不是第5版的教父寫的,而是我們中國人自己的作品。
大家不要看不起咋自己的實力啊,幾次的黑客戰爭中國的名聲可不小的,網上有很多人說《windows程序設計第5版》比國人寫的好,也是有道理的,別人是宗師嘛!其實2本書都滿好的,只是他們講的出發點不同,外國人講的是windows(即窗口,注意這裏不是代表windows系統)的原理,我們中國講的是應用程序原理。
當我們自己要做應用時,可以參考《windows程序設計第2版》的例子,他的例子都很有實用性,而前面二本書的例子具有參考性,都是很寶貴的資源。
這本書我花了59*0.75¥買的,已經被我翻的很舊了,其中講的知識都很有代表性哦,講得比較精闢,它沒有其它書講的那麼深,但是給出了一種實現方法,你想使用其它的方法實現只用改掉那一部分就可以了,原理還是一樣的。關於這本書的學習每一章都很重要,我是除了MFC部分略看外其它的都是非常認真的看了。
我建議你花10天講這本書從頭到尾都看一遍,接着要認真去模仿書中的例子,它的例子都不長,其實自己敲也要不了多長時間,關於資源文件你拷貝它的就可以了。利用1周時間好好實現完例子後你就可以開往製作外掛的旅途了

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章