-
Notifications
You must be signed in to change notification settings - Fork 1.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
一点VMP脱壳技巧分享 #44
Comments
牛逼 |
关于脱壳的问题, 相信很多非安全岗位的小伙伴都不太熟悉。请问是否可以说的更详细一些,或者直接给出脱壳后的dex呢? @vangogh0101 @davinci1010 |
md5sum
what does |
大神能不能手把手小白们,图文教一下怎么manwe、nvwa保护脱壳成dex文件? |
@vangogh0101 我这非安全相关的。有点懵逼。大佬能给个脱壳之后的dex嘛??302748574@qq.com |
你当这是写helloworld呢 |
虽然我也不会 |
大哥,能分享一下脱壳后的dex吗 |
大佬能否分享一下bot/alive_security_biz_plugin/mw1.bin(AliveStrategyBizComp)样本? |
来了来了,大神创建了个脱壳机仓库。https://github.com/davinci1012/pinduoduo_backdoor_unpacker |
|
https://github.com/davinci1012/pinduoduo_backdoor_unpacker manwe 和 nvwa 的脱壳程序代码都有。 python运行环境,会有各种问题,自行动手解决 |
看到有大佬问VMP怎么脱,分析下来PDD的恶意代码是有两套VMP进行保护(manwe、nvwa),有的是manwe保护,有的是nvwa保护,都是单个保护,不会保护两次。VMP文件以.bin结尾,PDD安装之后,会释放到files/.components里,文件在vmp_src中,然后再拷到files/bot/目录下面。有的是自带直接释放,有的是从远端拉取。manwe的解释器在com.xunmeng.manwe.*里面,nvwa在libnvwavm-lib.so里。
manwe逆向下来,是JVM on Java设计的一套VMP,constant pool设计与原始JVM有一些不同,同时多个class被压缩在一个bin文件中,opcode基本一一对应。nvwa为JVM转native的一套VMP,Dalvik opcode对应到自设计的一套native vmp上。VMP代码通过PluginBridge类,与主App中的interface进行交互。
脱壳的话,manvwa、nvwa都是把opcode一一重写回去就好了,注意跳转指令之类的offset需要调整,constant pool里面一些Ref需要调整。utf16string编码是颠倒的,对调回去就可以恢复出字符串。class都转化成了string引用
除了原po分析的AliveBaseAbility,各位大佬也可以关注下bot/alive_security_biz_plugin/mw1.bin(AliveStrategyBizComp),里面的东西更劲爆。
The text was updated successfully, but these errors were encountered: