安卓記憶體教程技術交流(一) 記憶體特徵碼讀寫原理分析

2021-09-26 21:35:49 字數 2467 閱讀 9689

技術研究:安卓記憶體很少人關注,下面 類人猿就講解一些見到的安卓記憶體輔助方法和思路

特徵碼定位是最蠢的辦法,但是也是最簡單最容易實現。其他方法可以關注我的帖子。

類人猿記憶體實現功能:大家都知道安卓實現找座標要識別資料,要製作字型檔找圖找色,可能要很多嘗試除錯,還要加各種演算法等一些麻煩的東西,如果用記憶體反而簡單的,可能你在幾分鐘之內就能夠把座標、地圖名字、人物相關屬性、怪物型別等完美識別。而且非常的精準,幾乎不會出現錯誤,準確率是99.99%。這就是記憶體的好處。

記憶體識別優點:1.識別速度快(識別座標字型只要0.01秒)  2.精準穩定   3.節省判斷測試指令碼的時間
1.下面的例子是某網遊,模擬器測試用海馬,其他模擬器也可以的。

《目標:找到座標值,並且記憶體定位,防止資料更新<<<<<<<<<<<<<<<<<<<<<<<<<

大家可以通過燒餅等工具搜尋查詢相關的資料。有檢測就換其他搜尋工具。這裡假如座標浮點數搜尋40.通過變化來獲取的,具體情況具體分析。另外注意這個遊戲的座標是浮點數f32,顯示的時候不會四捨五入的。如:x座標18.9333725,顯示18整數。 搜尋注意資料型別是dword整數還是float和double等。

3.下面這張圖是檢視位址相對應的記憶體區域。我們分析相關資料那些是不變的。

4.紅色的就作為記憶體特徵碼進行搜尋。

下面的語法應該是個類似鍊錶的位址結構。應該可以理解為雙向搜尋。

dim tb1 = //這兩個是特徵碼,鍊錶

dim tb2 = //4是位址排序偏移

5.直接上原始碼給大家學習!

dim 當前應用包名

當前應用包名 =sys.getfront()

traceprint 當前應用包名

dim addr = "0xb0000000"

dim tb1 =

dim tb2=

dim tb =

dim t = tickcount()

dim addr_search = sys.memorysearch(當前應用包名,true,addr,tb, "i32",0,5)

dim 座標位址x = 位址相加(addr_search(0),16) // 座標x

traceprint 座標位址x

dim 座標位址y = 位址相加(addr_search(0),24)//座標y

traceprint 座標位址y

traceprint "當前座標x為:"&sys.memoryread(當前應用包名,座標位址x,"f32")

traceprint "當前座標y為:"&sys.memoryread(當前應用包名,座標位址y,"f32")

for i = 0 to ubound(addr_search)

traceprint"地圖位址x為:"&addr_search(i)+44

next

for i = 0 to ubound(addr_search)

traceprint"地圖位址y為:"&addr_search(i)+44

next

do //迴圈列印出,迴圈判斷座標

dim座標x = int(sys.memoryread(當前應用包名,座標位址x,"f32"))

dim座標y =int(sys.memoryread(當前應用包名,座標位址y,"f32"))

traceprint"座標x:" &座標x,"座標y:"&座標y

showmessage"座標x:" &座標x&"座標y:"&座標y, 4000,500,500

delay200

loop

function 位址相加(位址, 偏移)

dim a = right(位址,len(位址)-2)

dim b =clng("0x"&a)

dim c = b+偏移

dim d = hex(c)

dim e = "0x"&d

位址相加 = e

end function

總結:其實安卓的簡單的記憶體讀寫是很容易的,沒有想象中的那麼複雜。這裡pc和安卓本來就有很多相似的地方的。可能我基礎相對好一點,學的也相對塊一點。但是我這幾天學到的東西遠遠不止上面的內容。最近我比較忙,有空大家留意我其他帖子,有時間我盡量上傳上去,你們看了應該會有很大的驚喜的。手頭上殺手鐗思路還挺多的。

安卓記憶體優化

1.資料結構優化 頻繁字串拼接用stringbuilder arraymap sparsearray替換hashmap 記憶體抖動 再小的class耗費0.5kb hashmap乙個entry需要額外占用32b 2.物件復用 復用系統自帶的資源 listview gridview的convertvi...

安卓記憶體的統計

ddr totalmem 預留記憶體 核心 段 啟動階段的列印中可以看到 totalmem free used lost 這三個資料在dumpsys meminfo 中可以看到 free pss cached kernel cached free proc meminfo中的free used ps...

安卓記憶體洩漏和記憶體溢位區別

記憶體溢位 out of memory,是指程式在申請記憶體時,沒有足夠的記憶體空間供其使用,出現out of memory 比如申請了乙個integer,但給它存了long才能存下的數,那就是記憶體溢位。記憶體洩露 memory leak,是指程式在申請記憶體後,無法釋放已申請的記憶體空間,一次記...