管理员
|
阅读:3622回复:0
破解UltraISO 镜像软件
楼主#
更多
发布于:2011-11-24 18:37
| | | | ltraISO软碟通是一款光盘映像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! 附件62386 点击确定,注册码已经录入,请重新运行程序,不用多说,软件是重启验证的! 既然是重启验证,那么它根本会打软件保存在电脑里面,要么是文件,要么是注册表!这款软件保存在注册表里面!用这个款(Regshot_2.0.1.66)软件监控一个注册表,看它都做了些什么 附件62387 附件62388 就是我们的用户名,存放的注册码,看起来很像MD5 打开系统注册表,运行中输入“regedit"查找“1234567890123456”是查找不到,因为我们输入的假码通过一系列运算已经成"f5ace2b8a891ffd9fcaee0beae93fdd6"UserName里面是用户名,Registration是注册码,在这里UserName是关键,下面我们要用到。 BC++和DELPHI都可以用,那咱们就用DEDE载入脱壳后的文件!点过程,里面有一个TfrmRegister,点击它,出现如图所示 附件62427 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 此时已经算是完美破解了
| | | | |
|