網站商城定制網站建設蘇州seo營銷
Android逆向學習(三)vscode修改smali繞過vip
寫在前面
這是吾愛的第二個作業(yè),主要就是要修改smali代碼,其實smali代碼我感覺沒有必要去學,當然主要是我本來就會匯編語言,基本上匯編語言都是一樣的,我是了解過mips,x86,jimple的,不管是mips還是smali還是x86的或者jimple,主要就是最寄存器的一些操作,格式也都差不多,簡單學一下就可以上手
修改判斷繞過vip
還是老樣子,我們直接逆向后找到第二個挑戰(zhàn)
事實上這個挑戰(zhàn)我感覺更加簡單,所以大概率這篇博客看起來像是一個水文
1、任務目標
這一個挑戰(zhàn)的目標就是實現(xiàn)投幣的一鍵三連,但是三連的話需要有一個大會員判斷,我們這一次的任務就是繞過這個大會員
2、代碼分析
我們直接使用之前的代碼逆向軟件,逆向后找到這個activity。然后看看這個代碼的邏輯是怎么樣子的
這時候可以直接使用smali2java這個插件查看反編譯的java代碼,但是缺點就是沒法直接改java代碼然后逆向回去,這里點名表揚一下dnspy這個軟件,這是個專門對.NET進行逆向的一個軟件,這個軟件就可以直接修改代碼后重新編譯回去
然后查看代碼結構我們發(fā)現(xiàn)他就是通過isvip這個函數(shù)判斷是不是大會員,這里其實有兩個方法,一種是改變判斷條件,一種是改變返回值,這個只需要簡單學一下smali代碼的語法就可以了,我選擇的是第二種,這種更加簡單
我們通過查看代碼發(fā)現(xiàn)isvip是只會返回一個false,我們就把它換成true就可以了
然后我們很快就發(fā)現(xiàn)這個代碼了
.method public final isvip()Z.locals 1const/4 v0, 0x0return v0
.end method
3、代碼修改
然后我們將這個代碼修改為這樣
.method public final isvip()Z.locals 1const/4 v0, 0x1return v0
.end method
把0x0換成0x1,就相當于永遠返回true了
然后我們重新打包一下,然后簽名安裝