前几天被安利了个雷电模拟器,一个 Windows 上的 Android 模拟器,使用了 2 天,性能不错,开机速度也挺快的,但有些广告,看得不舒服,手动删了
考虑可行方案
系统文件角度,删除磁盘上的广告文件
直接搜索相关文件夹(可以用 everything 搜关键字),简单快速,但可能会有遗漏
追踪分析相关程序的资源调用(可以用 procmon 分析),几乎没有遗漏,但分析起来比较麻烦
网络流量角度,分析网络流量,广告资源极有可能是联网获取的,禁止其联网获取广告即可
安卓虚拟机内部,其实也是系统文件角度,只不过是转移到了安卓虚拟机里了而已,也是直接去除广告文件
以上我都试过了,所以分别给出解决方案
同样的不想看分析过程的点下面直达结果
网络方案 简单方便,可去开屏广告,但无法更新主程序,所以不推荐
文件方案 较为麻烦,可去开屏广告,可更新
虚拟机 去除内置应用,实现广告点击无效,但底栏广告仍然没有去掉(待解决)
去广告效果大概是这样的
网络分析依旧是先上火绒联网控制,发现只有dnplayer.exe联网,而且只外联 80 端口,wireshark 分析了一波,主要是检查版本更新以及获取广告资源
仅抓取 80 端口的流量就好,数据量较小,容易分析
显示获取广告的 json 文件,是 res 的子域名
然后获取广告图片,是 img 子域名
还有就是检查更新
往下翻就是广告文件了,可以看到都是 res 子域的
一个极像主程序检查更新的包,然而 204,来自 inf 子域
后面又一个检查更新,来自 api 子域
总结一下,主要广告文件来自 res 和 img 子域,版本检查是 inf 和 api,考虑到后续程序更新的文件有可能来自 res,所以直接 ban 掉 res 可能收不到更新,既然收不到更新,那就不如直接 ban 掉 80 端口,或者是直接禁止联网就好了
网络途径解决火绒联网控制直接 ban 掉dnplayer.exe的 80 端口,缺点是无法更新,如果你不需要什么更新的话联网控制是个不错的选择,简单方便,同样提供火绒的配置文件,导入即可
ldmnq_ban_tcp80.json
如果你的安装目录不是D:\Changzhi\dnplayer2的话,请仿照我的格式替换D:\\Changzhi\\dnplayer2字样即可,注意是双反斜杠\\
另外如果你不想更新的话,还可以考虑用 hosts 文件 ban 掉 res 和 img 子域,有一定概率可以收到更新,例子如下
12127.0.0.1 res.ldmnq.com127.0.0.1 img.ldmnq.com
文件分析仅仅提供网络层面无法完美的解决问题的,下面就是从系统文件的角度看
主要涉及文件夹有
安装文件夹,雷电模拟器安装的时候默认是在D:\Changzhi\dnplayer2
用户目录的程序文件,%AppData%\ChangZhi2
以及文档目录的文件夹,%USERPROFILE%\Documents\雷电模拟器,这个可以不管
下面一个个看
dnplayer2雷电模拟器安装的时候默认是在D:\Changzhi\dnplayer2,目录结构如下
12345678910111213.├─apk├─res├─system.vmdk.lck├─vbox64├─vbox86└─vms ├─config ├─customizeConfigs ├─leidian0 │ └─Logs ├─operationRecords └─recommendConfigs
tip: 以上目录结构使用tree命令生成
根目录放了一些程序文件,以及 vmdk 的虚拟机磁盘文件
apk只有一个 weixin.apk,我这里看得是微信 6.6.6 版本的安装包,经过校验 hash 与官方包一致,可以放心食用
res两个光标文件,大概是游戏的光标
vbox64 & vbox86对应平台下的 vbox 相关文件,不管
vmsconfig一些启动配置,大致与设置中的配置相对应
customizeConfigs & recommendConfigs游戏推荐配置以及自定义配置,多为游戏键位映射
operationRecords操作记录?猜测是录制的脚本存放位置
leidian*其中的*为数字,标志虚拟机的序号,里面就是对应的虚拟机文件,包括配置文件以及虚拟磁盘文件
总结没有什么与广告相关的文件,不过后续虚拟机分析可以从 vmdk 虚拟磁盘下手
ChangZhi2用户目录的程序文件,%AppData%\ChangZhi2,目录结构比较简单
12345.├─android_bug├─cache├─gpu_bug└─log
根目录里面adinfo2.ini名字就很惹眼,然而打开看不懂…
拉倒,看appconfig.ini,adlastshowtime 这…
cachebug 目录和 log 就不看了,都是日志,然后这个 cache 目录存放的就是广告文件了
两个 data 文件是广告的记录文件,procmon 分析就是dnplayer.exe在读写,火绒走起,禁止它在这个目录里搞事情,为了考虑以后可能会 cache 其他有用的文件,ban 掉jpg、jpg.tmp、gameabout.data以及launchConfig.data
系统文件解决删掉%AppData%\ChangZhi2\cache里的所有文件,火绒设置->系统防护->自定义防护,导入规则即可
dnplayer_ban_cache_file.json
另外由于规则里路径包含系统用户名,所以需要自己改一下,把里面的“你的用户名”字样替换一下就好了,例图
如果你的安装目录不是D:\Changzhi\dnplayer2的话,请仿照我的格式替换D:\\Changzhi\\dnplayer2字样即可,注意是双反斜杠\\
虚拟机文件
打开模拟器看到雷电游戏中心,并且在使用过程中发现,拖入安装包安装 App 的时候(可直接拖入 apk 安装,这个很方便,赞),会自动打开游戏中心…烦
尝试把“雷电游戏中心”删掉,当然直接删是删不掉的
底栏无广告是因为写文章的时候没有网
想要删掉可以在虚拟机里面开启 root,删掉相应文件,也可以直接编辑虚拟机磁盘文件,直接编辑磁盘相对更方便
adb sheel pm list packages当然是看不到包的
上面分析磁盘文件在D:\Changzhi\dnplayer2\vms\leidian0里,内置程序在system.vmdk中/app目录中
删掉就好了
如何编辑 vmdk 文件方法有很多,可以使用 DiskGenius 直接打开,也可以通过 VMware 映射虚拟磁盘(如上图)但是我用 DiskGenius 打开system.vmdk时会闪退…
值得一提的是,磁盘的格式是 Ext4,Windows 是打不开的我是通过 Ext2Fsd 打开的,Ext2Fsd是一个开源的驱动开发项目,可以让 Windows 直接识别并读写 ext2/ext3/ext4 的文件系统(安装后需要重启一下)
如果你不想装 Ext2Fsd 的话可以把 vmdk 挂到 Linux 虚拟机里搞哈哈
重启模拟器,就没有了,当然底栏的广告也点击无效了
现在出现广告是因为刚刚蹭了个 WiFi…
但是这样新建出来的模拟器还是会有雷电游戏中心
那么在D:\Changzhi\dnplayer2\目录下有system.vmdk,在它里面删掉就好了
删除雷电游戏中心需要分别在一下目录中的system.vmdk中删除/app/ldAppStore文件夹
D:\Changzhi\dnplayer2\vms\leidian0\
D:\Changzhi\dnplayer2\
同样提供修改好了system.vmdk文件下载,放到D:\Changzhi\dnplayer2\目录下即可,后续新建虚拟机不再有雷电游戏中心
已停止提供下载
system.7z.001
system.7z.002
sysrem.vmdk_hash.txt
底栏广告底栏的广告是联网获取的,不是 cache 里的,应该是在虚拟机里,在断网情况下会使用本地缓存,所以一个可行的方案是 ban 掉联网+替换 system.vmdk,然后创建一个新的模拟器,这样就彻底没有广告了,缺点也一样,没有主程序更新了。还是那句话,如果你不需要更新,这就是最佳方案了。
待解决的问题底栏广告…
感谢阅读
相关文章从Office诱饵到鸡肋RCEOffice的奇怪热键.ps1文件名可导致命令执行自动化黑暗模式彩云小译之无限使用