本帖最后由 侃遍天下无二人 于 2021-10-10 11:17 编辑
前言
上次去掉了雷电模拟器的桌面广告后,有大佬问我怎么去掉启动页广告,我表示不知道,大佬表示尽兴而来,失望而归。
emmm,能让大佬失望说明我的技术水平已经有了明显进步,既然水平有了明显进步,那去广告的方案我应该是能拿出来的,不妨试试看。
这里先给大家看看去广告前后的启动页面
去广告前:
去广告后:
去广告的操作很简单,重点应当是分析思路。
分析
目录结构
首先我们看看雷电模拟器的目录结构,程序所在目录下有个system0.vmdk 特别大,另外vms\leidian0 中也有几个非常大的镜像文件。
为了防止模拟器自动修复,我们先把它的修复程序dnrepairer.exe 改名或删除
现在大家做个小实验,仅将system0.vmdk 改名,启动模拟器,会发现可以正常进入,且现有数据不丢失;仅将vms\leidian0 改名,发现可以正常进入,但模拟器里的数据都清空了,且有新的vms\leidian0 生成;将二者同时改名发现无法进入模拟器,但广告照打,这样既不影响我们分析,又可以免去启动模拟器读取大量数据的过程,减少不必要的资源浪费。
同时,这个实验还说明了广告行为与虚拟机文件无关,去广告的关键一定在主程序(或其dll)上。
网络请求
打开Fiddler,准备抓包,记得先配置好https解密,抓包截图如下,从中我找到了一个可疑请求
https://img.ldmnq.com/gw_new/upload/Cz3tQi-1633674098441.jpg
https://img.ldmnq.com/gw_new/upload/RB6a3Z-1633674123798.png
大家看看,这个请求中既有广告的图片,又有按钮的样式,说是巧合我都不信,所以我们只要打开hosts,将 res.ldmnq.com 屏蔽掉,广告就去掉了,教程结束
...个屁
注:这种做法是很不负责的,除非软件确实没法修改,否则不应该这样
我们当然不能这样搞,大家看看另一个请求,里面是不是还给出了大量游戏无法正常运行的解决方案,虽说对我没什么用吧,但对一般小白而言这个还是留着好
调试
现在我们把模拟器拖入OD分析。
什么?我的模拟器是64位的不能用OD?
错了,打开任务管理器看看,32位的字样跃然纸上,既如此我们继续用OD吧。
搜索字符串"ldmnq",发现如下结果:
接下来只要把这个字符串改了,然后保存,就能干掉广告了。。。吧?
又错了,改完之后尝试复制到可执行文件,发现根本没有“所有选择”这个选项,随便改掉一行代码再撤销,选项倒是出来了,但点击的时候还提示无修改,为啥OD不能保存对字符串的修改呢?这个问题我想请教一下大佬们。
既然OD改不了,我们干脆直接用十六进制编辑器打开文件修改好了,论坛里的winhex就很合适:
我们一搜索,找不到链接,咋回事?
因为这个链接是unicode编码的,每个字符占2字节,高位为0x00。这又是个坑,只不过OD的智能搜索把它填平了大家感觉不到,这样设就能搜到了:
好的,我们把res改成ret,象征着让它立即返回,别加载广告,然后保存。
验证
重启模拟器,发现广告消失了,再抓个包看看,发现请求的地址确实变成了ret.ldmnq.com
后话
至此,我们把模拟器的启动广告和桌面广告去掉了,现在还差一个热点新闻的广告,去掉它非常简单,只要把 ldnews.exe 删掉就行了。
大家注意到主程序目录下的 system0.vmdk ,如果想让我们去掉桌面广告的效果长存,只要将vms\leidian0 中的同名文件取出来覆盖它就行了,前提是你之前已经用root权限把桌面放进了系统目录,而不是仅仅简单安装
(用DiskGenius直接修改会提示无效的磁盘文件,无法启动)
此外,我们改好的主程序可以用来启动所有4.x版本的模拟器,因此后期我们可以随意升级,不必担心更新问题。
|