吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 6264|回复: 49
收起左侧

[原创] 记一次某Rar去广告和重新打包安装程序

  [复制链接]
only998 发表于 2022-7-19 21:12
本帖最后由 only998 于 2022-7-19 21:11 编辑

一、缘起
    看到大佬“xiao-bai-shu”发的rar去广告,自己也想实践一下,就鼓捣了一下,原贴在这:
    https://www.52pojie.cn/thread-1660764-1-1.html

二、准备
1、winrar-x64-591scp.exe  ,手上正好有,就它了;
2、win10虚拟机这里推荐一下 不忘初心的win10精简版64位,装完占用10个G这样,太棒了。虚拟机有个好处是可以避免乱七八糟的国产软件各种注入,导致程序停在意料之外的地方。
3、X64dbg最新版


三、去广告
打开WinRAR.exe,让程序停在入口,注意模块是不是winrar.exe:
          image.png

右键——搜索——当前模块——跨模块调用,这个功能可以搜索出模块调用的dll函数:
          image.png

    搜索createwindowex函数,发现搜索出来的函数均为CreateWindowExW,这里需要指出,windows的API一般有两种,一种是 **A结尾的,使用的字符编码是 本地ANSI,另一种是 **W,使用的字符编码是Unicode,这说明winrar使用的是Unicode的字符串,这很有用。
          image.png

     F9运行程序,停在了第一个CreateWindowExW,注意调用的参数里有一个“WinRarWindow”,猜测可能是主窗口,继续运行,依次出现"ReBarWindow32","ComboBoxEx32","ToolbarWindow32","SysListView32",还是比较容易猜出这是主窗口的初始化过程:
          image.png

    F9继续运行,停在了下面这了:
         image.png
可以看到上面的字样出现了 ad.winrar.com.cn ,ad一般是广告的意思,看来已经找到了创建广告窗口的地方。F8单步步过,发现停在了其他CreateWindowExW调用上,F9调过几次后从新回到开始找到的地方:
       image.png

这时候已经出现广告窗口了:
image.png

将其他断点全部删除,只留下这个断点,然后重新运行,然后用nop填充call,这里需要说明的是64位程序跟32位程序不一样,如果是32位程序你可能需要平衡堆栈:
image.png

F9继续,运行,发现广告果然没有,右键——补丁——修补文件,找一个其他路径存下修改的exe,退出x64dbg,然后替换winrar.exe。
跑一下,广告确实不弹了,但是标题有一个(离购买许可只剩XX天了)。直接调整虚拟机时间,改为1个月以后,发现这时候标题增加了(评估版本),并且弹出了购买提示:
image.png

看来只去广告是不行的,时间改回来,先攻克   离购买许可只剩XX天  。
设置窗口的标题可以在CreateWindowExW的时候直接设置,前面我们调试的时候发现主窗口的创建过程中没有出现Desktop关键字,说明不是创建时设置的标题。
image.png

那么还有另一个设置标题的函数,重新运行,在程序入口点,在当前模块中搜索跨模块调用,搜索  setwindowtext  函数,全部打上断点,F9运行
image.png
第一个就中了,nice~,虽然可以直接把字符串改成空字符串的,但是我不建议,还是需要寻根溯源,不然只是表象解决问题,实际还会有其他问题。
往上翻一翻,可以发现有一个 test al,al  jne xxxxxx
image.png

高度怀疑这是关键点了,断点重新运行,改al 的值为 1,果然成了:
image.png

查看al的值从哪里来,查看前一个函数,发现是直接读取内存的:
image.png

进入函数,查找引用,发现这个函数还是有不少调用的:
image.png

image.png
高度怀疑就是这个内存地址存储的是否是注册软件。

查找引用——地址7FF6D98654F0,发现只有1个改写,果断转到并下断点:
image.png


重新运行程序,发现果然  mov byte ptr ds:[7FF6D98654F0],cl   要先于 mov al,byte ptr ds:[xxxx]运行。直接修改赋值函数,让内存的值总是1:
image.png
再测试,完美~,果断导出修改后的exe,替换一气呵成。时间改到2024年都没问题,到这里去广告就完成了,接下来就是重新打包。

四、重新打包
首先查看原始安装包的属性,获取信息。发现里面有个“压缩文件”的选项卡,进入发现是自解压文件:
image.png

复制一份副本,改.exe为rar,可以查看到文件,那么解压再打包到自解压格式不就是修改完成了,计划通过~突然感觉轻松起来了呢~
image.png

解压——替换——打包自解压,一气呵成,双击安装~~~~,等会,这界面似乎不对:
image.png

认真查看了原始安装文件的注释,发现即使按注释的文本添加注释界面也跟原来不一致
image.png

因此解压再打包行不通。那么能不能直接在RAR中修改呢,发现修改的功能是灰色的:
image.png

网上搜索了一番,发现winrar有锁定压缩包的功能,即禁止修改。那么换其他压缩软件呢,某345压缩直接报错,某数字压缩直接提示不支持对此格式修改
image.png

我也试着压缩一个可修改和禁止修改的压缩文档,比对他们的差异,然后跟着修改安装包文件,依然失败了。网上查找了一番,找到了一份 RAR 5.0 archive format
https://www.rarlab.com/technote.htm
机翻揣摩了一番搞清楚了,首先最重要的是winrar里的可变长度整数,即 vint,我们知道一个字节有 8个bit,winrar里使用最高字节位来表示整数是否继续,比如一个字节的整数必然为 0xxxxxxx ,2字节的整数为 1xxxxxxx 0xxxxxxx。然后是文件,查到winrar5.0格式的文件头为0x52 0x61 0x72 0x21 0x1a 0x7 0x1 0x0:

image.png
这里必须批判一下中文互联网,各种互抄,没啥干货,找个rar格式构成到处倒是互抄的莫名其妙的答案。

压缩头之后是 块头,块头有一个通用格式,如下:
image.png

回到我们的安装包文件,用二进制编辑器打开,头部赫然是一个PE(exe)文件,这也是必然,因为我们本来就是.exe直接改的.rar。直接搜索特征码“Rar!”  转到rar头部:
image.png

可以看到块类型是1,即“Main archive header”,我们转到对应的结构说明:
image.png
我注意到那个Archive flags就是我想改的标记,回到安装包本身:
image.png

标记的值是0x10+0x4 = 0x14即“固实压缩”跟 “锁定压缩包”,将值修改为 0x04,再打开:
image.png

提示压缩包损坏,想起前面有CRC32校验,改了内容CRC32肯定就变了,因此要重新计算CRC32的值。
问题是我不知道winrar的CRC32算法,百度了一下,也是没有干货,难道又要x64dbg一番??
突然灵光一闪,想到winrar的压缩文件里都有一个CRC32值,难道,果断将块头文件复制出来,压缩:
image.png
果然对上了,那么赶紧算一下新的CRC32值,修改后文件锁就解除了
image.png

把我们修改的winrar.exe替换进去,将文件锁再改回去,rar再改为exe,那么打包就完成了。

免费评分

参与人数 12吾爱币 +18 热心值 +11 收起 理由
olist + 1 谢谢@Thanks!
wapj258 + 1 + 1 用心讨论,共获提升!
Hmily + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
mingle1229 + 1 + 1 我很赞同!
XTING + 1 + 1 我很赞同!
chengdragon + 1 + 1 用心讨论,共获提升!
彩色沙漠 + 2 热心回复!
blindcat + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
曾心筝意 + 1 + 1 用心讨论,共获提升!
shangxian555 + 1 + 1 谢谢@Thanks!
klxn0-0 + 1 + 1 用心讨论,共获提升!
小小的石头13 + 1 + 1 我很赞同!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

小小的石头13 发表于 2022-7-19 21:51
学到了,感谢楼主
SuperZDK 发表于 2022-7-19 22:24
cyfwapj 发表于 2022-7-19 22:27
我懂 发表于 2022-7-19 22:38
为题主细心的步骤点赞!(虽然我以及转用bandezip)
ymxmy 发表于 2022-7-19 22:50
学习一下,有难度
ZhuanZhuYuIT 发表于 2022-7-19 23:08
膜拜大佬
maisaisin 发表于 2022-7-20 07:06
精彩~~~~~~~
shangxian555 发表于 2022-7-20 07:59
太详细了,学会了
曾心筝意 发表于 2022-7-20 08:25
为题主细心的步骤点赞
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 15:58

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表