swag-wp
安卓逆向
打開(kāi)lib里面的so文件拖進(jìn)IDA看JNI_OnLoad
找到B2函數(shù)地址

v8是目標(biāo)數(shù)組
中間經(jīng)過(guò)三個(gè)變換,但是大佬的wp里面只有矩陣乘法這個(gè)變換sub_1090
(隊(duì)長(zhǎng)說(shuō),前面的函數(shù)轉(zhuǎn)換是為了存dword長(zhǎng)度的數(shù)據(jù))
sub_DB0 把數(shù)據(jù)轉(zhuǎn)換成6*6矩陣
sub_F10 矩陣的逆
sub_1090 矩陣相乘
加密的是求逆,解密的時(shí)候是專(zhuān)置矩陣(很難受,我數(shù)學(xué)也就這樣了)

6*6矩陣
這張圖可能告訴了我們數(shù)組

應(yīng)該是這樣的

注意小端序
win下的numpy好麻煩,在Ubuntu16.04里弄了,寫(xiě)成py文件直接運(yùn)行比在命令行里打不容易報(bào)錯(cuò)。
v8的數(shù)組因?yàn)槭侵羔樣?1,-2,-3,-4,-5這樣的,所以要考慮數(shù)組開(kāi)始的位置往前移20個(gè)。也要注意小端序。
1. 當(dāng)為array的時(shí)候,默認(rèn)d*f就是對(duì)應(yīng)元素的乘積,multiply也是對(duì)應(yīng)元素的乘積,dot(d,f)會(huì)轉(zhuǎn)化為矩陣的乘積, dot點(diǎn)乘意味著相加,而multiply只是對(duì)應(yīng)元素相乘,不相加2. 當(dāng)為mat的時(shí)候,默認(rèn)d*f就是矩陣的乘積,multiply轉(zhuǎn)化為對(duì)應(yīng)元素的乘積,dot(d,f)為矩陣的乘積