首页
社区
课程
招聘
[原创]Internet Download Manager 逆向分析(非注册机)
发表于: 2023-10-7 21:28 13924

[原创]Internet Download Manager 逆向分析(非注册机)

2023-10-7 21:28
13924

写在前面

文章仅供学习,切勿用于商业用途,出于版权原因,文章不提供资源下载。

看雪论坛上较早之前已经有前辈对IDM的序列号算法进行过逆向分析

[原创]IDM 最新版本的 6.31 build 2 逆向 分析 破解 分享-软件逆向-看雪-安全社区|安全招聘|kanxue.com

以及最近有师傅尝试对本篇文章对象相同的版本进行了逆向分析,但是比较遗憾的是该文章并没有完全对IDM过注册限制进行逆向分析,但是值得一题的是作者提供了较为详细的处理过注册限制一般方法,还是比较值得初学者学习的。

IDM 6.4.1逆向分析笔记_idm注册序列号-CSDN博客

这里笔者不打算从注册表出发。

首先不妨禁用IDM的动态基址,方便我们IDA跟踪。修改如下

修改后程序正常运行,也可以验证这里没有完整性校验。

提示

可以看到提示IDM试用期已到,从这个对话框入手可能找到无限使用的逻辑,但是不一定有监视注册表读写方便,笔者不从这里下手。

点击确定后可以看到提示注册

不如就从这里入手,比较简单的想法是对获取编辑框文本的函数下断点。经过测试,这里获取内容的API是GetDlgTiemTextA,下断后随意填写内容,确定后成功断下,进行两层栈回溯,来到0051FCC5

在IDA中

笔者对ShowErrorDlg函数进行了简单的重命名,它的行为很容易确定,这里不多解释。

可以看到这里对输入的长度进行了判断,所以可以猜测注册逻辑在这附近,可以看到有很多全局变量例如dword_75CE00充当着标志的作用,我们猜测有一个全局变量标志着是否注册。

简单绕过错误输入的提示框,patch点如下:

patch后再次运行,输入后发现程序直接退出,没有提示错误输入,我们重新跟踪函数0051FB70,跟踪到如下位置时

发现像一个全局变量写入了0,并尝试Post一个消息,我们查看这个变量的一些引用。在004039E6位置

可以猜测到这是与注册相关。我们尝试在程序启动时修改这个字段的值

默认为1,我们修改为0,尝试运行

经过上面测试,基本上可以确定这个标志的作用,但是还有其他的一些验证对注册码进行了校验,简单的跟踪方法是,在xdbg中搜索这个字符串,对其引用位置下断,筛选有效位置。笔者这里对静态字段750D2C中的内容在PE中进行修改。

我们继续绕过假冒序列号验证,笔者这里通过字符串筛选的有效位置为:00451E97

向上回溯,简单的发现如下

尝试修改v112为0,放行程序

可以看到程序运行了起来。老手段,将返回值为3的地方patch为0即可(00450B87)。


但是过了一段时间之后,另一个验证接踵而至。


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

最后于 2023-10-8 09:16 被Sw1ndler编辑 ,原因: 新增检测绕过
收藏
免费 7
支持
分享
最新回复 (9)
雪    币: 3070
活跃值: (30876)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
感谢分享
2023-10-8 09:42
2
雪    币: 5932
活跃值: (4825)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3

大佬,idm还有个限制,就是下载某些hls?视频,会弹窗:由于法律原因,IDM无法下载此受保护的数据。对于这些受保护的音频、视频和数据,IDM可能无法通过相应的技术测试,因此IDM不支持下载此类内容。

如图:


大佬,有兴趣分析一下,解开这个限制?

2023-10-8 10:52
0
雪    币: 35726
活跃值: (7155)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
4
hosts 检测呢?
2023-10-8 11:09
0
雪    币: 112
活跃值: (1531)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
别费劲了,Neat Download Manager 免费小巧无广告,更好用。
2023-10-8 11:17
0
雪    币: 2119
活跃值: (1890)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
6
感谢分享
2023-10-8 12:04
1
雪    币: 1239
活跃值: (2846)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
7
ninebell hosts 检测呢?
哈哈我没留意host验证,可能把那个标志位和关闭进程的Timer绕过了之后,误伤了hosts验证的逻辑吧,改了那两个位置,其他的只是一些干扰弹窗对程序使用没什么影响,我就见一个补一个没再去深究了。这么patch确实有点难看。
2023-10-8 14:59
0
雪    币: 1239
活跃值: (2846)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
8
mb_rjdrqvpa 大佬,idm还有个限制,就是下载某些hls?视频,会弹窗:由于法律原因,IDM无法下载此受保护的数据。对于这些受保护的音频、视频和数据,IDM可能无法通过相应的技术测试,因此IDM不支持下载此类内容。 ...
这个的限制应该是一些视频用了加密吧,限制应该不在IDM这里。想要IDM能解析就得给它加一部分功能了。
2023-10-8 15:00
0
雪    币: 35726
活跃值: (7155)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
9

@Sw1ndler
我的简单爆破方法如下:
1)先定位Full ,其上印象中是好像 cmp xxx, [YYY]定位过去把YYY
(取反,见1改0;反之0改1)
2)注册码不输了,不久也会弹玩笑注册码要退出。。。
那是启动过程中卷标检测Scan (时间久了忘记叫啥了,得看笔记)那处不远有个call(NOP或ret)

要是改的时机不佳的话,会出现几种下场:

  • 出现玩笑注册码提示,之后退出(这说明改的时机比较晚,错过了)

  • 。。。。。。。。。,找到了其上一层的调用点ret后(提示仍出,但死活退出不了啦)

  • 找到最上层,根本上解决检测


3)还有一个升级检测也得修改下

相传有人的修改版本还修改了一个下载线程数为128破限制啥的。。这个没跟过,就不清楚了。。。这个还真没研究过。。

@Sw1ndler
还有一个MindMaster 11.05的在线AI点数没有弄明白,初始化为500点,不知这个能不能突破限制?大侠有时间研究下。。。
其他离线功能很好爆破的。。。随便找个功能限制的菜单项,断点能打到后跟过去。。记录下。。凭着感觉改了下就成功了。。后来发现其他菜单项调用公共点方式一样一样的。。打开二进制忍者。。慢慢伪代码一级一级定位到深层(最深层有个全局常量)。。。然后就会衍生出三四种爆破版本出现。。
1)最直接的爆破版本(无左上角Pro字样,不用登录
2)有左上角Pro字样版本(不用登录
3)需要登录后显示Pro+永久vip会员字样版本
其实哪种无所谓,最开心的是把二进制忍者的入门功能研究明白了。

最后于 2024-2-19 11:43 被ninebell编辑 ,原因:
2024-2-19 11:37
0
雪    币: 49
活跃值: (604)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
大佬,你的ida f5是增强插件吗?可否分享
2024-3-28 15:03
0
游客
登录 | 注册 方可回帖
返回
//