PC6下载站

分类分类

轻松提取资源 EZ Extract Resource v1.73 国际版 算法详解

关注+2004-10-15作者:蓝点

软件版本:  v1.73  
软件类型: 精品软件
运行环境: Win9x/WinME/Win2000/WinXP  
界面语言: 繁体中文/简体中文/English
授权方式: 免费软件 Free
软件大小: 710KB
下载地址:http://as.onlinedown.net/down/ExtraresSetup.exe


为了节省篇幅,直接从注册算法代码处开始。前面的破解过程省略。

0040FD13  |. 8D7C34 17      LEA EDI,DWORD PTR SS:[ESP+ESI+17]
0040FD17  |> 8B8424 F000000>/MOV EAX,DWORD PTR SS:[ESP+F0]===>将用户名移入EAX,开始用用户名计算注册码。用户名字符序号从0开始依次递增。
0040FD1E  |. BD 07000000    |MOV EBP,7===>将7移入EBP。
0040FD23  |. 8A1C01         |MOV BL,BYTE PTR DS:[ECX+EAX]===>将用户名第一个字符的十六进制值移入BL。
0040FD26  |. 8BC1           |MOV EAX,ECX===>EAX=ECX,ECX的初始值为0。
0040FD28  |. 99             |CDQ===>扩展,使EDX为0。
0040FD29  |. F7FD           |IDIV EBP===>除以7。余数在EDX中,用于控制从固定字符串中依次逐个提取字符。如果余数为0则取第一个字符,如果为1则取第二个字符,依次类推。
0040FD2B  |. 0FBEC3         |MOVSX EAX,BL===>将用户名第一个字符的十六进制值移入EAX。
0040FD2E  |. 8BD9           |MOV EBX,ECX===>EAX=ECX,ECX的初始值为0。
0040FD30  |. 0FBE5414 10    |MOVSX EDX,BYTE PTR SS:[ESP+EDX+10]===>SS:[ESP+10]中是固定字符串“huydong”,由EDX控制依次逐个提取字符。
0040FD35  |. 03DA           |ADD EBX,EDX===>EBX=EBX+EDX。
0040FD37  |. 03C3           |ADD EAX,EBX===>EAX=EAX+EDX。
0040FD39  |. BB 09000000    |MOV EBX,9===>将9移入EBX。
0040FD3E  |. 03C6           |ADD EAX,ESI===>ESI为用户名字符长度。
0040FD40  |. 99             |CDQ
0040FD41  |. F7FB           |IDIV EBX===>除以9。
0040FD43  |. 80C2 30        |ADD DL,30===>余数+30。
0040FD46  |. 41             |INC ECX===>ECX自加1。
0040FD47  |. 8817           |MOV BYTE PTR DS:[EDI],DL===>保存。
0040FD49  |. 4F             |DEC EDI
0040FD4A  |. 3BCE           |CMP ECX,ESI
0040FD4C  |.^7C C9          \JL SHORT ExtractR.0040FD17===>如用户名字符未取完则跳回继续计算。
0040FD4E  |. 5F             POP EDI
0040FD4F  |. 5D             POP EBP
0040FD50  |> 8D46 4D        LEA EAX,DWORD PTR DS:[ESI+4D]===>EAX=用户名字符长度+4D
0040FD53  |. B9 09000000    MOV ECX,9
0040FD58  |. 99             CDQ
0040FD59  |. F7F9           IDIV ECX===>除以9。余数在EDX中。
0040FD5B  |. 8B8424 EC00000>MOV EAX,DWORD PTR SS:[ESP+EC]
0040FD62  |. 80C2 30        ADD DL,30===>余数+30。
0040FD65  |. 885434 10      MOV BYTE PTR SS:[ESP+ESI+10],DL===>保存。
0040FD69  |. C64434 11 00   MOV BYTE PTR SS:[ESP+ESI+11],0
0040FD6E  |. 8D7424 10      LEA ESI,DWORD PTR SS:[ESP+10]===>将注册码移入ESI中。如果是制作内存注册机,那么只要在下一行代码处下断,ESI中就有真正的注册码。
0040FD72  |> 8A10           /MOV DL,BYTE PTR DS:[EAX]
0040FD74  |. 8A1E           |MOV BL,BYTE PTR DS:[ESI]
0040FD76  |. 8ACA           |MOV CL,DL
0040FD78  |. 3AD3           |CMP DL,BL
0040FD7A  |. 75 1E          |JNZ SHORT ExtractR.0040FD9A
0040FD7C  |. 84C9           |TEST CL,CL

  总结一下,注册码算法是先用用户名字符计算各位注册码,然后用用户名长度计算出最后1位注册码,所以注册码的长度比用户名长度多1位。
   用实例表示如下:(假定用户名为csjwaman)
1、(99+104+0+8)/9的余数-----4
  注:99为c(用户名的第一个字符)的ASCII码,104为h(固定字符串的第一个字符)的ASCII码,0为用户名字符c的序号,8为用户名字符长度。下同,不再注解。
2、(115+117+1+8)/9的余数----7
3、(106+121+2+8)/9的余数----3
4、(119+100+3+8)/9的余数----5
5、( 97+111+4+8)/9的余数----4
6、(109+110+5+8)/9的余数----7
7、( 97+ 67+6+8)/9的余数----7
8、(110+ 68+7+8)/9的余数----4
9、最后一位注册码为:(用户名长度+4D)/9的余数。我的用户名长度为8,所以余数为4

注意:前8位注册码在输入时要颠倒位置,再输入最后一位注册码。如我的注册码输入时为477453744。


    
    
     
    
    
展开全部

相关文章

更多+相同厂商

热门推荐

  • 最新排行
  • 最热排行
  • 评分最高
排行榜

    点击查看更多

      点击查看更多

        点击查看更多

        说两句网友评论

          我要评论...
          取消