找到一個(gè)沒加殼的半免費(fèi)網(wǎng)游(網(wǎng)游的名字就不說了),分析其雙開方式,
大型網(wǎng)游多開實(shí)例
。大概“某人們”早就對它動(dòng)過手腳了,只是沒看到有人公布。
經(jīng)過幾天的試用,至今沒有發(fā)現(xiàn)這種破法有問題。(由于是幾天以前破的,現(xiàn)在回憶起來可能會有點(diǎn)出入,還是希望讀者以實(shí)際為準(zhǔn),靈活應(yīng)變^_^)
本文僅僅作為研究用,不可作其他用途……
///////////////////////////////////
經(jīng)過簡單的觀察,猜測執(zhí)行桌面快捷方式后打開的是一個(gè)自動(dòng)Update的程序,該程序每天更新其核心。
繼續(xù)觀察,發(fā)現(xiàn)Update程序完成后直接用CreateProcess之類的方法運(yùn)行那個(gè)核心文件。核心文件通過分析命令行參數(shù)來指定登陸服務(wù)器(官服,不是私的)。
于是開始下手:
首先自己寫一個(gè)程序 ShowCmdLine.asm :
.386
.model flat, stdcall
option casemap :none
include windows.inc
include user32.inc
include kernel32.inc
include masm32.inc
includelib user32.lib
includelib kernel32.lib
includelib masm32.lib
include macro.asm
.data
mytitleA db 'GetCmdLine()',0
.data?
buffer db 100 dup(?)
.CODE
START:
invoke GetCommandLine
invoke MessageBox,NULL,eax,offset mytitleA,MB_OK
invoke ExitProcess,0
end START
編譯它,重命名成網(wǎng)游的核心文件名,放到網(wǎng)游目錄下,
電腦資料
《大型網(wǎng)游多開實(shí)例》(http://m.msguai.com)。正常步驟運(yùn)行之…………Oh,Ja!事實(shí)證明了猜想。選擇任意一個(gè)服務(wù)器測試,記下那個(gè)服務(wù)器所對應(yīng)的參數(shù)(我玩的服務(wù)器參數(shù)是1rag21,這個(gè)字眼熟悉吧~應(yīng)該有許多人知道這是什么網(wǎng)游了,我也不能多說,不知道的自己google一下吧)。
打開IDA,分析原來的核心(文件滿大的~要有耐心)。在等待IDA分析的時(shí)候多看看import table,找找看有什么可疑的函數(shù)……
大多人首先會找FindWindow之類的……沒錯(cuò)!
從IDA的Imports中看到
CreateMutexA 和 FindWindowA
不管怎樣,這兩個(gè)不可不防。
改之!
在FindWindowA上按下'X',得到FindWindowA函數(shù)的xrefs(嘻嘻,只有一處):
..........
..... call FindWindowA
.text:0064CFCF test eax, eax
.text:0064CFD1 jz short loc_64CFDC
.......
[1] [2] 下一頁