首页
社区
课程
招聘
[原创]IDM 最新版本的 6.31 build 2 逆向 分析 破解 分享
发表于: 2018-7-1 18:07 10380

[原创]IDM 最新版本的 6.31 build 2 逆向 分析 破解 分享

2018-7-1 18:07
10380

IDM 逆向 分析 破解 分享

 IDM 这个下载软件,相当不错,所以就拿来看看。
自己 逆向经验不多, 只是简单的分析 最后达到破解的目的
首先用OD 打开软件,然后运行
试着 注册 一下看看。 看看是否有错误提示等信息。
我同时 在 MessageBoxA 上设置了断点,毕竟是 错误信息 有可能 弹出窗口。
结果运气不错, 拦截到了 MessageBoxA 的弹出,  反向跟踪到调用位置








反向跟踪后往上找,看看是哪里给出的错误信息。结果很幸运 找到了2个关键跳转,这2个跳转作用是根据多次测试 发现,输入错误的序列号 都会跳转到 打印错误信息的位置。 我的想法很简单,就是不让他打印错误信息, 当然 这个不是一定能破解软件,因为,哪怕打印出来的不是错误信息,但是软件仍然不让使用。
所以我 就对序列号进行了一些列的分析。 看看输入不同格式的序列号是否 得到的结果 或者报错的跳转 都是一个位置么。


---------------------------------------------------------------------------------------------------

比较时的笔记内容

输入错误信息 (序列号 11111111 )调用 0060091C

00BC86C4   00600922  /CALL 到 MessageBoxA 来自 IDMan.0060091C

输入 (mzaxx-67890-abcde-fghij) 调用 错误提示的地址也是

00BC8DCC   00600922  /CALL 到 MessageBoxA 来自 IDMan.0060091C

同样的序列号 (11111111) 2个 选择注册的位置效果一样

00BC8DCC   00600922  /CALL 到 MessageBoxA 来自 IDMan.0060091C

00BC86C4   00600922  /CALL 到 MessageBoxA 来自 IDMan.0060091C

00600922 这里是有

00BC8DE4   0050FCDE  返回到 IDMan.0050FCDE 来自 IDMan.006008F4

这里做了一个判断后 直接跳到

0050FCD9  |> /E8 160C0F00   call IDMan.006008F4

 下行,我不让他跳转直接跳掉下一行

006008FD  |. /75 08         jnz short IDMan.00600907

下一行是这里

006008FF  |.  E8 BAC00000   call IDMan.0060C9BE

应该是 005E8529  jg short IDMan.005E8530  跳过了 "-" 这个符号

005E8524 jl short IDMan.005E8530 跳过了数字与 "-"
--------------------------------------------------------------------------------
我 经过 反复 输入不同格式的序列号,分析后发现 序列号 输入后 软件 都会做2件事情
1 用 - 进行 分割
2 无论你输入的大写还是小写,软件都会自动转换成大写
如果 没有分隔符 直接跳转 上面我找到的2个跳转位置
例如 111111111111111

而 通过2天的漫长分析发现了它的序列号算法,这里就不与公布了,不过思路我可以 给出,
他的思路是通过自己建立一个字母表 然后 通过输入序列号位置的数字进行计算
每组 都按照下面字母表顺序 比较 记录位置数字。。 (字母表 后面省略)
2 Y P B 3 A Q C V U X M N
R S 9 7 W E 0 I Z D 4 K L F
G H J 8 1 6

最后发现 所有错误都是在我上面 发现的关键跳转位置 进行判断。

所以我直接 把那连个 跳转 该成 相反的 跳转命令  je  与 jnz
这样,我就成功注册了



成功后, 当我第一次下载网上的一个软件时候,发现软件联网验证了我的序列号,结果


又重新跳出注册窗口

同时发现,刚刚我修改过的位置又被从新恢复了,

这里我 选择 简单有效的办法解决了,没有再用OD

方法简单实用就是好办法
1 打开Host 文件写入
127.0.0.1     secure.internetdownloadmanager.com  #IDM

结果发现,软件会自动检查 Host文件,并且修复,而且 哪怕你不点击修复,他也自动修复 同时 把 文件恢复。

我就用了第2个办法。
把 IDM 的安装程序 (在 X:\Program Files (x86)\Internet Download Manager) 这个文件包设置成 只读权限。

在我再次下载一个程序后, 同样提示上图 窗口,但是 软件无法恢复。
这样,最新版本的 6.31 build 2 破解了

有空的时候,会写一个 补丁程序发给大家,希望 大神们 给出意见,并且让我省些时间的方法。
多交流,谢谢

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

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 2375
活跃值: (433)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
楼主学汇编多久了?
2018-7-1 22:42
0
雪    币: 62
活跃值: (30)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
没多久 以前上学的时候 老师只给2个小时学习汇编 然后 写了个 hello word 就让用了


主要是学C的时候 老师老是逼我们在linux 上写 那条件 用上 DD 就已经是最幸福的 Debug 工具了,遇到逻辑错误 就只有 像
软件逆向一样 培养了我的耐心
要不你用C 写一个人数独 游戏用BST 数据结构 实现 无论给出什么难度 都自动算出所有答案
实现 后 你也能 有耐心了 (Linux上哦)

如果 遇到 高级语言写的程序 漫天 API 调用
我也哭。头疼
最后于 2018-7-2 03:17 被cycchina编辑 ,原因: 修改
2018-7-2 03:06
0
雪    币: 9033
活跃值: (1610)
能力值: ( LV2,RANK:15 )
在线值:
发帖
回帖
粉丝
4
厉害厉害啊
2018-7-2 06:52
0
雪    币: 215
活跃值: (1521)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
只要出了假冒注册码的提示,各种错误和异常接踵而至,根本没有用
2018-12-1 11:58
0
游客
登录 | 注册 方可回帖
返回
//