首页
社区
课程
招聘
[旧帖] 破解UltraISO_v9.5.2 0.00雪花
发表于: 2011-11-23 12:02 5547

[旧帖] 破解UltraISO_v9.5.2 0.00雪花

2011-11-23 12:02
5547

UltraISO软碟通是一款光盘映像ISO文件编辑制作工具,它可以图形化地从光盘、硬盘制作和编辑ISO文件。UltraISO可以做到:1.从CD-ROM制作光盘的映像文件。2.将硬盘、光盘、网络磁盘文件制作成ISO文件。3.从ISO文件中提取文件或文件夹。4.编辑各种ISO文件(如Nero Burning ROM、Easy CD Creator、Clone CD 制作的光盘映像文件)。 5.制作可启动ISO文件。+)新ISO文件处理内核,更稳定、高效 +)超强还原功能,可以准确还原被编辑文件,确保ISO文件不被损坏 +)可制作1.2M/1.44M/2.88M软盘仿真启动光盘 +)完整的帮助文件(CHM格式) +)实现重新打开文件列表功能 +)支持Windows 2000下制作光盘映像文件 *)修正刻盘后有时出现目录不能打开错误。

第一次在论坛发帖子!!

在论坛转悠了大半年的,还是个新人,希望这次看雪大大能给一个邀请码!

软件下载地址:http://www.crsky.com/soft/1134.html

用PEID查壳:ASPack 2.12 -> Alexey Solodovnikov,很简单的一个壳,我就不多说了!
安装之后载入OD

00C0E001 >  60              pushad
00C0E002    E8 03000000     call UltraISO.00C0E00A
00C0E007  - E9 EB045D45     jmp 461DE4F7
00C0E00C    55              push ebp
00C0E00D    C3              retn
00C0E00E    E8 01000000     call UltraISO.00C0E014
00C0E013    EB 5D           jmp short UltraISO.00C0E072

脱壳之后

00401620 > $ /EB 10         jmp short dumped.00401632
00401622   . |66:623A       bound di,dword ptr ds:[edx]
00401625   . |43            inc ebx
00401626   . |2B2B          sub ebp,dword ptr ds:[ebx]
00401628   . |48            dec eax
00401629   . |4F            dec edi
0040162A   . |4F            dec edi
0040162B   . |4B            dec ebx
0040162C   . |90            nop
0040162D   .-|E9 98006400   jmp dumped.00A416CA
00401632   > \A1 8B006400   mov eax,dword ptr ds:[64008B]
00401637   .  C1E0 02       shl eax,2
0040163A   .  A3 8F006400   mov dword ptr ds:[64008F],eax
0040163F   .  52            push edx
00401640   .  6A 00         push 0                                   ; /pModule = NULL
00401642   .  E8 5BD02300   call <jmp.&kernel32.GetModuleHandleA>    ; \GetModuleHandleA

输入用户名和注册码,并且注册码要是16!

点击确定,注册码已经录入,请重新运行程序,不用多说,软件是重启验证的!
既然是重启验证,那么它根本会打软件保存在电脑里面,要么是文件,要么是注册表!这款软件保存在注册表里面!用这个款(Regshot_2.0.1.66)软件监控一个注册表,看它都做了些什么




就是我们的用户名,存放的注册码,看起来很像MD5

打开系统注册表,运行中输入“regedit"查找“1234567890123456”是查找不到,因为我们输入的假码通过一系列运算已经成"f5ace2b8a891ffd9fcaee0beae93fdd6"UserName里面是用户名,Registration是注册码,在这里UserName是关键,下面我们要用到。

BC++和DELPHI都可以用,那咱们就用DEDE载入脱壳后的文件!点过程,里面有一个TfrmRegister,点击它,出现如图所示

00481EC0 这个地址就是我要查找的按钮事件

既然是注册表重启验证的,那我们就下 bp RegQueryValueExA断点 F9几次之后
0012F6C4   00472CCC  /CALL 到 RegQueryValueExA 来自 dumped.00472CC7
0012F6C8   000000CC  |hKey = CC
0012F6CC   0066E5B6  |ValueName = "UserName"
0012F6D0   00000000  |Reserved = NULL
0012F6D4   0012FAF0  |pValueType = 0012FAF0
0012F6D8   0012F7E4  |Buffer = 0012F7E4
0012F6DC   0012FAEC  \pBufSize = 0012FAEC
0012F6E0   505C3A43

此时正是返回程序领空的最佳时机,Alt+F9返回程序领空。
00472CCC  |.  85C0          test eax,eax
接下来F8单步一直向下
00472F34  |.  68 94C48200   push dumped.0082C494                     ;  ASCII "hello"
00472F39  |.  E8 BEA31B00   call dumped.0062D2FC
00472F3E  |.  83C4 08       add esp,8
00472F41  |.  FF75 0C       push dword ptr ss:[ebp+C]
00472F44  |.  68 98C58200   push dumped.0082C598                     ;  ASCII "1234567890123456"
00472F49  |.  E8 AEA31B00   call dumped.0062D2FC
00472F4E  |.  83C4 08       add esp,8
00472F51  |.  B8 01000000   mov eax,1
00472F56  |>  8BE5          mov esp,ebp
00472F58  |.  5D            pop ebp
00472F59  \.  C3            retn

F2在00472F59下断,SHIFT+F9运行,F8单步继续。

00403344   . /74 0D         je short dumped.00403353
00403346   . |FF35 54E46700 push dword ptr ds:[67E454]               ; /ExitCode = FFFFFFFF
0040334C   . |E8 5BB22300   call <jmp.&kernel32.ExitProcess>         ; \ExitProcess
00403351   . |EB 07         jmp short dumped.0040335A
00403353   > \33C0          xor eax,eax

这里要跳转,不然程序就OVER了!
00403362   .  E8 75C01E00   call dumped.005EF3DC                     ;  激活注册对话框

00403027    8B0D 94B76800   mov ecx,dword ptr ds:[68B794]            ;
0040302D    A1 C0006400     mov eax,dword ptr ds:[6400C0]       ;这两个数值有点奇怪,我们后面完美破解所需要的
00403032    3BC8            cmp ecx,eax
00403034    74 19           je short dumped.0040304F                 ; 关键跳转
00403036    8B15 08BC6C00   mov edx,dword ptr ds:[6CBC08]            ; dumped.00B4ACE8

                                                                     ; 关键跳转,上面的几个函数读取了我们的用户名和假码,通过某种判断,如果注册成功就跳,但是没有跳,所以我要让它跳转

关键点一:
00401DAB  |.  E8 A8B62200   |call dumped.0062D458
00401DB0  |.  83C4 0C       |add esp,0C
00401DB3  |.  8945 BC       |mov dword ptr ss:[ebp-44],eax
00401DB6  |.  8B45 BC       |mov eax,dword ptr ss:[ebp-44]
00401DB9  |.  85C0          |test eax,eax
00401DBB      7E 09         jle short dumped.00401DC6                ;  这里要跳转
00401DBD  |.  8B55 D8       |mov edx,dword ptr ss:[ebp-28]
00401DC0  |.  4A            |dec edx

关键点二:
00401DF3  |.  A1 94B76800   |mov eax,dword ptr ds:[68B794]
00401DF8  |.  3BC8          |cmp ecx,eax
00401DFA      75 2E         jnz short dumped.00401E2A                ;  这里是一个关键CALL,不能跳

mov edx.dword ptr ds:[6400C0]
mov dword ptr ds:[68B794],edx
cmp ecx,eax
jnz   xxxx
 不等于时转移. 所以我们要让这个两个里面的内容相等,这里是用来限制ISO软件的大小,

1.
00401DBB  |. /7E 09         |jle short dumped.00401DC6               ;  这里要跳转,修改为JMP
00401DBD  |. |8B55 D8       |mov edx,dword ptr ss:[ebp-28]
00401DC0  |. |4A            |dec edx
00401DC1  |. |8955 DC       |mov dword ptr ss:[ebp-24],edx
00401DC4  |. |EB 56         |jmp short dumped.00401E1C
00401DC6  |> \8B4D BC       |mov ecx,dword ptr ss:[ebp-44]
00401DC9  |.  85C9          |test ecx,ecx
00401DCB  |.  7D 09         |jge short dumped.00401DD6
00401DCD  |.  8B45 D8       |mov eax,dword ptr ss:[ebp-28]
00401DD0  |.  40            |inc eax
00401DD1  |.  8945 C8       |mov dword ptr ss:[ebp-38],eax
00401DD4  |.  EB 46         |jmp short dumped.00401E1C
00401DD6  |>  FF0D 94B76800 |dec dword ptr ds:[68B794]
00401DDC  |.  FF0D 94B76800 |dec dword ptr ds:[68B794]
00401DE2  |.  8B55 D0       |mov edx,dword ptr ss:[ebp-30]
00401DE5  |.  83C2 46       |add edx,46
00401DE8  |.  8915 489F6400 |mov dword ptr ds:[649F48],edx
00401DEE  |.  8B4D D0       |mov ecx,dword ptr ss:[ebp-30]
00401DF1  |.  F7D1          |not ecx
00401DF3  |.  A1 94B76800   |mov eax,dword ptr ds:[68B794]
00401DF8  |.  3BC8          |cmp ecx,eax
00401DFA      74 2E         je short dumped.00401E2A                 ;  修改为JE
00401DFC  |.  8B15 C0006400 |mov edx,dword ptr ds:[6400C0]
00401E02  |.  8915 94B76800 |mov dword ptr ds:[68B794],edx

2.
004453B7   . /7E 09         jle short dumped.004453C2                ;  修改为JMP
004453B9   . |8B55 D8       mov edx,dword ptr ss:[ebp-28]
004453BC   . |4A            dec edx
004453BD   . |8955 DC       mov dword ptr ss:[ebp-24],edx
004453C0   . |EB 56         jmp short dumped.00445418
004453C2   > \8B4D BC       mov ecx,dword ptr ss:[ebp-44]
004453C5   .  85C9          test ecx,ecx
004453C7   .  7D 09         jge short dumped.004453D2
004453C9   .  8B45 D8       mov eax,dword ptr ss:[ebp-28]
004453CC   .  40            inc eax
004453CD   .  8945 C8       mov dword ptr ss:[ebp-38],eax
004453D0   .  EB 46         jmp short dumped.00445418
004453D2   >  FF0D 94B76800 dec dword ptr ds:[68B794]
004453D8   .  FF0D 94B76800 dec dword ptr ds:[68B794]
004453DE   .  8B55 D0       mov edx,dword ptr ss:[ebp-30]
004453E1   .  83C2 46       add edx,46
004453E4   .  8915 248E6600 mov dword ptr ds:[668E24],edx
004453EA   .  8B4D D0       mov ecx,dword ptr ss:[ebp-30]
004453ED   .  F7D1          not ecx
004453EF   .  A1 94B76800   mov eax,dword ptr ds:[68B794]
004453F4   .  3BC8          cmp ecx,eax
004453F6   .  75 2E         jnz short dumped.00445426                ;  修改为JZ
004453F8   .  8B15 C0006400 mov edx,dword ptr ds:[6400C0]
004453FE   .  8915 94B76800 mov dword ptr ds:[68B794],edx

3.
004AEEE8     /7E 09         jle short dumped.004AEEF3                ;  修改为JMP
004AEEEA   . |8B55 D8       mov edx,dword ptr ss:[ebp-28]
004AEEED   . |4A            dec edx
004AEEEE   . |8955 DC       mov dword ptr ss:[ebp-24],edx
004AEEF1   . |EB 56         jmp short dumped.004AEF49
004AEEF3   > \8B4D BC       mov ecx,dword ptr ss:[ebp-44]
004AEEF6   .  85C9          test ecx,ecx
004AEEF8   .  7D 09         jge short dumped.004AEF03
004AEEFA   .  8B45 D8       mov eax,dword ptr ss:[ebp-28]
004AEEFD   .  40            inc eax
004AEEFE   .  8945 C8       mov dword ptr ss:[ebp-38],eax
004AEF01   .  EB 46         jmp short dumped.004AEF49
004AEF03   >  FF0D 94B76800 dec dword ptr ds:[68B794]
004AEF09   .  FF0D 94B76800 dec dword ptr ds:[68B794]
004AEF0F   .  8B55 D0       mov edx,dword ptr ss:[ebp-30]
004AEF12   .  83C2 46       add edx,46
004AEF15   .  8915 ECA16800 mov dword ptr ds:[68A1EC],edx
004AEF1B   .  8B4D D0       mov ecx,dword ptr ss:[ebp-30]
004AEF1E   .  F7D1          not ecx
004AEF20   .  A1 94B76800   mov eax,dword ptr ds:[68B794]
004AEF25   .  3BC8          cmp ecx,eax
004AEF27   .  75 2E         jnz short dumped.004AEF57                ;  修改为jz



此时已经算是完美破解了。第一次发帖子,版面排的很乱!


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

上传的附件:
  • 5.jpg (41.09kb,797次下载)
收藏
免费 6
支持
分享
最新回复 (39)
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
好久没来 看雪了 风骚不减当年 破文 还是如何经典
2011-11-23 12:13
0
雪    币: 414
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
支持
这东西用RSA+MD5算法,写注册机基本没可能了。只能爆破。
2011-11-23 14:45
0
雪    币: 80
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
这种文章要顶
2011-11-23 15:24
0
雪    币: 181
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
支持  以后直接破了它
2011-11-23 15:28
0
雪    币: 130
活跃值: (25)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
6
先说一下,按照楼主的修改方法,可以成功爆破。
但是这个破文描述不清,看不懂。
1.问题1
--------------------------------
cmp ecx,eax
jnz   xxxx
不等于时转移. 所以我们要让这个两个里面的内容相等,这里是用来限制ISO软件的大小,
-----------------------------
为什么需要检测"软件的大小 " 这跟软件注册有关系吗? 难道cmp ecx,eax 不相等时,软件正确注册和不正确注册时的文件大小有变化?

2.问题2
00403027    8B0D 94B76800   mov ecx,dword ptr ds:[68B794]            ;
0040302D    A1 C0006400     mov eax,dword ptr ds:[6400C0]       ;这两个数值有点奇怪,我们后面完美破解所需要的
------------
后面没说啊,奇怪?

3.问题3
--------------------
00403034    74 19           je short dumped.0040304F                 ; 关键跳转
00403036    8B15 08BC6C00   mov edx,dword ptr ds:[6CBC08]            ; dumped.00B4ACE8

                                                                     ; 关键跳转,上面的几个函数读取了我们的用户名和假码,通过某种判断,如果注册成功就跳,但是没有跳,所以我要让它跳转
---------------------
这里楼主修改了对吧。但是我按照楼主的方法只将1.    2.   3.   6个地方修改了,就已经爆破了。这里不知楼主用意在那里?
2011-11-24 11:20
0
雪    币: 130
活跃值: (25)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
7
问题4
----------------------
00481EC0 这个地址就是我要查找的按钮事件
----------------------
楼主找这个信息有什么用啊?后文 之字未提 ,难道就是看一下吗?
2011-11-24 11:24
0
雪    币: 16
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
支持  以后直接破了它
2011-11-24 21:07
0
雪    币: 63
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
路过进来看到
2011-11-24 21:30
0
雪    币: 183
活跃值: (55)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
10
通过按钮事件是可以跟到下面一些信息!

第一次发表文章,很多关键点都写出来,对大家说声不好意思。

cmp ecx,eax
jnz XXXXXXX
在创建ISO文件的时候,有一些限制,如果你只改一处的话。(限制文件大小还是500M以下吧)

你也可以跟一下
2011-11-25 13:41
0
雪    币: 183
活跃值: (55)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
11
可以通过这个跟出咱们需要的一些信息,也可以直接下我说的断点,只是提供多种破解思路,没别的用途
2011-11-25 13:42
0
雪    币: 370
活跃值: (15)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
12
支持,好久没有看到这类破文了
2011-11-25 21:29
0
雪    币: 49
活跃值: (40)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
13
这个我喜欢...现在初学,以后自己去试试看
2011-12-9 22:44
0
雪    币: 27
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
这个支持下……
2011-12-11 21:34
0
雪    币: 2
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
我今天刚找到9.5.2836的注册机
2011-12-20 20:04
0
雪    币: 183
活跃值: (55)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
16
呵呵,咱技术菜,还没能力写出注册机
2011-12-20 20:18
0
雪    币: 52
活跃值: (39)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
这篇文章好像看过  但是忘了在哪里了  今天就当复习了
2011-12-22 23:44
0
雪    币: 36
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
顶一下,俺也要试一试
2011-12-23 00:18
0
雪    币: 2
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
学习了,,,多多少少都有些启发。。。。谢了。。。
2011-12-25 23:47
0
雪    币: 57
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
能写出破文 已经不易  玩Crack的朋友都知道的 只看破解成功的结果  有手记 但整理就破文是个要耐心和时间的活  很辛苦、、、、、、支持下
2011-12-26 11:44
0
雪    币: 57
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
你好象没有追出注册码样,  破解的只能打内存补丁、、、、、、
2011-12-26 11:48
0
雪    币: 38
活跃值: (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
多谢楼主了,有需要。
2011-12-30 23:49
0
雪    币: 65
活跃值: (20)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
00472CCC  |.  85C0          test eax,eax
接下来F8单步一直向下
00472F34  |.  68 94C48200   push dumped.0082C494                     ;  ASCII "hello"
00472F39  |.  E8 BEA31B00   call dumped.0062D2FC
00472F3E  |.  83C4 08       add esp,8
00472F41  |.  FF75 0C       push dword ptr ss:[ebp+C]
00472F44  |.  68 98C58200   push dumped.0082C598                     ;  ASCII "1234567890123456"
00472F49  |.  E8 AEA31B00   call dumped.0062D2FC
00472F4E  |.  83C4 08       add esp,8
00472F51  |.  B8 01000000   mov eax,1
00472F56  |>  8BE5          mov esp,ebp
00472F58  |.  5D            pop ebp
00472F59  \.  C3            retn

F2在00472F59下断,SHIFT+F9运行,F8单步继续。
按照楼主的方法F2在00472F59下断,SHIFT+F9运行程序直接跑飞,求解
2012-1-1 11:25
0
雪    币: 65
活跃值: (20)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
此时正是返回程序领空的最佳时机,Alt+F9返回程序领空。
00472CCC  |.  85C0          test eax,eax
接下来F8单步一直向下
00472F34  |.  68 94C48200   push dumped.0082C494                     ;  ASCII "hello"
00472F39  |.  E8 BEA31B00   call dumped.0062D2FC
00472F3E  |.  83C4 08       add esp,8
00472F41  |.  FF75 0C       push dword ptr ss:[ebp+C]
00472F44  |.  68 98C58200   push dumped.0082C598                     ;  ASCII "1234567890123456"
00472F49  |.  E8 AEA31B00   call dumped.0062D2FC
00472F4E  |.  83C4 08       add esp,8
00472F51  |.  B8 01000000   mov eax,1
00472F56  |>  8BE5          mov esp,ebp
00472F58  |.  5D            pop ebp
00472F59  \.  C3            retn
这里面00472CCC  |.  85C0          test eax,eax下面有一个跳转要让它实现才能继续下面的操作,而默认是不实现的
2012-1-1 11:28
0
雪    币: 1
活跃值: (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
25
支持,很不错。见识了。
2012-1-2 19:45
0
游客
登录 | 注册 方可回帖
返回
//