遊戲外挂用過,但是有沒多少人知道怎麼去實現,既然我們都是草根程序員,沒那錢去買那就自己去寫。外挂據我的了解最簡單的一種就是模拟鼠标點擊。比如MM們都喜歡玩的那種連連看遊戲隻要鼠标點擊就OK了,所以隻需要正确的模拟鼠标點擊就行了。分析出遊戲内存然後再正确的位置去模拟鼠标點擊就能在一秒以内完成連連看。還有比較高級點的就是分析出遊戲相關的Call然後去将遠程代碼注入到遊戲進程空間中,将遠程代碼做為遊戲進程代碼的一部分去執行就行了。當然是執行分析的Call。後一種比較麻煩,功能也比較強大,不僅要了解windows API,還得了解基本的操作系統原理和分頁機制,然後還要會彙編編程,當然能實現高級的外挂。第一種隻要了解Windows API就行了。
但是不管哪種方式我們都需要分析進程内存,我們寫外挂是不知道程序的源代碼,能了解到的就是彙編編譯器放彙編出的彙編代碼(以後再說)。最主要我們需要知道我們感興趣的東西放在進程空間的哪個内存地址中(這裡的内存肯定不是物理内存,現在的一般32位系統都是在保護模式下的而非實模式)。為了查找内容放在的内存地址,我要介紹一款内存神器,這是外挂界的法寶之一,CE。CE不僅能查看内存還能修改内存内容。我們現在就開始學習CE的使用技巧。這裡就以QQ為例吧。查出QQ消息發送之前的信息放在内存的什麼地方。查到了我們就可以動态修改發送之前的消息,這樣我們就可以發送我們想要的任何信息而不需要通過qq.首先打開QQ發送窗口寫一些信息,就寫“Egojit”,打開神器CE。界面如下:
第一步:點擊小電腦打開進程列表附件我們的QQ進程。
第二步:點擊打開我們附加的QQ進程
第三步:(如下圖)在數值中輸入我們在QQ消息發送框中輸入的"Egojit"
第四步:點擊CE中的首次掃描(一定要選字符串)
首次掃描後悔出現很多内存中都有“Egojit”這時候我們需要做的就是第五步
第五步:改變QQ發送框中的信息為"Egojit1",并且修改文本為“Egojit1”,别點擊“新的掃描”,而是點擊“再次掃描”。再次掃描就是在第一次的結果上再篩選
這次得到一個地址
為了确保準确信,可以多改變幾次QQ發送框中的信息,然後再次搜索。我們雙擊結果。将它放到下面的CE下面的空白備選區中(我這麼叫的)。
當查詢結果通過雙擊加到備選區後。我們修改備選區的值。雙擊備選區的值字段彈出修改内存窗體。記住必須雙擊值部分,雙擊其它部分例如類型或者地址字段都是不行的。将“Egojit1”修改成“gaolu123”,你成功的将内存中的改變了,并且消息框中的值也被改變了。可以以外的發現少了一個3
這是為什麼呢??其實很容易理解。因為請對比修改前的類型和修改後的類型一個是String[7],修改後的是String[8]。這個時候你會知道QQ消息顯示框有一種限制,就是防止這種修改發送。(個人猜測)。不用怕。既然有限制,那麼QQ内存中肯定有相關的存儲計數器。再通過CE去查詢,這個時候不是查詢字符串了,這個時候查詢int.而且查詢是一次新的查詢。以上種種都是猜測。這個時候用CE去驗證猜測。QQ發送框中現在有“gaolu12”,數一下是7個字符。第一次查詢:
大家看到查詢結果中查詢後有其它值,其實不是,在我第一次查詢的時候隻有7,隻不過在我截圖的這段時間中有些内存的值改變了所以就有0了。這個不用管。我們再次篩選删除掉QQ發送框中的一個字符這個時候計數器應該是6我們再次篩選6
大家很容易看到第二次篩選後還有14條結果。我們繼續這樣篩選。最後我們不管怎麼篩選都還有11個結果。
而且我們動态去修改QQ發送框的字符個數,你發現這寫内存都跟着變化。那我們就大膽猜測這些内存就是計數器,隻不過不同的内存做着不同的約束。我們不用管,我們繞過這些約束,修改所有的技術器。這樣我們将這些技術器的數據修改成和上面修改的消息類型例如類型String[8]那麼就将計數器中的2全部改成8這樣,QQ發送框中你不需要做任何修改。但是QQ發送框中的消息被修改了。這樣我們就很容易去利用進程注入去修改這些内存,然後……。當然是你想幹什麼就幹什麼,任你擺布了。
我們找出是什麼訪問消息内存。當然我們在qq消息框中擊發送時肯定訪問了這塊内存,因為發送消息出去,發送的就是我們查詢出的消息内存中的内容。我們找到這段彙編代碼。找到它的CALL我們就可以實現一個自動發送QQ信息的外挂了。這個後面在繼續……。如果認真看了并且實驗了,我相信你已經基本上會使用CE了。恭喜你,開始了解一點本質了。
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!