最近使用 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是每個資料夾裡面都包含乙個隱藏的....