davinci1010 / pinduoduo_backdoor

拼多多apk内嵌提权代码,及动态下发dex分析
5.36k stars 1.92k forks source link

所以有大佬可以给一个能复现的demo吗 #61

Open rainggo opened 1 year ago

M69W commented 1 year ago

老设备无力抵抗,遍地开花

elllusion commented 1 year ago

你去看机型对应的AlivePullStartup 和AlivePullStartUpImpl 与 CommonAlivePullStartUp就能知道该咋利用了。重要的也就这几个文件。调用链在往上都是一些接口类没啥值得看的。而AlivePullStartUpImpl是整个调用的核心,通过他才能让整个恶意代码开始工作。

AlivePullStartUpImpl 里的这个方法是调用恶意代码运行的。

private IManuAlivePullStartUp getManuAlivePullStartUp() { return (RomOsUtil.instance().isNewHuaweiManufacture() || RomOsUtil.instance().isHonerManufacture()) ? new HwAlivePullStartup() : RomOsUtil.instance().isOppo() ? new OppoAlivePullStartup() : RomOsUtil.instance().isSamsung() ? new SamsungAlivePullStartup() : RomOsUtil.instance().isXiaomiManufacture() ? new MiAlivePullStartUp() : RomOsUtil.instance().isVivoManufacture() ? new VivoAlivePullStartUp() : new DummyManuPullStartUp(); }

zhangjg0201 commented 1 year ago

AlivePullStartUpImpl我也看了好久, 有几个比较关键的方法。

  1. startSpecialActivity,绑定了PDD的一个服务,好像是让这个服务去启动activity
  2. startAccount, 好像是通过一些手段,尝试在在后台启动Activity(Android中是限制后台起Activity的)
  3. makeBundle, 关键的漏洞代码在这里, 但是不知道怎么使用的,也没看明白Bundle里面放了什么东西
elllusion commented 1 year ago

AlivePullStartUpImpl我也看了好久, 有几个比较关键的方法。

  1. startSpecialActivity,绑定了PDD的一个服务,好像是让这个服务去启动activity
  2. startAccount, 好像是通过一些手段,尝试在在后台启动Activity(Android中是限制后台起Activity的)
  3. makeBundle, 关键的漏洞代码在这里, 但是不知道怎么使用的,也没看明白Bundle里面放了什么东西

反编译代码然后按照代码的思路写一份然后运行不就知道效果了, 光看没啥用要写代码然后编译运行。

huonie4 commented 1 year ago

AlivePullStartUpImpl我也研究了好久,有几个比较关键的方法。

  1. startSpecialActivity,绑定了PDD的一个服务,希望让这个服务去启动activity
  2. startAccount,希望是通过一些手段,尝试在后台启动Activity(Android中是限制后台启动Activity的)
  3. makeBundle,关键的漏洞代码在这里,但是不知道怎么使用的,也不看明白Bundle里面放了什么东西

您这边复现了吗,我通过AlivePullStartUpImpl获得bundle,但是我卡在context上了,仿佛context并没有获得提权