『原创』去掉RedisDesktopManager更新提示弹窗
本帖最后由 syncking 于 2020-12-16 12:50 编辑# 去掉RedisDesktopManager更新提示弹窗
## 起因
每次打开RDM都要弹出一个更新提示弹窗,虽然打开次数不频繁,总是有个弹窗再点一次OK按钮,还不能设置关闭更新检查。更新下载还要各种登录麻烦事一堆,并且又不是不能用。
没办法只能祭出`x64dbg`了。
## 准备
- 工具
- x64dbg
- 安装好的RedisDesktopManager
## 过程
- 先把备份一下`rdm.exe`文件防止搞坏后无法恢复。
- 把`rdm.exe`文件丢到`x64dbg`搜索字符串 『右键,搜索范围->所有模块->字符串引用』
- 搜索烦人的弹窗标题『New update available』
- 搜索到『New update available』字符串
- 双击搜索到的字符串跳转到反汇编窗口
直接就看到了`MessageBox`弹窗函数了。在`00007FF78CDE4EB2`打上断点,运行到断点处。再单步执行到`MessageBox`指令处。
- 执行完`MessageBox`指令就出现烦人的弹窗了,这段代码就是弹窗的代码。
- 直接把`MessageBox`指令nop掉。选中`00007FF78CDE4F2D`指令『右键 -> 二进制 -> 用NOP填充』。
- 把修改后,打上补丁
应用完补丁,运行,弹窗已经不见了
## 世界终于安静了
啰里啰唆的提示终于不见了
## 总结
文章技术含量不高,也没有具体解释为什么这么做,就算过程记录分享吧。
真实情况调试了半天,开始本想着能跳过更新检查,调试了半天没看出门道。
最后只能暴力的nop掉MessageBox让它哑巴掉。后续有时间再考虑更深一步的探索吧。
成品:https://pan.baidu.com/s/13HUTIcxdZJ3V-8WNIP2aCw提取码:js6r
零下八度 发表于 2020-12-16 16:21
版本还挺新的呀,不过这 编译的人有点不知道怎么想的,我们手动编译RDM一般都会去掉这个提示的。
给附上 ...
自从我有了 Another-Redis-Desktop-Manager ... 版本还挺新的呀,不过这 编译的人有点不知道怎么想的,我们手动编译RDM一般都会去掉这个提示的。
给附上更新请求那个函数代码,提供去广告思路:
Updater::Updater()
{
manager = new QNetworkAccessManager();
QObject::connect(manager, SIGNAL(finished(QNetworkReply*)),this, SLOT(requestFinished(QNetworkReply*)));
QString platform("unknown");
#ifdef Q_OS_WIN32
platform = "windows";
#endif
#ifdef Q_OS_LINUX
platform = "linux";
#endif
#ifdef Q_OS_MACX
platform = "osx";
#endif
QUrl updateUrl(QString("http://%1/get-update?version=%2&platform=%3").arg("rdm.dev").arg(QCoreApplication::applicationVersion()).arg(platform));
manager->get(QNetworkRequest(updateUrl));
}
{:1_907:}同样深受困扰 来个成品呗 1281407155 发表于 2020-12-16 12:45
同样深受困扰 来个成品呗
下载链接加上了 看著大神的操作。我也有點心動啊!OD一直沒學懂。基礎有點差啊! 解决了很多人的小烦恼,哈哈。 这个支持ssh吗 感谢楼主 教程很详细,谢谢楼主分享 谢谢楼主分享