日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > Android >内容正文

Android

【原创】Android VMP加壳 POC

發(fā)布時(shí)間:2025/3/21 Android 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【原创】Android VMP加壳 POC 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

介紹
這個(gè)殼的核心——字節(jié)碼解釋器,它參考了dalvik虛擬機(jī)的解釋器。不需要hook、注入。目前只支持算數(shù)運(yùn)算指令。

我個(gè)人把dalviki指令分為這么幾類(lèi):

  • 算數(shù)運(yùn)算指令。
  • 引用類(lèi)指令。如const-string、invoke-kind,這類(lèi)指令需要引用dex的資源。
  • 其他指令


解釋執(zhí)行算數(shù)運(yùn)算指令較為簡(jiǎn)單。
引用類(lèi)指令的實(shí)現(xiàn)需要解析dex文件的格式,把class、method、field、string等數(shù)據(jù)解析一遍,保證可以找到這些數(shù)據(jù),那么引用類(lèi)指令的解釋執(zhí)行就可以實(shí)現(xiàn),這個(gè)是我準(zhǔn)備要做的。
雖然現(xiàn)在還比較簡(jiǎn)陋,但是能運(yùn)行了下面有源碼放出

關(guān)于dalvik虛擬機(jī)如何解釋執(zhí)行opcode我有一些分析,有興趣的可以瞅瞅~
dalvik虛擬機(jī)解釋執(zhí)行字節(jié)碼
【分析】生成dalvik解釋器原文件的腳本:gen-mterp.py
dalvik虛擬機(jī)啟動(dòng)過(guò)程(一共有3篇)

這個(gè)殼叫advmp,最初的名字是avmp,意思是Android VMP,但是想了想不敢稱(chēng)VMP啊,因?yàn)殡m然代碼中字節(jié)碼實(shí)現(xiàn)了解釋執(zhí)行,但是也要結(jié)合dalvik,而且代碼中借鑒了dalvik的源碼,所以中間加了個(gè)D,向dalvik致敬。

例子
壓縮包中有一個(gè)buwaishell.jar文件,可以用它來(lái)加殼,是不是有點(diǎn)激動(dòng),想試一試!
可惜你想多了,它目前只對(duì)一個(gè)APK有效,就是壓縮包中的 AndroidHelloWorld.apk文件,在命令行下使用命令"java -jar buwaishell.jar -s .\AndroidHelloWorld.apk -o .",然后就會(huì)生成一個(gè)AndroidHelloWorld.shelled.apk文件。
那么buwaishell.jar到底做了什么哪?它把APK中的一個(gè)方法變成了native,然后把這個(gè)方法的指令抽取了出來(lái),這個(gè)指令很簡(jiǎn)單,就是一個(gè)加法指令,然后當(dāng)APK運(yùn)行的時(shí)候會(huì)在解釋器里執(zhí)行抽取出來(lái)的指令,然后得出正確的結(jié)果。
[*例子:advmp.zip.*]

源碼目錄說(shuō)明
AdvmpTest:測(cè)試用的項(xiàng)目。
base:Java項(xiàng)目。里面是一些工具類(lèi)代碼。
control-centre:Java項(xiàng)目??刂萍庸塘鞒?。
separator:Java項(xiàng)目。抽離方法指令,然后將抽離的指令按照自定義格式輸出,并同時(shí)輸出C文件。
template/jni:C代碼。里面包含了解釋器的代碼。
ycformat:自定義的文件格式,用于保存抽取出來(lái)指令等數(shù)據(jù)。

源碼
GitHub:https://github.com/zylc369/ADVMP

?

ADVMP-master.zip

轉(zhuǎn)載于:https://www.cnblogs.com/develop/p/4397397.html

總結(jié)

以上是生活随笔為你收集整理的【原创】Android VMP加壳 POC的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。