nProtect GameGuard 是一款比較著名的防作弊軟體,在玩家使用外掛(無論任何遊戲的外掛,就算不是當前遊戲的外掛也不可以)的時候會提示"檢測到遊戲被破解修改"並強行關閉遊戲。
什麼是nProtect?
nProtect是設計用于保護個人電腦終端不被病毒和駭客程式感染的新概念的基於網路的反駭客和反病毒的工具。他幫助確保所有輸入個人電腦終端的資訊在網路上不落入駭客手中。在最終用戶在執行電子貿易時,可以通過將nProtect配置在那些提供電子商務、進口貿易,電子貿易的金融機構的網站上,來提高安全等級。
nProtect怎樣工作?
nProtect是一種基於伺服器端的解決方案並且當那些需要保護的任何網路應用被運行時而自動啟動。nProtect被載入內存,所以最終用戶不需要安裝任何應用程式,只要nProtect啟動,就開始拒絕駭客工具和病毒的入侵!
nProtect如何工作?
用戶登陸時nProtect自動啟動。
瀏覽器確認和自動安裝安全模塊到用戶的個人電腦。
掃描駭客工具和病毒
通知用戶目前的安全狀態
如果有駭客工具和病毒嘗試刪除
在被入侵時端駐留內存來鎖定駭客工具直到電腦或者nProtect關閉。
nProtect GameGuard 的主要功能介紹:
實時偵測並封鎖修改遊戲之駭客程式。
實時偵測並封鎖各類型系統病毒。
實時偵測並封鎖加速程式。
實時偵測並封鎖自動滑鼠(連點)程式。
封鎖不當外掛程式。
封鎖各種意圖遠程控制玩家個人電腦的動作。
限制意圖側錄鍵盤滑鼠動作的惡性程式。
限制可疑間諜程式,加強安全性。
使用此軟體的網路遊戲還有很多,比如:冒險島國際服,信長野望online,希望online等等
再來談談新版本的冒險島外掛問題:
目前在伺服器上能屏蔽掉的一般都是高速戰鬥,即兩次戰鬥的數據傳輸時間間隔少於遊戲設定的最少時間(比如說最快的攻擊是用小刀砍一下,假設這個時間是2秒,而某ip長時間以1秒傳送一次攻擊指令(既含有攻擊指令的封包),可以強制讓此ip斷線,但並不能做為封號的證據)高速採集原理也差不多,還有瞬移等。
什麼是封包?客戶端和伺服器之間往來的數據就是封包
有學過電腦的因該都知道電腦網路被OSI參考模型分為7層:
第1層:物理層;傳輸單位是比特流,既bit
第2層:數據鏈路層;傳輸單位是幀,既frame
第3層:網路層;這一層傳輸的就是包了,既packet
第4層: 傳輸層;傳輸單位是段,既segment
第5層:會話層;建立連接並保持連接暢通
第6層:表示層;將資訊"表示"為一種格式,可以理解為就是"格式轉換"
第7層:應用層。對軟體提供接口以使程式能使用網路服務
數據在網路中傳輸不是一整大段的傳輸的,而是分成小塊傳輸的,由於比較分散,所以封包。大家可以理解為"搬家的時候把東西打成包好搬運"。
目前的外掛都是內嵌於遊戲中,對遊戲所接收和發送的封包進行截取,修改,重構建等。
話說回來,nProtect GameGuard的確很厲害,從冒險島更新它又來到我的硬碟上以後,我的ZoneAlarm防火牆就開始報警了,說它要監視你的進程,並且欲訪問網路,欸,沒辦法,為了玩冒險,只好放行咯。
試圖訪問internet
監視冒險島進程
切出遊戲後,你會發現右下角多了個這東西,翻譯過來就是"nProtect 遊戲監視程式 版本624"
什麼是ZoneAlarm?ZoneAlarm是世界著名的防火牆之一,它的強大只有用過才知道
順便說一句,世界頂級防火牆是 Look n Stop ,可惜在中文系統上使用時問題比較多,我就跟它88了(廣告先止住,免得有人扔磚)
值此,我想大家覺得冒險島純淨時代再次來臨了吧?
不過很可惜,答案是否定的。
很多人說nProtect GameGuard很厲害,但是我要告訴大家:中國人更厲害!!
破解nProtect:
nProtect GameGuard在啟動後使用SetWindowsHookEx(Inject DLL)方式進入所有的進程,並且在
OpenProcess()
ReadProcessMemory()
WriteProcessMemory()
PostMessage()
。。。。。。。。。。等等函數的頭部加入JMP XXXXXX的代碼跳入監測程式進行監測,如發現對遊戲進行操作便攔截該操作,所以以上函數均無法正常工作。於是,就避免了外掛問題。
解決方案:
1.運行時將要使用的動態連接庫(如:user32.dll kernel32.dll等)複製後改名,使用LoadLibrary和GetProcAddress載入函數。
要使用LoadLibrary和GetProcAddress載入函數,你需要有Visual Studio .NET,或者其中的Visual Basic和Visual C++,當然,你還要會使用他們,而且你還要知道nProtect GameGuard運行時到底調用了哪些動態連接庫(這時候大家就八仙過海各顯神通吧,想盡一切辦法,如果你搞錯了的話。。。。。後果自己負責咯。。。。。。。。。)
2.恢復JMP XXXXXX處的代碼
需要很高的技術並有很大的危險性,而且不知道會不會再被改。。。。。。一但失敗,後果自己負責咯。。。。。。
3.如果nProtect GameGuard非正常關閉(看大家本事了),JMP XXXXXX處的代碼不會被恢復而監測程式代碼卻已經被卸載,這時候如果被Hook程式調用函數。。。。。。後果自己負責咯。。。。。。
反正失敗後後果都好不到哪裡去,除了電腦爆炸之外,大家就自己去想吧,所以,小心,小心,再小心!
跳過nProtect:
首先要清楚,nProtect通過連接其更新伺服器獲得當前最新文件內容,然後與本地文件作比較,如發現伺服器端的文件與本地的不一致,則從更新伺服器重新下載文件更新本地的nProtect文件。如果nProtect更新成功,而新版nProtect又攔截外掛,那麼理所當然地nProtect每更新一次外掛就失效一次了。
通過分析遊戲客戶端用于解析該遊戲各程式與其對應遠端連接的IP列表文件,找出nProtect更新伺服器的地址,並分析出nProtect官方更新伺服器上的目錄文件結構。
目錄文件結構一般為: "更新伺服器的名稱\\GameGuard"
先自己構建一台模擬nProtect更新伺服器,伺服器上目錄文件結構與官方的相同,更新下載文件內容使用舊版nProtect的內容(舊的客戶端先別忙著刪除。。。。。)
將真實nProtect更新伺服器的地址,解析到你構建的模擬nProtect更新伺服器的IP地址.
例: 127.0.0.1gg.muchina.com
寫入到 system32\\drivers\\etc 的 host 文件中
這個 host 文件為系統TCP/IP協議配置IP解析服務, 沒有尾碼名,可用記事本或UE32打開編輯。
通常一個網遊的順利運行,是要連接伺服器端多個IP的("nProtect服務","連接服務","數據服務","登陸服務","主服務"。。。。。。。)
而這一系列的服務都是由一個遊戲主程式的啟動運行來完成(如"命運"的"WYDLaucher.exe","奇蹟"的"Main.exe","冒險島"的"MapleStory.exe")
由於host文件已被修改過,其中nProtect更新的連接IP被解析為指向自己模擬的更新伺服器,而模擬伺服器上的"更新文件"是舊版本的,所以nProtect不但不會被更新為新版,反而會版本倒退。並且往後都不會再更新。。。。。。。。
另一個方法,則是直接修改遊戲主程式代碼內容,就是暴力修改了。
由於nProtect的功能是附在遊戲主程式的開頭獨立執行的,所以,通過對遊戲主程式進行破解處理後,將遊戲主程式關於nProtect的執行部分的代碼打上無效化標記,就很自然地跳過了nProtect了。
補充一下,構建模擬nProtect更新伺服器可用本地機器完成(nProtect更新IP:127.0.0.1 有的安全軟體會屏蔽掉此個本地自連接IP);用VM虛擬機完成(VM虛擬的多系統可各自設置不同IP);或者。。。。。另外組一台機器來做也可。。。。。
還有,脫殼的方法比較不實際,因為一個當前網遊的完整客戶端主程式的脫殼工作是很繁重的, 須要多CPU伺服器級的技能才能比較有效率的完成(據程式外殼加密方式而定, 雙P4 1.8G/1G RAM的系統跑MU97d的main.exe脫殼,半天左右吧。。。。。。), 脫殼後也不是人人都有能力對程式作適當修改,進階C語言程式編輯能力的要求是跑不掉的。這個還是太難了點。。。。。。。
ok,關於nProtect就先說到這裡,相信我們中國人的力量是強大的,外掛會與不久的將來再次與我們見面,其實這只是個時間問題而已。。。。。
聽沒聽說過"兩手抓,兩手都要硬?"這裡引用下,代理商無權直接處理外掛製作者,這個權利只有法律有,代理商也只能通過法律來進行打擊,而代理商屬於強勢群體,要履行"誰主張,誰舉證"的原則。問題就在這個證據上,在網路上,對某個人的某個程式的所有進行舉正是非常困難的,這個也是為什麼外掛木馬病毒漫天飛,國家卻打擊不了的原因。所以代理商只能通過整治遊戲的使用人群來達到清理外掛的目的。這就是目前冒險裡封號的原因!
既然要說到強勢群體,那玩家就是弱勢群體,代理商說你用了外掛,請問你能去反查麼?抵制外掛,從自己做起。有些人很不服,為什麼連變速齒輪都封?我的意見就是"要封就全都封"一個都不留,想想2004年的冒險,我們沒有變速齒輪不是一樣玩的很開心嗎?沒有變速,時間長了也就適應了。
ps:我是轉載的喔"沒有用的話不要罵我喔yociexp28.gif "
|