Skip to content
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

Open
vangogh0101 opened this issue Mar 10, 2023 · 12 comments
Open

一点VMP脱壳技巧分享 #44

vangogh0101 opened this issue Mar 10, 2023 · 12 comments

Comments

@vangogh0101
Copy link

vangogh0101 commented Mar 10, 2023

看到有大佬问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),里面的东西更劲爆。

@xmhwws
Copy link

xmhwws commented Mar 10, 2023

牛逼

@zhangjg0201
Copy link

关于脱壳的问题, 相信很多非安全岗位的小伙伴都不太熟悉。请问是否可以说的更详细一些,或者直接给出脱壳后的dex呢? @vangogh0101 @davinci1010

@jtirjgsitw31198
Copy link

md5sum

569d110753d56aec16b81f8394c5b2d8 /data/data/com.xunmeng.pinduoduo/files/.components/com.xunmeng.pinduoduo.AliveBaseAbility/vmp_src/mw1.bin
569d110753d56aec16b81f8394c5b2d8 /data/data/com.xunmeng.pinduoduo/files/bot/alive_base_ability_plugin/6.49.7/mw1.bin
353412bf94ff41261ccbe809c9eff98f /data/data/com.xunmeng.pinduoduo/files/bot/base_secdt_comp_plugin/6.45.0/nw0.bin

what does bot/alive_security_biz_plugin/mw1.bin(AliveStrategyBizComp) file hash ?

@pengguanming
Copy link

大神能不能手把手小白们,图文教一下怎么manwe、nvwa保护脱壳成dex文件?

@15198184721
Copy link

@vangogh0101 我这非安全相关的。有点懵逼。大佬能给个脱壳之后的dex嘛??302748574@qq.com

@wangyuan0217
Copy link

大神能不能手把手小白们,图文教一下怎么manwe、nvwa保护脱壳成dex文件?

你当这是写helloworld呢

@wangyuan0217
Copy link

虽然我也不会

@PoisonGZ
Copy link

大哥,能分享一下脱壳后的dex吗

@elllusion
Copy link

大佬能否分享一下bot/alive_security_biz_plugin/mw1.bin(AliveStrategyBizComp)样本?

@pengguanming
Copy link

来了来了,大神创建了个脱壳机仓库。https://github.com/davinci1012/pinduoduo_backdoor_unpacker

@elllusion
Copy link

大哥,能分享一下脱壳后的dex吗

https://github.com/poorjobless/pinduoduo_backdoor_code

@VinaChiong
Copy link

@vangogh0101 我这非安全相关的。有点懵逼。大佬能给个脱壳之后的dex嘛??302748574@qq.com

https://github.com/davinci1012/pinduoduo_backdoor_unpacker

manwe 和 nvwa 的脱壳程序代码都有。
manwe 用 java,nvwa用的python

python运行环境,会有各种问题,自行动手解决
说不上掌握多深,过程权当学习

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

10 participants