WinRAR 64位去广告,去许可时间
winRAR会在每次运行的时候弹出一个窗口显示广告,网上虽有一些成品,但是为了安全起见,还是决定自己操刀首先分析广告窗口,类名为 RarReminder。既然是创建窗口,可以选择在CreateWindowExA/W下断.
我们可以观察创建窗口的类名和标题,找到创建对应窗体的时候
回到对应的调用位置,找到该函数头部,直接返回即可
处理完这里之后发现,程序还会在标题提示距离购买许可剩下%d天
既然判断天数,而且winrar不联网也会出现这个提示,那么就说明可能是根据本地时间来做判断的
尝试修改本地时间,发现天数会发生变化。
那么在GetLocalTime和GetSystemTime下断。重新跑程序,发现只有一次调用,代码如下
000000013FA5AE94 | 48 8D 0D 35 EE 06 00 | lea rcx,qword ptr ds: |
000000013FA5AE9B | FF 15 EF 36 03 00 | call qword ptr ds:[<&GetLocalTime>] |
000000013FA5AEA1 | 33 C9 | xor ecx,ecx |
重新跑程序,对000000013FA5AEA1 下断,触发之后对13FAC9CD0下访问断。
因为程序会把系统时间保存在13FAC9CD0这个变量。既然保存了,那肯定是要提供其他地方去访问了
第一个访问点如下图。既然看到和key有关的,那么说明可能这个就是一个授权的函数
我们看到对0x13f9db200函数的返回值做判断。跟进这个函数,发现函数再一次访问13FAC9CD0。猜测此函数用来判断是否超过时间
综合上一层函数我们看到一些关于key的信息。而且函数有如下代码
000000013FA5A65C | 84 C0 | test al,al |
000000013FA5A65E | 74 04 | je winrar.13FA5A664 |
000000013FA5A660 | B0 01 | mov al,1 |
000000013FA5A662 | EB 68 | jmp winrar.13FA5A6CC |
做推测函数执行流程 先通过0x13f9db200判断是否超过时间,不超过则直接验证通过,超过则判断key的内容。那么我们直接让这个函数返回true就可以过掉限制了
最后直接用x64dbg打补丁即可
lsir 发表于 2019-5-18 00:18
厉害,回头我也试试。不过,怎么不放补丁包?
其实基本没必要,主要就是根据createwindowsExw还有getlocaltime做跟踪而已,基本没啥技术含量 whentai 发表于 2019-5-18 21:39
大佬再详细点好吗?萌新也想抄作业
最主要就是两个api了,也没啥技术含量,多试几次基本就知道了 666666666666666666666666666666666898999厉害 我们公司就需要你这样的人才{:301_997:} 简单易懂,感谢您的分享! 大佬大佬,膜拜 666厉害了,我的哥,,大佬大佬,膜拜 老牌压缩软件
厉害,回头我也试试。不过,怎么不放补丁包? 多谢分享哦 lsir 发表于 2019-5-18 00:18
厉害,回头我也试试。不过,怎么不放补丁包?
是啊,同求。