【软件名称】   Floppy Zip Disk Rescue
【软件版本】   V1.2.0
【下载地址】   http://www6.skycn.com/soft/25468.html

----------------------------------------------------------------------------------------
【加密方式】   序列号
【破解工具】   OD
【软件限制】   时间限制
【破解平台】   Microsoft Windows XP Professional

----------------------------------------------------------------------------------------
【软件简介】

Floppy Zip Disk Rescue 是一个非常容易使用的文件拯救工具,它能够从软盘、ZIP 磁盘或其他外部设备中将已损坏的文件抢救出来;它能够快速地扫描扇区,拯救已损坏的文件,并仅可能地将正确的数据复制到硬盘中。 这个程序对于已损坏的多媒体文件、音频文件、视频文件、图像文件,例如 MPEG、AVI、RM、MP3、JPEG 等等,以及损坏的文档和文本文件尤其有效。

【说明】

CrAcK 4 FuN! 无壳,无Anti-debug, 无加密算法,难度为最最最简单,好久没有动手了,只为温习,高手勿看
------------------------------------------------------------------------------------
【破解过程】
试验所用
Registered name:xcvm

Registered code:12345678

很容易找到以下代码:
00410E93    8B46 70         mov eax,dword ptr ds:[esi+70]
00410E96    8B68 F4         mov ebp,dword ptr ds:[eax-C]
00410E99    83FD 02         cmp ebp,2                               ; 比较用户名,是否大于或等于2位
00410E9C    7D 15           jge short FZDR.00410EB3                 ; 符合则跳
00410E9E    6A 00           push 0
00410EA0    6A 00           push 0
00410EA2    68 3C1F4400     push FZDR.00441F3C                      ; ASCII "Please input correct User Name!"
00410EA7    E8 CD5C0200     call FZDR.00436B79
00410EAC    5F              pop edi
00410EAD    5E              pop esi
00410EAE    5D              pop ebp
00410EAF    83C4 0C         add esp,0C
00410EB2    C3              retn
00410EB3    8B4E 74         mov ecx,dword ptr ds:[esi+74]           ; 注册码进栈
00410EB6    8379 F4 08      cmp dword ptr ds:[ecx-C],8              ; 判断是否是8位
00410EBA    7D 15           jge short FZDR.00410ED1                 ; 大于等于跳,否则提示输入正确注册码
00410EBC    6A 00           push 0
00410EBE    6A 00           push 0
00410EC0    68 141F4400     push FZDR.00441F14                      ; ASCII "Please input correct Registration Code!"
00410EC5    E8 AF5C0200     call FZDR.00436B79
00410ECA    5F              pop edi
00410ECB    5E              pop esi
00410ECC    5D              pop ebp
00410ECD    83C4 0C         add esp,0C
00410ED0    C3              retn
00410ED1    8B46 70         mov eax,dword ptr ds:[esi+70]           ; eax=用户名
00410ED4    8B48 F4         mov ecx,dword ptr ds:[eax-C]            ; ecx=注册码.
00410ED7    85C9            test ecx,ecx
00410ED9    7D 0A           jge short FZDR.00410EE5
00410EDB    68 57000780     push 80070057
00410EE0    E8 1B04FFFF     call FZDR.00401300
00410EE5    8A10            mov dl,byte ptr ds:[eax]                ; 用户名
00410EE7    8B46 70         mov eax,dword ptr ds:[esi+70]
00410EEA    3978 F4         cmp dword ptr ds:[eax-C],edi
00410EED    7D 0A           jge short FZDR.00410EF9
00410EEF    68 57000780     push 80070057
00410EF4    E8 0704FFFF     call FZDR.00401300
00410EF9    8A40 01         mov al,byte ptr ds:[eax+1]              ; 第二位
00410EFC    884424 0E       mov byte ptr ss:[esp+E],al
00410F00    8B46 70         mov eax,dword ptr ds:[esi+70]
00410F03    8B48 F4         mov ecx,dword ptr ds:[eax-C]
00410F06    85C9            test ecx,ecx
00410F08    7D 0A           jge short FZDR.00410F14
00410F0A    68 57000780     push 80070057
00410F0F    E8 EC03FFFF     call FZDR.00401300
00410F14    8B4E 70         mov ecx,dword ptr ds:[esi+70]
00410F17    53              push ebx
00410F18    8A18            mov bl,byte ptr ds:[eax]                ; 第一位
00410F1A    3979 F4         cmp dword ptr ds:[ecx-C],edi
00410F1D    7D 0A           jge short FZDR.00410F29
00410F1F    68 57000780     push 80070057
00410F24    E8 D703FFFF     call FZDR.00401300
00410F29    0FB6C2          movzx eax,dl                            ; 看0EE5,dl进第一位
00410F2C    83C8 46         or eax,46                               ; or 78,46   x=78  eax=7E
00410F2F    99              cdq                                     ; EDX=00000000
00410F30    BF 0A000000     mov edi,0A                              ; EDI=0A
00410F35    F7FF            idiv edi                                ; EAX除以0A  商回送AL,余数回送AH, (字节运算); 或  商回送AX,余数回送DX, (字运算).
00410F37    0FB64424 12     movzx eax,byte ptr ss:[esp+12]          ; 第二位
00410F3C    83C8 5A         or eax,5A                               ; or 63,5A   c=63
00410F3F    885424 16       mov byte ptr ss:[esp+16],dl
00410F43    99              cdq
00410F44    F7FF            idiv edi                                ; OA
00410F46    0FB6C3          movzx eax,bl                            ; bl=第一位
00410F49    83C8 52         or eax,52
00410F4C    885424 12       mov byte ptr ss:[esp+12],dl
00410F50    99              cdq
00410F51    F7FF            idiv edi
00410F53    0FB641 01       movzx eax,byte ptr ds:[ecx+1]           ; 第二位
00410F57    83C8 45         or eax,45
00410F5A    8BCF            mov ecx,edi                             ; 0A
00410F5C    885424 17       mov byte ptr ss:[esp+17],dl
00410F60    99              cdq
00410F61    F7F9            idiv ecx                                ; OA
00410F63    33C0            xor eax,eax                             ; 清零
00410F65    33C9            xor ecx,ecx                             ; 清零
00410F67    85ED            test ebp,ebp
00410F69    885424 18       mov byte ptr ss:[esp+18],dl
00410F6D    7E 20           jle short FZDR.00410F8F
00410F6F    90              nop
00410F70    85C9            test ecx,ecx
00410F72    0F8C D2000000   jl FZDR.0041104A
00410F78    8B7E 70         mov edi,dword ptr ds:[esi+70]           ; 用户名
00410F7B    3B4F F4         cmp ecx,dword ptr ds:[edi-C]
00410F7E    0F8F C6000000   jg FZDR.0041104A
00410F84    0FB6140F        movzx edx,byte ptr ds:[edi+ecx]
00410F88    03C2            add eax,edx                             ; 用户名ASCII码累加
00410F8A    41              inc ecx
00410F8B    3BCD            cmp ecx,ebp
00410F8D  ^ 7C E1           jl short FZDR.00410F70
00410F8F    8B4E 74         mov ecx,dword ptr ds:[esi+74]
00410F92    8B51 F4         mov edx,dword ptr ds:[ecx-C]
00410F95    85D2            test edx,edx
00410F97    7D 0A           jge short FZDR.00410FA3
00410F99    68 57000780     push 80070057
00410F9E    E8 5D03FFFF     call FZDR.00401300
00410FA3    8A11            mov dl,byte ptr ds:[ecx]
00410FA5    8B4E 74         mov ecx,dword ptr ds:[esi+74]
00410FA8    8379 F4 01      cmp dword ptr ds:[ecx-C],1
00410FAC    885424 19       mov byte ptr ss:[esp+19],dl
00410FB0    7D 0A           jge short FZDR.00410FBC
00410FB2    68 57000780     push 80070057
00410FB7    E8 4403FFFF     call FZDR.00401300
00410FBC    8A49 01         mov cl,byte ptr ds:[ecx+1]
00410FBF    8B7E 74         mov edi,dword ptr ds:[esi+74]
00410FC2    884C24 13       mov byte ptr ss:[esp+13],cl
00410FC6    837F F4 02      cmp dword ptr ds:[edi-C],2
00410FCA    7D 0A           jge short FZDR.00410FD6
00410FCC    68 57000780     push 80070057
00410FD1    E8 2A03FFFF     call FZDR.00401300
00410FD6    8A4F 02         mov cl,byte ptr ds:[edi+2]
00410FD9    8B7E 74         mov edi,dword ptr ds:[esi+74]
00410FDC    884C24 14       mov byte ptr ss:[esp+14],cl
00410FE0    837F F4 03      cmp dword ptr ds:[edi-C],3
00410FE4    7D 0A           jge short FZDR.00410FF0
00410FE6    68 57000780     push 80070057
00410FEB    E8 1003FFFF     call FZDR.00401300
00410FF0    8A4F 03         mov cl,byte ptr ds:[edi+3]
00410FF3    8B7E 74         mov edi,dword ptr ds:[esi+74]
00410FF6    884C24 15       mov byte ptr ss:[esp+15],cl
00410FFA    837F F4 04      cmp dword ptr ds:[edi-C],4
00410FFE    7D 0A           jge short FZDR.0041100A
00411000    68 57000780     push 80070057
00411005    E8 F602FFFF     call FZDR.00401300
0041100A    8A4F 04         mov cl,byte ptr ds:[edi+4]
0041100D    8B7E 74         mov edi,dword ptr ds:[esi+74]
00411010    837F F4 05      cmp dword ptr ds:[edi-C],5
00411014    7D 0A           jge short FZDR.00411020
00411016    68 57000780     push 80070057
0041101B    E8 E002FFFF     call FZDR.00401300
00411020    8A5F 05         mov bl,byte ptr ds:[edi+5]
00411023    8B7E 74         mov edi,dword ptr ds:[esi+74]
00411026    885C24 1A       mov byte ptr ss:[esp+1A],bl
0041102A    837F F4 06      cmp dword ptr ds:[edi-C],6
0041102E    7D 0A           jge short FZDR.0041103A
00411030    68 57000780     push 80070057
00411035    E8 C602FFFF     call FZDR.00401300
0041103A    8A5F 06         mov bl,byte ptr ds:[edi+6]
0041103D    8B7E 74         mov edi,dword ptr ds:[esi+74]
00411040    885C24 1B       mov byte ptr ss:[esp+1B],bl
00411044    837F F4 07      cmp dword ptr ds:[edi-C],7
00411048    7D 0A           jge short FZDR.00411054
0041104A    68 57000780     push 80070057
0041104F    E8 AC02FFFF     call FZDR.00401300
00411054    8A5F 07         mov bl,byte ptr ds:[edi+7]
00411057    0FB67C24 16     movzx edi,byte ptr ss:[esp+16]
0041105C    0FB6D2          movzx edx,dl                            ; 注册码第一位
0041105F    83EA 30         sub edx,30
00411062    3BFA            cmp edi,edx                             ; 第一位=30+6
00411064    75 48           jnz short FZDR.004110AE
00411066    0FB65424 13     movzx edx,byte ptr ss:[esp+13]          ; 注册码第2位
0041106B    0FB67C24 12     movzx edi,byte ptr ss:[esp+12]
00411070    83EA 30         sub edx,30
00411073    3BFA            cmp edi,edx                             ; 第2位=30+3
00411075    75 37           jnz short FZDR.004110AE
00411077    0FB65424 14     movzx edx,byte ptr ss:[esp+14]
0041107C    0FB67C24 17     movzx edi,byte ptr ss:[esp+17]
00411081    83EA 30         sub edx,30
00411084    3BFA            cmp edi,edx                             ; 第3位=30+2
00411086    75 26           jnz short FZDR.004110AE
00411088    0FB65424 15     movzx edx,byte ptr ss:[esp+15]
0041108D    0FB67C24 18     movzx edi,byte ptr ss:[esp+18]
00411092    83EA 30         sub edx,30
00411095    3BFA            cmp edi,edx                             ; 第4位=30+3
00411097    75 15           jnz short FZDR.004110AE
00411099    99              cdq
0041109A    BF 0A000000     mov edi,0A
0041109F    F7FF            idiv edi
004110A1    0FB6C2          movzx eax,dl
004110A4    0FB6D1          movzx edx,cl                            ; 第5位%0A+30
004110A7    83EA 30         sub edx,30
004110AA    3BC2            cmp eax,edx
004110AC    74 36           je short FZDR.004110E4                  ; 若注册码不符合规则,再比较是否是万能注册码
004110AE    807C24 19 39    cmp byte ptr ss:[esp+19],39             ; 第1位=9
004110B3    0F85 81000000   jnz FZDR.0041113A                       ; 第2位=3
004110B9    807C24 13 33    cmp byte ptr ss:[esp+13],33
004110BE    75 7A           jnz short FZDR.0041113A
004110C0    807C24 14 30    cmp byte ptr ss:[esp+14],30             ; 第3位=0
004110C5    75 73           jnz short FZDR.0041113A
004110C7    807C24 15 31    cmp byte ptr ss:[esp+15],31             ; 第4位=1
004110CC    75 6C           jnz short FZDR.0041113A
004110CE    B0 36           mov al,36
004110D0    3AC8            cmp cl,al                               ; 第5位=6
004110D2    75 66           jnz short FZDR.0041113A
004110D4    384424 1A       cmp byte ptr ss:[esp+1A],al             ; 第6位=6
004110D8    75 60           jnz short FZDR.0041113A
004110DA    384424 1B       cmp byte ptr ss:[esp+1B],al             ; 第7位=6
004110DE    75 5A           jnz short FZDR.0041113A
004110E0    3AD8            cmp bl,al                               ; 第8位=6
004110E2    75 56           jnz short FZDR.0041113A                 ; 关键点比较点了
004110E4    6A 00           push 0
004110E6    6A 00           push 0
004110E8    68 F81E4400     push FZDR.00441EF8                      ; ASCII "Registration has succeeded!"
004110ED    E8 875A0200     call FZDR.00436B79
004110F2    8B7E 70         mov edi,dword ptr ds:[esi+70]
004110F5    E8 CE990200     call FZDR.0043AAC8
004110FA    8B40 04         mov eax,dword ptr ds:[eax+4]
004110FD    57              push edi
004110FE    68 48104400     push FZDR.00441048                      ; ASCII "username"
00411103    68 40104400     push FZDR.00441040                      ; ASCII "Option"
00411108    8BC8            mov ecx,eax
0041110A    E8 815B0200     call FZDR.00436C90
0041110F    8B7E 74         mov edi,dword ptr ds:[esi+74]
00411112    E8 B1990200     call FZDR.0043AAC8
00411117    8B40 04         mov eax,dword ptr ds:[eax+4]
0041111A    57              push edi
0041111B    68 2C104400     push FZDR.0044102C                      ; ASCII "registration_code"
00411120    68 40104400     push FZDR.00441040                      ; ASCII "Option"
00411125    8BC8            mov ecx,eax
00411127    E8 645B0200     call FZDR.00436C90
0041112C    5B              pop ebx
0041112D    5F              pop edi
0041112E    8BCE            mov ecx,esi
00411130    5E              pop esi
00411131    5D              pop ebp
00411132    83C4 0C         add esp,0C
00411135    E9 C4010200     jmp FZDR.004312FE
0041113A    6A 00           push 0
0041113C    6A 00           push 0
0041113E    68 E01E4400     push FZDR.00441EE0                      ; ASCII "Registration failed!"
00411143    E8 315A0200     call FZDR.00436B79
00411148    5B              pop ebx
00411149    5F              pop edi
0041114A    5E              pop esi
0041114B    5D              pop ebp
0041114C    83C4 0C         add esp,0C
0041114F    C3              retn

【总结】
要求:用户名至少两位
注册码:至少8位
注册码运算过程:
第一位为:用户名的第1位ASCII码或0x46后除以0x0A(即取其余数)+0x30
第二位为:用户名的第2位ASCII码或0x5A后除以0x0A +0x30
第三位为:用户名的第1位ASCII码或0x52后除以0x0A +0x30
第四位为:用户名的第2位ASCII码或0x45后除以0x0A +0x30
第五位为:用户名的ASCII码相加后除以0x0A取其余数 +0x30
以后注册码任意 
万能注册码:93016666
范例 UserName=xcvm   Code=63236000

注册机算法(TC):

#include "stdio.h"
int main()
{ int i,k,n1,n2,n3,n4,n5=0;
  char name[255] = {0};
printf("用户名要大于或等于2,得出来的注册码最少为8位,但第6位及以后为任意,可使用万能注册码9301666。Enjoy yourself!!!\n\n");
printf("请输入用户名>=2:");
scanf("%s",&name);
k=strlen(name);
for (i=0;i<k;i++)
  { n5+=name[i];
  }
n1=(name[0] & 0xFF | 0x46)%0xA & 0xFF+0x30;
n2=(name[1] & 0xFF | 0x5A)%0xA & 0xFF+0x30;
n3=(name[0] & 0xFF | 0x52)%0xA & 0xFF+0x30;
n4=(name[1] & 0xFF | 0x45)%0xA & 0xFF+0x30;
n5=n5%0xA & 0xFF+0x30;
printf("%d%d%d%d%d000\n",n1,n2,n3,n4,n5);
}
点这下载源码FZDR_TC.rar
本想试其它语言的,被某人说不理她,一乱就没有继续……
改天再MASM、VC

转载于:https://www.cnblogs.com/xcvm/archive/2006/02/22/335803.html

Floppy Zip Disk Rescue注册码分析相关推荐

  1. 20220209-CTF MISC-BUUCTF-伪加密(ZIP文件块 十六进制分析)

    MISC-BUUCTF-zip伪加密 [1]下载附件提示要求输入解压密码 在Windows环境下可以看到有一个flag.txt 但是打开flag.txt需要输入密码: 如果用winhex打开,也可以看 ...

  2. python中zip()函数的用法_Python zip()函数用法实例分析

    本文实例讲述了python zip()函数用法.分享给大家供大家参考,具体如下: 这里介绍python中zip()函数的使用: >>> help(zip) Help on built ...

  3. 关于谷歌浏览器主页被篡改无法修正的样例分析与解决方案

    关于谷歌浏览器主页被篡改无法修正的样例分析与解决方案 首先写在前面,浏览器被修改主页的情况很多,此次分析的仅为一个样例且给出解决的方法.本文主要提供自身经历和解决的思路,因为水平有限,无法给出专业化的 ...

  4. Nova Suspend/Rescue 操作详解 - 每天5分钟玩转 OpenStack(35)

    本节我们讨论 Suspend/Resume 和 Rescue/Unrescue 这两组操作. Suspend/Resume 有时需要长时间暂停 instance,可以通过 Suspend 操作将 in ...

  5. Android ART 分析

    对Android ART的分析,主要包括ART Runtime启动过程以及dex2oat的分析. 由于代码量较多,忽略了很多细节,所以分析过程会存在错误:ART Runtime采用单例模式,启动过程中 ...

  6. 性能测试之操作系统计数器分析方法

    内存分析方法: 内存分析用于判断系统有无遇到内存瓶颈,是否需要通过增加内存等手段提高系统性能表现.内存分析需要使用计数器:Memory & Physical Disk类别的计数器,以下是内存分 ...

  7. 性能测试知多少--系统计数器与硬件分析

    性能计数器(Performance Counter),也叫性能监视器.一个人健康状况如何,我们通过对其做各项体检获得相关的状况指标,如血压.心跳,肺活量等.那么在做性能测试过程中,整个系统的软硬件进行 ...

  8. 服务器性能瓶颈分析方法

    1. 内存分析方法 内存分析用于判断系统有无内存瓶颈,是否需要通过增加内存等手段提高系统性能表现. 内存分析需要使用的计数器:Memory类别和Physical Disk类别的计数器.内存分析的主要方 ...

  9. linux性能测试 瓶颈,性能测试——瓶颈分析方法

    1.内存分析方法 内存分析用于判断系统有无内存瓶颈,是否需要通过增加内存等手段提高系统性能表现. 内存分析需要使用的计数器:Memory类别和Physical Disk类别的计数器.内存分析的主要方法 ...

最新文章

  1. sqlserver date转nvarchar_数据库干货:整理SQLServer非常实用的脚本
  2. 基于Java+SpringBoot+vue+element实现校园闲置物品交易网站
  3. 嵌入式Linux系统编程学习之三十线程的同步
  4. 权限管理----用户与模块关系
  5. windows下的Zcash钱包(ZEC钱包)-zcash4win 1.0.11
  6. WEB前端性能优化总结——如何提高网页加载速度
  7. 收藏:通俗讲解计算机工作原理
  8. 数据分析 超市条码_超市商品管理的11个常见问题 | 经验借鉴 | 商品管理
  9. 开环单位增益带宽 , 与-3db的关系
  10. MVCC和InnoDB行锁
  11. 爬虫字体替换(一)天眼查
  12. 要留住优秀员工,除了钱,你还可以用什么?
  13. 计算机科技手抄报内容,科技手抄报内容-科技在我身边
  14. micropython控制舵机,Micropython之pwm控制舵机
  15. Gradle 4.4 版本 百度云网盘地址(永久有效)
  16. 项目实战:Qt贝塞尔曲线拽托顶点实时显示工具
  17. 推荐一款超快的Android模拟器
  18. Excel VBA:填充——FillDown方法
  19. 网站压力测试--abtest测试详解abtest
  20. 途牛旅游项目练习-登录篇

热门文章

  1. 湖北工业大学查分_湖北工业大学成人高考低于分数线没考上怎么办?
  2. [摘抄]〈测试之美〉读后感
  3. Java多线程(四)——多线程数据隔离与共享
  4. SQL那些事儿(二)
  5. 全面使用禅道做敏捷开发的规范化管理分享
  6. Unity Android 动态更新 Assembly-CSharp.dll
  7. IOCP编程之基本原理
  8. 高级着色语言HLSL入门(1)
  9. Vue组件相关的知识
  10. python 自动登录方法_Python实现自动登录百度空间的方法