'編程趣事,新手也能寫外掛!!!'

文章 Windows 操作系統 江湖無祕聞 2019-09-10
"

這篇文章先給正在刷頭條的你,讓你能在休閒中也能學到一點知識。在上一篇文章中我詳細的介紹了,最基本的外掛知識。如果您沒有看上篇文章也沒有關係,這篇文章我依然會用最簡單樸實的語言詳盡的描述儘量讓您看懂。這篇文章我為大家帶來的是連連看遊戲外掛的編寫。不要一看到遊戲外掛就覺得很難。不慌,這篇文章對於只要接觸過編程的人來說都能看懂。

編寫這個外掛程序我先將最基本的步驟進行概要描述,不懂沒有關係,在後面的文字中將會詳細敘述。編程程序分為以下四個步驟:

1.尋找基址。基址是什麼意思呢?我們在學編程的時候都會接觸到變量。這裡的基址其實就是說變量在內存當中地址。找到基址有什麼用呢?

"

這篇文章先給正在刷頭條的你,讓你能在休閒中也能學到一點知識。在上一篇文章中我詳細的介紹了,最基本的外掛知識。如果您沒有看上篇文章也沒有關係,這篇文章我依然會用最簡單樸實的語言詳盡的描述儘量讓您看懂。這篇文章我為大家帶來的是連連看遊戲外掛的編寫。不要一看到遊戲外掛就覺得很難。不慌,這篇文章對於只要接觸過編程的人來說都能看懂。

編寫這個外掛程序我先將最基本的步驟進行概要描述,不懂沒有關係,在後面的文字中將會詳細敘述。編程程序分為以下四個步驟:

1.尋找基址。基址是什麼意思呢?我們在學編程的時候都會接觸到變量。這裡的基址其實就是說變量在內存當中地址。找到基址有什麼用呢?

編程趣事,新手也能寫外掛!!!

我們的連連看的整張圖就是一個數組,而我們的每個小格子就是數組中的一個元素。當我們找到這個數組的起始位置之後就可以讀取這塊內存,只有可以讀取這塊內存之後我們才可以利用這塊內存。在找基址的時候我們採用的是Cheat Engine工具。不斷地點擊下一把,這樣我們就能看到內存的改變。比如第一個格子是空的,我們可以猜測沒有東西一般都用數字0表示。這樣我們使用工具。當第一個格子不為空的時候,我們的判斷條件可以設置為大於0,格子為空的時候我們可以認定這個格子等於0.重複查找,就能找到我們數組的地址。

2.獲取窗口句柄,對於windows的程序的程序我們必須得找到這個程序。就好比我們去上班,我得先找到公司在哪。只有找到這個程序我們才能對對這個程序中的內存進行操作。在這裡我們只需要調用windows給我們提供的API,FindWindow。使用他就能讓我們找到這個程序。

3.我們找到了程序之後該怎麼辦呢?直接對程序進行操作嗎?不是的。我們把找句柄比作找到公司在哪,下一步我們得見領導,只有見了領導,領導才能知道自己的工位在哪裡。所以我們第三步是找進程的id,窗口是進程的一部分。找窗口句柄,通過窗口句柄再去找進程。在操作系統中進程才是分配資源的單位。我們通過句柄找進程怎麼找呢?GetWindowThreadProcessId,這個api就可以幫助我們從窗口句柄找到進程id。

4.打開進程資源。操作系統給進程分了很多資源,現在我們要使用讀取進程的資源呢?當然是打開門去拿咯。所以第四步就是使用api,OpenProcess打開進程的大門。裡面的財富任你使用。

5.讀取進程中的內存。在第一步的時候我們找到了基址。進程的資源很多,但是對我們有用的只有一個。弱水三千只取一瓢。這個時候我們可以通過ReadProcessMemory函數,讀取我們進程特定地址的內存。這樣的流程走完我們就獲取到了我們連連看的內存了。知道每一個格子是什麼了。

6.判斷哪些格子能消除。知道了每一個格子是什麼之後,我們就可以根據連連看的規則。判斷格子中是否是相同,能否連線。這個過程是整個過程中最簡單也是最難的一部分。難的是你是否真正的懂連連看?簡單的是,只需要一個循環判斷就能寫出。

7.向窗口發送點擊事件,比如我們第一個格子和第二個格子是能消除的。這個時候我們需要點擊第一個格子和第二個格子。SendMessage將會很好的為你完成任務。

您在編程之中還用程序幹過什麼有趣的事呢?歡迎分享

致此文章結束,感謝您的敢看。

"

相關推薦

推薦中...