最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

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

游戲安全丨喊話CALL分析-分析參數(shù)

2022-06-23 10:58 作者:rkvir逆向工程學(xué)院  | 我要投稿

文章主要內(nèi)容是有參CALL如何分析參數(shù),在寫匯編時如何把參數(shù)寫進(jìn)去以及如何調(diào)用。

以喊話CALL為例,喊話CALL是用代碼來調(diào)用,打印任意的話。


1.打開x86dbg,文件-附加-打開游戲




2.bp send(設(shè)置send函數(shù)的斷點)回車,斷點,再運行


3.在游戲中,點擊“當(dāng)前”,輸入123456,再運行x86dbg


4.點擊調(diào)用堆棧,找到斷點,復(fù)制整個表格


5.新建分析文本,粘貼整個表格,只留下主線程,在第三層74開始分析


6.運行,然后斷點禁用或刪除


7.Ctrl+G返回到這里,確定


8.返回到是Nop,它的上一層就是調(diào)用的call,可以看到有三個參數(shù)rdx、r8d(r8的32位)、rcx(在64位類似fastcall,它的前四個參數(shù)分別是rcx、rdx、r8、r9)

喊話CALL是會帶一個發(fā)送的文本,有文本參數(shù),所以先找一下參數(shù)。


9.1 點擊call的地方下斷點,在游戲內(nèi)-當(dāng)前-發(fā)送文本


9.2來看一下參數(shù),發(fā)現(xiàn)其他rax、rsi、r10、r11里有文本,但在r8、r9、rcx、rdx里沒有



因此判斷不是我們要找的CALL,是底層或上一層call,取消斷點


9.3文本參數(shù)應(yīng)該前四個參數(shù)里


9.4 Ctrl+G返回到這里,確定


9.5下個斷點,走動一下(防止是其他call),再說一句話,回車


9.6斷下來,發(fā)現(xiàn)r8符合要求


9.7把參數(shù)記下來,然后斷點運行


9.8復(fù)制寄存器,只留通用寄存器


9.9把rcx、rdx、r8、r9參數(shù)復(fù)制下來,可以確定r8是字符串地址


10.找rdx參數(shù)

10.1 Ctrl+G返回到這里,確定


10.2測試rdx,在當(dāng)前多喊幾次話,發(fā)現(xiàn)寄存器沒有值,所以認(rèn)為rdx是寫死的值-0


10.3再切換主隊,發(fā)現(xiàn)rdx有變化,所以判定rdx是說話的方式



10.4當(dāng)前模式是0,組隊模式是2,團(tuán)隊模式是12


11.找r9參數(shù)

11.1測試r9,多喊幾遍,r9沒有變化,r9是寫死的值-FFFFFFFF


12.找rcx參數(shù)

12.1復(fù)制rcx,重啟游戲并重新打開x86dbg,文件-附加-打開游戲



12.2喊話-斷點,發(fā)現(xiàn)rcx的值變了,所以需要找一下值


12.3返回調(diào)用,發(fā)現(xiàn)rcx來自與rbp+620,然后找一下620

使用x64dbg繼續(xù)調(diào)也可以,使用ida看起來更方便


12.4把64位客戶端在64ida里打開

12.5 CTRL+G跳轉(zhuǎn)到返回的位置上,發(fā)現(xiàn)沒有rcx賦值

13.因為很難找到rcx,所以找到另一個突破點

13.1在寄存器里發(fā)現(xiàn)rbx和rcx一樣,就以rbx為突破點,找到了rbx對rcx的賦值

13.2懷疑沒有通過src對rcx賦值,而是通過rbx對rcx賦值之后,通過跳轉(zhuǎn)到參數(shù)傳遞,直接調(diào)用喊話CALL

13.3 若是上述情況,需要先找rbx的值

13.3.1發(fā)現(xiàn)是變量Var EB0給rbx賦值



13.3.2再尋找變量Var EB0,發(fā)現(xiàn)是rax賦值給變量Var EB0



13.3.3 rax值來源于上面的call,call的返回值是rax



13.4 Rcx=那個call的返回值

13.4.1進(jìn)一層,Rax就是call的返回值+48,然后取值



13.4.2再進(jìn)去一層,發(fā)現(xiàn)一個基址放在rax里



13.4.3 Rcx=[0x基址+0x48]


到此數(shù)據(jù)分析的四個參數(shù)已經(jīng)都找到了


游戲安全丨喊話CALL分析-分析參數(shù)的評論 (共 條)

分享到微博請遵守國家法律
越西县| 平利县| 浑源县| 科尔| 通榆县| 安宁市| 姚安县| 景谷| 长汀县| 东宁县| 洞头县| 平阴县| 浮梁县| 华蓥市| 牙克石市| 永川市| 凤山市| 封开县| 平乐县| 蓬溪县| 商丘市| 太仓市| 玛多县| 铁力市| 灌阳县| 项城市| 大姚县| 岱山县| 河源市| 遵义县| 平安县| 绥中县| 安远县| 锡林浩特市| 邓州市| 新源县| 富蕴县| 汤原县| 成安县| 合作市| 苍山县|