Xposed 模組開發筆記

2021-10-20 22:39:18 字數 4346 閱讀 2958

最近使用 xposed 過程中遇到一些問題以及常識, 所以做下記錄, 方便之後再次使用

mylog 為自定義的日誌輸出類, 可以使用 xposedbridge.log() 代替

public

void

handleloadpackage

(xc_loadpackage.loadpackageparam lpparam)

throws throwable

catch

(exception e)}}

);}public

void

hookmethod

(final classloader cl)

/**

* hmacmd5, hmacsha1, hmacsha256

*/public

void

hookmaccrypto

(final classloader cl)

catch

(classnotfoundexception e)

xposedbridge.

hookallmethods

(hookclass,

"getinstance"

,new

xc_methodhook()

else

if(i ==1)

mylog.

success

("hookmaccrypto|getinstance() -> "

+ arg);}

}});

xposedbridge.

hookallmethods

(hookclass,

"init"

,new

xc_methodhook()

else

if(i ==1)

mylog.

success

("hookmaccrypto|init() -> "

+ arg);}

}});

xposedbridge.

hookallmethods

(hookclass,

"update"

,new

xc_methodhook()

else

if(param.args[i]

instanceof

byte

)else

if(param.args[i]

instanceof

bytebuffer)}

else

if(i ==1)

else

if(i ==2)

mylog.

success

("hookmaccrypto|update() -> "

+ arg);}

}});

xposedbridge.

hookallmethods

(hookclass,

"dofinal"

,new

xc_methodhook()

else

if(param.args.length ==2)

}else

if(i ==1)

mylog.

success

("hookmaccrypto|dofinal() -> "

+ arg);}

}else

if(param.

getresult()

!= null)

else

mylog.

info

("\n");

mylog.

info

("\n");

}});

}/**

* aes, des, rsa

*/public

void

hookciphercrypto

(final classloader cl)

catch

(classnotfoundexception e)

xposedbridge.

hookallmethods

(hookclass,

"getinstance"

,new

xc_methodhook()

else

if(i ==1)

mylog.

success

("hookciphercrypto|getinstance() -> "

+ arg);}

}});

xposedbridge.

hookallmethods

(hookclass,

"init"

,new

xc_methodhook()

else

if(i ==1)

else

if(param.args[i]

instanceof

certificate)}

else

if(i ==2)

else

if(param.args[i]

instanceof

securerandom)}

mylog.

success

("hookciphercrypto|init() -> "

+ arg);}

}});

xposedbridge.

hookallmethods

(hookclass,

"update"

,new

xc_methodhook()

else

if(param.args[i]

instanceof

bytebuffer)}

else

if(i ==1)

else

if(param.args[i]

instanceof

bytebuffer)}

else

if(i ==2)

else

if(i ==3)

mylog.

success

("hookciphercrypto|update() -> "

+ arg);}

}});

xposedbridge.

hookallmethods

(hookclass,

"dofinal"

,new

xc_methodhook()

else

if(param.args[i]

instanceof

bytebuffer)}

else

if(i ==1)

else

if(param.args[i]

instanceof

bytebuffer

) mylog.

success

("hookciphercrypto|dofinal() -> "

+ arg);}

else

if(i ==2)

else

if(i ==3)

}}else

if(param.

getresult()

instanceof

byte

)if(o.getiv()

!= null)

mylog.

info

("\n");

mylog.

info

("\n");

}});

}public

static string tohex

(byte

barr);if

(barr == null || barr.length ==0)

stringbuilder sb =

newstringbuilder()

;for

(byte b : barr)

return sb.

tostring()

;}

github 上也有相關**: 看這裡

url 編碼轉換

aes 加密解密

rsa 加密解密

md5 字典/加密

對稱加密、非對稱加密、ssl 工具

json 格式化

目前常用的工具有:

不過 xposed 每次修改模組都需要重啟才能生效, 有點麻煩

android 8.1+ 可以試一下 lsposed 或者 frida

frida從入門到放棄

odoo11開發筆記 模組開發

自定義模組顯示需要 manifest.py n.貨單 vi.顯示 是 odoo 的乙個模組宣告。it contains a python dictionary with information about the module,the modules it depends on,and the da...

JS 模組化開發筆記 1

umd模組化開發 模板 優缺點 工廠模式開發 它使用了兩個匿名函式。後面那個函式可以看作是模組 的工廠函式,它是模組的主體部分。前面那個函式對執行環境進行檢測,根據檢測的結果對模組的工廠函式進行呼叫。另外,作為乙個通用庫,它並沒使用 window 物件,而是使用了 this,因為在簡單的函式呼叫中,...

Android 開發筆記

版本控制的注意事項 以下資料夾不要加入版本控制 bin bin是編譯的二進位制檔案的存放路徑 gen gen是android需要的資源檔案的原始檔存放的目錄 使用svn的時候要注意專案編譯的問題 在編譯的時候程式會把src資料夾裡面的檔案拷貝到bin裡面,但是svn是每個資料夾裡面都包含乙個隱藏的....