005 定位控件输入call
文章目錄
- 什么是控件輸入call
- 定位控件輸入call
- 定位字符長度
- 通過字符長度定位控件輸入call
什么是控件輸入call
當(dāng)我們想要在游戲里進(jìn)行喊話和聊天的時候,需要在游戲內(nèi)置的控件里輸入相應(yīng)的內(nèi)容,這個往控件輸入內(nèi)容的call就叫控件輸入call。
定位控件輸入call
以游戲的賬號密碼輸入框為例,來找這樣一個控件輸入框。當(dāng)我們在輸入字符的時候,這個call會在內(nèi)部改變當(dāng)前的字符長度,字符長度就可以作為一個突破口。
所以利用這個內(nèi)存訪問關(guān)系,只要在當(dāng)前的字符長度下斷,就可以找到這個控件輸入call
定位字符長度
首先在控件里輸入8個1,在CE里搜索8
然后不斷去修改字符長度,很容易就能篩出控件的字符長度。
最后還剩下三個值,然后我們把鼠標(biāo)挪到1111的位置,再來看一下三個值的變化
注意看光標(biāo)的位置和CE里的數(shù)值。有兩個值發(fā)生了變化,這兩個值表示的是當(dāng)前光標(biāo)所在的字符的位置,剩下的那個才是真正的字符長度
通過字符長度定位控件輸入call
接著我們在字符長度下硬件寫入斷點,隨便輸入一個值,讓程序斷下
打開調(diào)用堆棧,找到第二個call,顯示調(diào)用,這個就是我們要的控件輸入call
接下來分析參數(shù),我們先輸入一個8,看看當(dāng)前的寄存器狀態(tài)
ebx的值是38,也就是數(shù)字8的ASCII值,所以這個參數(shù)的含義是輸入的按鍵ASCII值
再看ecx,這個寄存器的值在輸入按鍵和密碼的時候分別出現(xiàn)了兩次,那么可以猜到這個參數(shù)應(yīng)該就是控件ID。
往上追ecx的來源可以找到一個二叉樹的結(jié)構(gòu),我們這里不進(jìn)行深究。
相關(guān)工具:
https://github.com/TonyChen56/GameReverseNote
總結(jié)
以上是生活随笔為你收集整理的005 定位控件输入call的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 004 两种方法找寻路call
- 下一篇: 008 数据结构逆向—数组(简单版)