YCT46B 本章主題《登錄器》
| 01-第一個登陸器 | | 02-專用登錄器 | | 03-公用登錄器 | | 04-漂亮登錄器 | | 05-專業登錄器 | | 06-脫機登錄器 | | 07-外掛式登錄器 | | 08-配置器 | | ... ... |
1、第一個登錄器。
如果,你是個私服站長,或者,你是個網吧管理員,那麼當你看到本章教材時,
可得好好的學習一下喲,這對你會絕對有用……
當然,即使你對登陸器這方面不感興趣,學習一下本章後,會加強你的易語言編程能力,對於本站未來的教材才能更容易上手。
本章的每節的內容都是以易語中現有的元件,函數來完成一個獨立的登陸器軟體,
教材會以最初級開始逐步加深,從一個簡單的登陸器設計到一個複雜的商業化的登陸器製作。
學完本章,你將也會自已編寫出,傳奇,傳奇世界,傳奇3G私服登陸器。
下面先讓我們來初步的瞭解傳奇用戶端�堛滌禰鄙阞漣@用。
![]()
下面看看重點的這三個配置檔的結構,,如果你不是傳奇玩家的話,建議先到網上下載個傳奇1.85版的遊戲用戶端安裝起來,學習完本章後,再卸載掉。
![]()
看過上面的兩個配置檔的結構後,聰明的你可能也已經想到,原來私服登陸器就是這麼一回事,
先修改這三個ini的配置檔,然後去運行那個MirClient.dat檔即可以登陸遊戲了。
可能你會問,mirclient.dat 可以運行嗎?這是dat檔,不是exe檔的啊!
那麼我告訴你,檔的尾碼名只是給系統來判斷然後用與該尾碼名已關聯的程式來打開的,
如果你知道那個檔的格式,EXE檔的格式叫做PE格式,可以直接讓系統去運行,
系統在運行他時,會檢測他是不是可以直接運行的,可以的話就會運行,不行的話,會出提示的。
mirclient.dat本身就是一個PE格式的檔,不信你可以把他改名為 mirclient.exe 雙擊就會運行的
下面我們來做一個簡單的登陸器,這個登陸器可以根據用戶提供的伺服器名與IP,然後去修改那三個INI檔,修改好後再去運行那個mirclient.dat
下面,運行易語言,並且佈局視窗介面如下圖:
![]()
介面如上,然後雙擊按鈕1 進入 _按鈕1_被單擊 事件處理代碼編寫區。
編寫如下如的代碼:
![]()
完成了代碼的編寫後,就可以把這個源代碼編譯為EXE的可執行程式了。
點易語言功能表欄上的 編譯——獨立編譯。
![]()
在編譯出來的EXE檔後,放到傳奇的1.85遊戲檔夾�堙A並且把 MirClient.dat 與 MClient.dll這兩個檔也放進去,之後就可以運行這個 登陸器軟體了
本節只是個簡單的例子,演示了修改設置ini檔,並且去調用傳奇用戶端檔執行
傳世與傳奇的差不多,也是先設置好ini配置檔,然後去運行遊戲用戶端 woool.dat
------------------------------------------------------------------------------------------------------------分割線------------------------------------------------------------------------------------------------------------
02、專用登錄器。
本章要講解的是一個簡單的私服專用登陸器
通過上節的內容後,相信大家對於私服登陸器也該點點瞭解,本節會更進一步些,做一個某私服的專用登陸器,
由於大家都是剛開始入門還屬於菜鳥級,所以本節的內容也不會多的。
一個簡單的專用登陸器需要的是,在登陸器上可以顯示出該私服網站,同時,會有一個可以選擇私服的列表,
之後用戶選擇列表後就可以登陸私服了,當然,再加個可以測試該私服是否可以連接的功能上去。
本節需要使用到超文本流覽框支援函式庫 可以在易語言的功能表欄�媔i入 工具-支援函式庫配置 找到這個支援函式庫,
選擇上,然後確定。
下面我們來佈局一個這個登陸器的介面。
![]()
佈局好登陸器的介面後就可以進行代碼的編寫了。
我們需要在登陸器一運行就進行一些設置的初始化,可以在 __啟動視窗_創建完畢事件副程式下編寫代碼。
![]()
上面的代碼實現了這個登陸器的基本初始化工作,並且添加了私服的名稱與IP到下拉式列示方塊與變數中。
下面,我們再來寫段代碼,當用戶在下拉式列示方塊�媬嚝雂@個私服時,用客戶控制項測試連接,
然後在標籤中顯示該私服是開放或維護中的狀態。
代碼見下 在 _下拉式列示方塊1_列表項被選擇 事件副程式�媦g。
![]()
上面的這段基本上實現了能夠 檢測一個私服是否開放或維護。
最後,再為 按鈕1 編寫登陸的代碼。
![]()
本節程式已經完成,傳奇世界的私服登陸器也類似。
本節實現了一個簡單的專用型私服登陸器的設計製作,
注意
以上所提到的動態陣列的下標是從1開始的,下拉式列示方塊中的專案是從0開始的。
------------------------------------------------------------------------------------------------------------分割線------------------------------------------------------------------------------------------------------------
03、公用登錄器。
這節要講的是公共登陸器 。
公共登陸器與專用登陸器有什麼不同的就是,專用登陸器通常是固定的那幾個私服,
而公共登陸器可以由用戶自由的添加,刪除,修改私服的列表。
介面佈局見下圖。
![]()
基於大家是初學編寫登陸器,而且,對於易語言的使用掌握得還少,所以,本節的用來存諸,添加,修改,刪除的私服列表檔,
是用明文文本的格式進行保存,等
以後大家熟練了易語言後再用資料庫的格式保存私服列表吧。
![]()
有上面的介面設計與保存私服列表的格式規定後,下面就好設計登陸器的代碼了,
先來定義一個自定義結構的資料類型,如果不會定義自定義資料類型的話,回到第一章看看吧。
![]()
![]()
上面的代碼基本上實現了,刷新顯示私服列表中的私服到列表框中了,
下面處理一下,用戶在列表框中選擇了一個私服後需要執行的功能。
![]()
列表框中的用戶選擇私服時需要處理的也完成了,下面再來完成添加,刪除,修改私服吧。
![]()
![]()
![]()
本節完成,把編譯出來的EXE放到傳奇目錄下,與 用戶端檔和那個DLL檔放在一起即可。
------------------------------------------------------------------------------------------------------------分割線------------------------------------------------------------------------------------------------------------
4、漂亮的登錄器。
人靠衣裳,佛靠金裝,編寫一個軟體,功能與執行代碼雖然重要,
但是,介面的美觀也不容忽視,現在的人,特別是一些軟體使用者,他們第一眼就是要看你的作品的外觀,而不是你內部的功能如何 。
本節要講的就是,把登陸器打扮一下,打扮得漂漂亮亮的才可以推銷出去
同時,也解決一下,前幾節一直都存在的一個問題,大家應該也發現,
前幾節所編的登陸器軟體,都需要與那個 MirClient.dat 還有 MClient.dll 一起才可以正常登陸遊戲,
這樣一來,若要把這個登陸發佈出去就是三個檔,不方便用戶使用。
現在,我們來把這兩個檔全部集成到編譯後的EXE登陸器執行 檔中去,這樣,發佈時,
只要把這個登陸器單檔放出去就可以了。如何做,本節就會給你答案
在易語言的工程管理上有一個 資源表,可以把各種各樣的檔放進去,之後編 譯出來的程式中,
也就有那個檔在�堶惜F,我們就要利用這點,把登陸器的 MirClient.dat 還有 MClient.dll 檔都放進資源�堙A
然後編譯出EXE的登陸器軟體,把這個只有一個檔的軟體發佈給別人即可,用戶在使用這個登陸器時,
會自動的把資源中的 MirClient.dat 還有 MClient.dll 兩個檔寫出保存到硬碟上,再去運行它
先講講軟體的外觀問題吧!
現在的市面上,登陸器的種類也多,各有各的外觀特色,通常會為兩種,
一種把圖片裝飾上去的,另一種是直接使用skn皮膚檔。
對於裝飾圖片的方式, 這�堣ㄟ竣雯苤A因為這種方式不適合所有的用戶,因為它的方式煩勞且又複雜。
使用skn皮膚檔包裝的軟體介面時的優點是,簡單又方便。
在易語言中使用skn皮膚,需要調用 xwxyh無限擴展庫 這個第三方的支援函式庫中的 更換介面()
函數,可以在易語言官方的資源網中下載下來,
然後使用易語言功能表欄�堛漱u具-安裝新的支援函式庫 進行安裝。
本節就用上節時做的那個源代碼包裝上皮膚吧,
打開上節的那個登陸器的源代碼,然後執行易語言的功能表欄上的 ,
工具-支援函式庫配置 選中那個 xwxyh無限擴展庫 後確定。
先下載上面的皮膚文件,然後照下面的做。
![]()
需要的資源都已經導入完畢了,下面,我來編寫一些代碼來使用這幾個被導入了的資源,
皮膚需要在軟體的介面出來之前就包裝上才可以,所以,需要在_啟動視窗_創建完畢的事件副程式中寫入代碼。
![]()
編譯出可執行程式後,效果見下圖。
![]()
怎麼樣?是不是很漂亮了呢= =
更多的皮膚檔,可以搜索網上的,也可以到我的小站上來下載。
------------------------------------------------------------------------------------------------------------分割線------------------------------------------------------------------------------------------------------------
05、專業登錄器。
通過前四節的學習,我們會編寫出了一個即漂亮功能又不錯的私服登陸器了,但這些還不夠,
一個專業的登陸器,除了包含上面的那些東西外,還得提供,遊戲帳號註冊,密碼修改,密碼找回的功能才算合格。
因為,註冊帳號,密碼修改,密碼找回等的功能涉及了傳奇,傳奇世界的資料包加密與解密方面的技術,
對於初學者,是需要一段時間才能掌握.。
為了方便大家能夠快速的方便的做出個專業的私服登陸器,本站特別的把這些功能封裝成了一個易語言模組,模組的尾碼名是 .ec
本節的內容需要使用到外掛作坊提供的 封包加解密.ec
這個模組。這個模組集合了傳奇,傳奇世界方面諸多的功能。
![]()
![]()
![]()
這是個多視窗的程式,這�塈髡角F主視窗上兩個按鈕的代碼,
下面進行另兩個視窗上的代碼編寫。
然後對視窗1�堛熊虪U帳號的代碼進行編寫。
![]()
上面的代碼實現了把資料包加密併發送給私服伺服器進行處理。
![]()
在發送出去的封包後,再取回伺服器返回的資料包進行分析,並且提示給用戶即可。
下面的將是密碼修改的結果。
![]()
本節的內容就這麼簡單,直接使用模組�奡ㄗ悀F的功能,輕鬆又快速,
編程成了一種搭積木式的享受,同時,我們也學到了多視窗的載入與銷毀的方法。
傳奇世界方面的帳號註冊,密碼修改,密碼找回方法也在模組中已提供。
------------------------------------------------------------------------------------------------------------分割線------------------------------------------------------------------------------------------------------------
06、脫機登錄器
現在,很多的私服都提供了掛機泡點的功能,為此,很多的私服登陸器上,也集合了脫機掛號泡點,
或脫機掛號自動喊話,密人打廣告等功能。
本節讓我們也來做一個可以脫機登陸到遊戲�堙A並且,每隔一段的時間自動發言一句,做個能夠脫機喊廣告的登陸器吧。
要做脫機,必需要瞭解一下,遊戲的整個登陸時的細節方面。
傳奇1.8版後的脫機登陸的流程是:
1.發送帳號密碼給伺服器。
2.驗證通過伺服器返回伺服器組。
3.提交欲登陸的伺服器名稱。
4.返回人物閘道的IP/埠/連接驗證碼。
5.連接人物閘道.發送帳號/連接驗證碼。
6.返回該帳號內的現有人物名稱/等級/職業/性別。
7.提交要登陸遊戲的那個遊戲人物名稱。
8.返回遊戲閘道的IP/埠。
9.連接遊戲閘道.發送帳號/人物名/連接驗證碼/用戶端版本號。
10.若一切正常.會返回伺服器的登陸公告。
11.發送一段封包通知伺服器一切正常。
12.脫機登陸已正功,之後就是對於周邊人物的分析,別人的發言等,同時也要與伺服器保持連接並且每隔一段時間你也發一些話出去即可。
傳奇世界的流程也與之類似,不同的是,傳奇世界的不返回伺服器組,當帳號登陸成功時,是返回帳號的。
下面來看看實際的代碼是如何編寫的,先佈局一個介面。
![]()
嗯,因為代碼比較多,我就懶得拍圖了,有一點大家要注意,
對於這類自動的喊話發言的功能,速度時間間隔要控制好,
還有,發言的內容最好有三條以上,每條都不同,避免在遊戲中會因為重複發言而被禁止聊天——
大家可以下載源代碼研究下,重要部份是在
_客戶1_資料到達 _客戶2_資料到達 _客戶3_資料到達 這三個事件處理副程式�堙C
本節中用到了一個自動密人的功能�堶悼峇F一個 創建線程() 是調用了 1.5.ec 模組�堛漸\能,
大家可以把這個模組的引用刪除,
然後使用易語言�堛漲h線程支援函式庫�堛熙衎婼u程() 功能。
------------------------------------------------------------------------------------------------------------分割線------------------------------------------------------------------------------------------------------------
07、外掛式登錄器。
現在的私服�堙A廣告泛爛,隨處可見的各種廣告都是,
簡單的說,
目前的廣告基本上是在兩種登陸器�媢窶{,
一,脫機外掛或脫機登陸器。(像上節的那),
二,當你使用有些外掛的時候,外掛自已就會在遊戲時時不進的發言打廣告。
這�堙A我們要介紹的一種技術就是,別人使用了你的登陸器,進入遊戲後,也會定時的發送一些廣告,這種功能是不是很酷?
是不是很像外掛的影子呢?呵呵,
其實呢,當你學會了這層的技術的話,你就不但能實現這種簡單的廣告喊話功能,還能做出其他的功能,如:盜號軟體。
要想實現這種當用戶使用登陸器進入遊戲後會自動打廣告的話,
需要使用外掛作坊出品的另一個模組 1.5.ec 這個模組集合了各類的偏門技術與一身,全是旁門左道的喲。
嚴重聲明,本站只提供模組中功能的使用教材與技術交流,用戶若用這個模組,做出了傷天害理違法事件,一切責任自負。
為了能夠在遊戲中實現自動喊話的功能,
我們需要使用到一些特殊的技術,鉤子,用鉤子把一個DLL檔插入到遊戲用戶端中,
然後,去攔截遊戲中往來的封包,然後,定時的加密起一條廣告用的資料包,發送給遊戲伺服器端就能達到自動喊話的目的。
先來設計一個能夠攔截遊戲中封包,並且能夠自動發言的DLL吧。
這個鉤子DLL的主體功能是這樣的,隨著DLL被外掛作坊模組中的 安裝線程鉤子() 函數插入到遊戲中時,就會自動進行一些初始化工作。
一,初始化由登陸方分配的一個服務埠,用來轉換封包用,並且從共用記憶體中取出廣告內容。
二,調用API鉤子攔截 recv 與 WSARecv 這兩個接收封包用的函數,傳奇的是recv,傳世的是WSARecv。
三,在攔截到的封包中分析若有包含了私服遊戲閘道的資料時,修改替換為127.0.0.1和初始化的埠。
四,當遊戲用戶端的連接被轉移到了我們預定的埠上時,啟動一個時鐘,以每30秒自動發送一條廣告用的封包。
![]()
![]()
![]()
這個鉤子DLL要做的主要功能代碼就這些——還有一些轉發的見DLL源代碼檔。
下一步是在登陸器上加入一些功能,需要加入的功能分別是。
一,能夠為DLL分配一個不會重疊的轉發資料用的埠。
二,把需要廣告用的內容寫入共用記憶體中,每句廣告用 |
符號分隔,總體廣告內容不超過1000個位元組。
三,創建一個迴圈的線程,時刻監視著遊戲是否已運行,一監視到就把做好的DLL用 安裝線程鉤子()
插入進遊戲中。
下麵是源代碼的圖片。
在資源�媟s增一項 鉤子DLL 然後把這個鉤子DLL檔導入這個資源項中。
![]()
![]()
![]()
本節的例子說實話,對於新手來說是不容易理解的。
因為,這種技術是屬於外掛性質的,看代碼上不多,卻與作業系統有著緊密相關…
大家只要見識一下即可,未來在這�堛漸~掛技術教材中會有詳細的講解到各種各類的旁門左道的技術與原理。
------------------------------------------------------------------------------------------------------------分割線------------------------------------------------------------------------------------------------------------
08、配置器。
相信大家有很多人都用過或聽過各種軟體上的配置器,
如有些私服登陸器,或木馬都有配置器的,對於做專用的登陸器,配置器的作用可是很大的。
當我們,編好一個軟體後,測試都又完成,如專用的私服登陸器,
在這種登陸器�堙A我們即不想讓別人來添加修改�堶悸漕p服列表,又不想每次都自已在源代碼中修改再編譯這種煩複的事,
此時做一個配置器的話,就可以省時省力了。用配置器來修改登陸器內部的私服列表是個不錯的選擇。
一.
做配置器有幾點需要注意的就是,先在私服登陸器的源代碼中,
留下一段有某種特徵的資料,至少在編譯出EXE檔後能用 UE 這種十六進位編輯軟體找得出來。。
二.
得寫一個子程式,能夠把這段曾有預留過資料的地方,
後來被配置器給重新修改了的資料進行分析,分析後裝入私服列表中顯示出來。
三.
寫一個小小的配置器,把整個登陸器導入配置器的資源�堙A
然後用尋找位元組集的方式,找到那個曾預留了一段有其特徵的資料的地方,把用戶提供的要配置進。
去的資料修改進去,最後,把這個登陸器的資源寫出到硬碟上保存即可。
下面把原第二節�堛滷M用登陸器的源代碼拿來修改一下,在登陸器中預留一段資料。
![]()
完成了登陸器�堛犒w留資料與對於配置器寫入的資料分析代碼後,就可以寫配置器的軟體了。
這�媯n陸器對預留的資料是以每一行一個私服,每個私服都是以 伺服器|IP 格式的。
![]()
![]()
最後把配置器編譯成為EXE程式即可,以後直接使用這個配置器來生成登陸器吧!!!
使用配置器可以完成很多的工作,大家自個慢慢的體驗吧。
這種配置器是比較常用的,另一個配置器是自已對自已進行配置的,
可攜性更好,比較複雜些,暫不做介紹,以後的教材�埵A寫出來與大家一起分享。
------------------------------------------------------------------------------------------------------------分割線------------------------------------------------------------------------------------------------------------
YCT49B 登錄器就介紹到這邊...
|