360脫殼分析1 記憶體dump的時機選擇

2021-06-29 05:32:50 字數 496 閱讀 4705

**

360對dex的保護是比較好的,直接去dump記憶體會發現activity類都是有問題的,從dex格式而言,其dexclassdef結構體是有問題的,除了classid的所有成員均為0。

那應該怎麼脫呢,當然360對so有加殼,我們可以對其進行脫殼後進行分析;另外,當然也可以修改libdvm來進行脫殼。

但對於一名coder而言,能否從實現角度出發呢?如果我們來實現這個功能,要如何做。

我們知道,通常加殼方案中,需要替換classloader來載入系統元件類(當然也可以用替換mcookie的方法),activity當然也是一種系統元件。那麼,可以大膽猜測,360的加殼方案中,在classloader的loadclass函式上是動了手腳的,來達到先修正activity類,再修錯的目的。

有了這個猜測後,實現就很簡單了,可以hook loadclass,在這個時機點,去dump記憶體,就可以得到正確的dex。

當然,如果在dvm中實現,應該可以在defineclass函式中進行實現。

jvm記憶體快照dump檔案太大,怎麼分析

通常,使用eclipse的mat圖形化工具開啟dump的時候都會記憶體溢位.對於比較小的dump,eclipse可以開啟,但一旦dump檔案太大,eclipse就有點束手無策。這時候怎麼辦呢?可以使用linux下的mat,既memory analyzer tools 手工直接導,pid為程序號 jm...

ext記憶體洩露分析1

記憶體釋放在使用ext開發opoa系統時顯得尤為重要 開始接觸ext開發,中間花了很多時間來解決記憶體洩漏。最開始ext還是3.0版,洩漏得一塌胡塗,也沒什麼處理頭緒,只知道在ondestroy裡加delete語句,用sieve看效果。而ext3.1有了乙個很大的進步,基本上絕大多數元件都沒有洩漏了...

set方法記憶體分析 1

這個之前的記憶體管理分析中,存在一些問題,比如說在多個物件中,要保證乙個物件沒有被系統 之前,不能被銷毀掉,就像下面的這個demo一樣,person有一輛車,但是他覺得這輛車他不喜歡了,他想換一輛車,那我有2個car的物件,該怎麼去處理這個記憶體管理的問題.import import person....