五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊

二.《澤諾尼亞》明文CALL

2023-07-09 15:50 作者:迪大學(xué)院  | 我要投稿

了解發(fā)包函數(shù)

1.一款網(wǎng)絡(luò)游戲,必定是會(huì)發(fā)包的,對于PC端而言,想要進(jìn)行網(wǎng)絡(luò)通訊,就拿最簡單的CS架構(gòu)而言勢必會(huì)調(diào)用win32 API函數(shù)或底層函數(shù)

2.這里列舉出常用的API如:send sendto wsasend wspsend

3.有一些正向開發(fā)經(jīng)驗(yàn)的同學(xué),肯定是見過這幾個(gè)函數(shù)的

4.接下來我們來看看這款游戲到底是調(diào)用的那個(gè)API呢?或者說是哪幾個(gè)呢?

確定發(fā)包函數(shù)

1.我們選中匯編窗口,按ctrl+g,輸入send,回車跳轉(zhuǎn)到該函數(shù)頭部

2.來到函數(shù)頭部,我們下F2斷點(diǎn),確定是否是send發(fā)包

3.發(fā)現(xiàn)下斷就斷,很明顯可知很大可能性是send發(fā)包

確定包地址是否固定

1.確定了send發(fā)包,現(xiàn)在我們來看看該函數(shù)的函數(shù)類型,主要看參數(shù)

int?send(?SOCKET?s,?const?char?FAR?*buf,?int?len,?int?flags?);

2.注意看第二個(gè)參數(shù)是一個(gè)指針,指向一個(gè)緩存區(qū)地址,我們需要發(fā)送的數(shù)據(jù)就存放在這個(gè)緩沖區(qū)中,第三個(gè)參數(shù)是緩沖區(qū)大小,說白了就是需要發(fā)送數(shù)據(jù)有多少字節(jié)

3.現(xiàn)在我們斷下看看這個(gè)CALL的第二個(gè)參數(shù)是否是固定地址

4.在不同操作下,我們發(fā)現(xiàn)rdx是固定的地址,由此可見是固定地址

確定是否線程發(fā)包

1.我們上面確定了是send發(fā)包的包地址是一個(gè)固定地址,接下來就好辦了,只需要進(jìn)一步確定是否是線程發(fā)包就可以找到明文CALL

2.首先我們要確定該游戲是否用到了線程發(fā)包

3.我們這里在send下斷點(diǎn),這里我們尋路觸發(fā),注意這里最好操作快點(diǎn),因?yàn)橛行奶挠绊?/p>

4.我們操作快一點(diǎn),分別在尋路,喊話斷下,按Ctrl+F9不斷返回,看是否返回地址一樣

5.經(jīng)過分析不同的操作居然返回的地址幾乎一樣,由此可見在一個(gè)線程中循環(huán)執(zhí)行發(fā)包

6.到這里就可以確定是線程發(fā)包

跳出線程發(fā)包

1.我們確定為線程發(fā)包,主要目的是為了跳出線程發(fā)包,找到明文CALL

2.現(xiàn)在我們看看如何跳出線程發(fā)包呢?其實(shí)說白了就是跳出線程

3.這里給大家畫了一個(gè)正向代碼的架構(gòu)模型圖,方便看看

4.正如大家看到的,我們在send流程斷下的地方,都屬于線程2的范疇,而需要找到明文CALL,則需要跳出(Ctrl+F9)線程2

5.為了跳出線程2,靠Ctrl+F9是不可能跳出去的,因?yàn)槲覀兛吹揭粋€(gè)線程不停的在循環(huán)檢索固定地址的數(shù)據(jù)

6.這時(shí)候就需要借助內(nèi)存數(shù)據(jù)的訪問寫入斷點(diǎn),從而跨線程的尋找調(diào)用代碼

7.這里明確要記住的是,你只有內(nèi)存數(shù)據(jù)的訪問寫入才有跨線程的特性,而僅僅靠簡單的Ctrl+F9執(zhí)行到返回是不可能跨線程的

8.所以怎么跳出去呢?其實(shí)很簡單,上面我們也確定了包地址是固定的,所以只需要在包地址下寫入斷點(diǎn)就會(huì)跳出線程啦

9.這里還需要說明下, 經(jīng)過我們觀察心跳包是8字節(jié)也就是只修改了包緩沖區(qū)前8字節(jié),所以找好在那個(gè)包地址(首地址+偏移)下寫入是尤其重要的!

10.當(dāng)我們尋路的時(shí)候,發(fā)現(xiàn)修改的是超過8字節(jié)的緩沖區(qū),這時(shí)候我們就可以利用這個(gè)特點(diǎn),盡量在后8字節(jié)下寫入

11.當(dāng)下寫入后,我們尋路,此時(shí)就斷到了線程2以外的代碼處啦

12.到這里,基本可以大概率確定跳出去了,但是我們還是需要確定一下!

確定是否跳出線程成功

1.其實(shí)確定是很簡單的,那就是通過功能觸發(fā)斷下,多返回幾層,找到分支的那個(gè)點(diǎn)就可以啦

2.正如上面模型圖給大家畫的那樣,這里給大家再畫一個(gè)流程圖

3.通過幾個(gè)功能的返回CALL分析,我們最終確定了再返回的第二層就是明文CALL,因?yàn)檫@個(gè)CALL是基本上所有關(guān)于發(fā)包的功能都會(huì)斷下,而只要再返回一層,那就只有

在單獨(dú)的功能才能斷下啦

4.好啦,到此澤諾尼亞的明文CALL就找到了,是不是很簡單!

5.最后感謝大家對迪大學(xué)院的支持!285530835





二.《澤諾尼亞》明文CALL的評論 (共 條)

分享到微博請遵守國家法律
北宁市| 沽源县| 景东| 北流市| 鲁山县| 霍州市| 武陟县| 周至县| 长宁区| 巫山县| 泰兴市| 洪江市| 旌德县| 张家口市| 阳春市| 娱乐| 湘乡市| 绵竹市| 伊宁市| 乌兰浩特市| 盐山县| 江山市| 黄石市| 兴和县| 雅安市| 大悟县| 安泽县| 邵武市| 徐汇区| 东海县| 大同县| 英山县| 九龙城区| 铜鼓县| 呼伦贝尔市| 遂川县| 永和县| 浦城县| 荃湾区| 六盘水市| 中超|