前言:
最近在瀏覽某網(wǎng)絡(luò)論壇,看到一款刺激戰(zhàn)場的吃雞外掛軟件下載量很高,出于對游戲外掛樣本的敏感及逆向的專注,就從論壇上下載一個(gè)樣本,并進(jìn)行對該游戲外掛樣本,深度功能分析及還原破解的逆向?qū)嵺`,主要從外掛樣本的功能表現(xiàn),樣本的基礎(chǔ)屬性、樣本的實(shí)現(xiàn)功能、樣本的驗(yàn)證功能破解進(jìn)行實(shí)踐。
基本屬性
(分析這些未知的軟件切記得在虛擬機(jī)環(huán)境下進(jìn)行)
啟動(dòng)游戲輔助樣本后,從表面上來看功能確實(shí)很強(qiáng)大,透視、距離、顯血、自瞄這些都是玩家想用游戲輔助的一個(gè)痛點(diǎn)。但這游戲輔助功能都有實(shí)現(xiàn)嗎?有這么強(qiáng)大了嗎?

結(jié)合Exeinfo PE和pchunter工具可以得出樣本基本屬性的結(jié)果。
該樣本是通過易語言(WTWindow類名是易語言特有)進(jìn)行開發(fā)的,從查殼和區(qū)段信息來看,該樣本是沒有做任何保護(hù)的普通樣本。


注冊碼破解
樣本點(diǎn)擊開啟輔助功能的時(shí)候,提示需要先進(jìn)行獲取注冊碼,進(jìn)行對樣本功能激活,才能正常使用樣本的功能。
點(diǎn)擊獲取注冊碼按鈕,會(huì)彈出掃描支付的對話框,但是對話框 是空白的。通過逆向分析得出的結(jié)論是,奈何該樣本開發(fā)作者的服務(wù)器,已經(jīng)過期而且是沒有進(jìn)行備案登記的,所以樣本通過http通訊方式,進(jìn)行向服務(wù)器請求支付的二維碼圖片就請求失敗,所以彈出的支付對話框就是空白的界面。

對于要逆向破解程序某功能點(diǎn)時(shí),主要需要通過強(qiáng)大的ollydbg工具進(jìn)行做動(dòng)態(tài)調(diào)試,其他工具如IDA、procmon、pchunter等主要是作為逆向分析破解的輔助點(diǎn)和參考點(diǎn)。
分析易語言樣本可采用的通用突破點(diǎn)
通過下對話框函數(shù)斷點(diǎn)MessageBoxA
從字符串進(jìn)行入手下斷點(diǎn)
通過搜索易語言按鈕事件特征碼(FF 55 FC 5F 5E 89 5D F4 )進(jìn)行下斷點(diǎn)。
注冊碼的破解流程步驟
基于以上的方法進(jìn)行分析,就可以不用通過掃描二維碼支付,就可以獲取到正確的轉(zhuǎn)賬單號(hào),從而獲取到正確的激活碼。正確的轉(zhuǎn)賬單號(hào)直接寫在代碼中進(jìn)行做判斷,并且代碼中校驗(yàn)是否正確的方式,通過賬單號(hào)兩位數(shù)為單位進(jìn)行校驗(yàn)的。校驗(yàn)正確后,這個(gè)時(shí)候就會(huì)彈出正確激活碼字符串信息了。
通過輸入前面獲取到激活碼字符串信息,就可以進(jìn)行激活輔助軟件了。這個(gè)時(shí)候在進(jìn)行點(diǎn)擊開啟輔助功能,就發(fā)現(xiàn)可以有正確的對話框提示了。(通過測試和驗(yàn)證分析并沒有所謂的修改游戲客戶端數(shù)據(jù)進(jìn)行作弊的功能)
鉤子技術(shù)分析
(外掛樣本中應(yīng)用到鉤子技術(shù))
1.實(shí)現(xiàn)鉤子技術(shù)需要的三個(gè)系統(tǒng)函數(shù)



2.全局鉤子注入方式的實(shí)現(xiàn)步驟
1.調(diào)用SetWindowsHookEXA設(shè)置安裝鉤子(可以按需進(jìn)行設(shè)置不同類型鉤子)
2.實(shí)現(xiàn)鉤子的回調(diào)函數(shù),再回調(diào)函數(shù)里面調(diào)用CallNextHookEx。
3.調(diào)用UnhookWindowsHookExA卸載鉤子
該輔助樣本實(shí)現(xiàn)的功能
該吃雞樣本實(shí)現(xiàn)安裝了兩個(gè)鉤子,主要用于監(jiān)控對話框的輸入事件,監(jiān)控CBT程序的。并沒有通過鉤子技術(shù),實(shí)現(xiàn)對游戲客戶端進(jìn)程注入模塊。
監(jiān)控對話框輸入事件實(shí)現(xiàn) 對當(dāng)前線程進(jìn)行安裝WH_MSGFILTER 鉤子

鉤子的回調(diào)函數(shù):主要是進(jìn)行對話框輸入事件進(jìn)行監(jiān)控。
對CBT應(yīng)用程序監(jiān)控 對當(dāng)前線程進(jìn)行安裝 WH_CBT鉤子
CBT鉤子的回調(diào)函數(shù)實(shí)現(xiàn)
總結(jié)
基于以上的分析,可以很清晰的得出結(jié)果,該輔助作者開發(fā)彈出對話框功能很多,實(shí)際實(shí)現(xiàn)有效功能是微乎其微的,它只是一個(gè)框架流程進(jìn)行對話框展示。其實(shí)該樣本就是個(gè)沒有實(shí)際功能的輔助,只是為了忽悠小白的。
作為一個(gè)常規(guī)的游戲輔助軟件,一般都需具備網(wǎng)絡(luò)驗(yàn)證、注入功能、內(nèi)存讀寫功能。
游戲中購買使用游戲輔助軟件,這個(gè)是相對不明智的選擇,畢竟這個(gè)雙向的危險(xiǎn)系數(shù)非常高的。其一使用游戲輔助那么就必定會(huì)面臨被封號(hào)的風(fēng)險(xiǎn)。其二購買游戲輔助又容易被忽悠、被騙的情況出現(xiàn)。