Your Ad Here
首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 网络安全 > 黑客技术 > Revival 的算法跟踪(3)
【标  题】:Revival 的算法跟踪(3)
【关键字】:vi,Re,Revival
【来  源】:网络

Revival 的算法跟踪(3)

Your Ad Here 00403347   MOV     CX, WORD PTR DS:[ESI+5]        ;  CX = 3433 ("34")
0040334B   ADD     ESP, 4
0040334E   MOV     WORD PTR SS:[ESP+10], CX       ;  CX ==>SS:[0012F514]
00403353   SUB     AL, 13                         ;  AL =01 SUB 13=EE  |这里把第一组值-13
00403355   LEA     ECX, DWORD PTR SS:[ESP+10]     ;  ECX <==0012F514, (ASCII "34")
00403359   MOV     BYTE PTR SS:[ESP+C], AL        ;  AL =EE  ==>SS:[0012F510]  |第一组的值保存在这里
0040335D   MOV     BYTE PTR SS:[ESP+12], 0
00403362   PUSH    ECX
00403363   CALL    Revival.0041F800               *********第二次调用
00403368   LEA     EDX, DWORD PTR SS:[ESP+14]     ;  EDX <== 0012F514,(ASCII "34")
0040336C   ADD     ESP, 4
0040336F   LEA     EBX, DWORD PTR DS:[EAX-25]     ;  EBX <== EAX(上面CALL计算的值)-25=FFFFFFFD  |第二组计算的值-25
00403372   LEA     ECX, DWORD PTR DS:[ESI+A]      ;  ECX <== DS:[ESI+A]=00932676,(ASCII "78901"). 试验码的后五位
00403375   PUSH    EDX                            ;  EDX =34
00403376   MOV     EAX, DWORD PTR DS:[ECX]        ;  EAX <== DS:[00932676]=30393837
00403378   MOV     DWORD PTR DS:[EDX], EAX        ;  DS:[0012F514] <== 03393837
0040337A   MOV     CL, BYTE PTR DS:[ECX+4]        ;  CL <== DS:[ECX+4]=31 ('1') 试验码的最后一位
0040337D   MOV     BYTE PTR DS:[EDX+4], CL        ;  第五位也转移过来
00403380   MOV     BYTE PTR SS:[ESP+19], 0
00403385   CALL    Revival.0041F800               *********第三次调用
0040338A   ADD     ESP, 4
0040338D   MOV     EDI, EAX                       ;  EDI <==13435 (后五位经过上面计算的值)
0040338F   XOR     DI, 5468                       ;  DI=3435 XOR 5468=605D  (只取这个值的后四位计算)
00403394   MOV     AX, WORD PTR DS:[ESI+8]        ;  AX <== DS:[00932674]=3635 ("56") ,试验码的第九第十位
00403398   MOV     WORD PTR SS:[ESP+10], AX
0040339D   LEA     EAX, DWORD PTR SS:[ESP+10]     ;  EAX <== SS:[ESP+10]=0012F514,(ASCII "56901")
004033A1   MOV     BYTE PTR SS:[ESP+12], 0
004033A6   MOVZX   EDI, DI                        ;  EDI<==605D
004033A9   PUSH    EAX
004033AA   CALL    Revival.0041F800               *********第四次调用
004033AF   MOV     BYTE PTR SS:[ESP+14], AL       ;  SS:[0012F514]=38  ,第四次的值
004033B3   ADD     ESP, 4
004033B6   XOR     EAX, EAX
004033B8   MOV     ECX, 64                        ;  ECX =64    <--参数
004033BD   MOV     AL, BL                         ;  AL =FD     ,第二次的值
004033BF   MOV     EBX, 0A                        ;  EBX <=0A   <--参数
004033C4   LEA     EAX, DWORD PTR DS:[EAX+EDI+3]  ;  EAX <==FD+6150D+3 ,第三次的值
004033C8   CDQ
004033C9   IDIV    ECX                            ;  ECX = 64  IDIV  EAX = 615D ==>EAX =F9 EDX=19
004033CB   MOV     CL, DL                         ;  CL <== 19
004033CD   XOR     EAX, EAX
004033CF   MOV     AL, BYTE PTR SS:[ESP+C]        ;  AL <== SS:[0012F510]=EE ,第一次的值
004033D3   LEA     EAX, DWORD PTR DS:[EAX+EDI+3]  ;  EAX =EE+605D+3= 614E
004033D7   CDQ
004033D8   IDIV    EBX                            ;  EAX =614E IDIV EBX=A ==>EAX=9BB EDX=000
004033DA   SUB     DL, BYTE PTR DS:[ESI+4]        ;  DL =DL-32 ('2') ,试验码的第五位
004033DD   CMP     DL, 0D0                        ;  DL =CE
004033E0   JNZ     SHORT Revival.00403406         ;  注册码的正确条件7
004033E2   CMP     CL, BYTE PTR SS:[ESP+10]       ;  CL = 19    SS:[ESP+10] =SS:[0012F514]=38
004033E6   JNZ     SHORT Revival.00403406         ;  注册码的正确条件8
004033E8   MOV     EAX, 1
004033ED   POP     EDI
004033EE   POP     ESI
004033EF   POP     EBX
004033F0   ADD     ESP, 24
004033F3   RETN

##############################################################
以上算法分析已经完成,下面来总结注册码的计算方法: 注册码的长度=15位

  1.首先看注册码的前二位比较容易固定值rv
  2.注册码的第八位是 2D('-')
  3.注册码的其他几位必须是数字
  4.其他几位正确的条件:设第一次计算的值为M ,第二次的值为N ,第三次值的后四位为J ,第四次计算的值为K

          1).(M+(J XOR 5468)+3) MOD A + D0 = 注册码的第五位
          2).(N+(J XOR 5468)+3) MOD 64 = k

  5.假如我们知道M N J K

    这样注册码的这几位可以知道假设了: rv01?34-??78901

  6.为了使上式成立,我们做如下分析:

  从 K 分析: 设K=19 ,第九位为T1 ,第十位为T2
               则:T2=19-T1*A >=0 ; T1 的取值范围只能是 2  那么 T2 =19-2*A=5
  这样把注册码设成:rv01???-2578901
  现在来分析一下它对第一个条件能不能成立:
          1).(M+(J XOR 5468)+3) MOD A = 注册码的第五位  
             上式改为注册码的第五位=6145 MOD A =0

  把注册码改为:rv01034-2578901
 
几点说明:  
  1.这个软件的注册码如果不进行假设的话,可能很难知道结果.
  2.SUB     DL, BYTE PTR DS:[ESI+4]        ;  DL =DL-32 ('2') ,试验码的第五位
    (M+(J XOR 5468)+3) MOD A = 注册码的第五位,这个我是怎么知道的
    原来 MOD A 得到的值是<A -30以上的值是负数,我无法用计算器计算,只好用sice的计算功能才
   知道0-30=D0 ,因此上面式子就是:
    SUB     DL, BYTE PTR DS:[ESI+4]  
    CMP     DL, 0D0  
    JNZ     SHORT Revival.00403406   <== 不能跳
   成立的描述.
 3.以上算法得到的注册码,能注册成功,但是重新启动时不能通过,请老师们斧正 

Roaring Falls Screensaver算法分析(1):【上一篇】
用VB编程实现任意修改Windows桌面背景:【下一篇】
【相关文章】
  • Roaring Falls Screensaver算法分析(1)
  • Roaring Falls Screensaver算法分析(2)
  • Roaring Falls Screensaver算法分析(3)
  • VirTime HTMLock V1.4.0 pj之温柔篇(1)
  • VirTime HTMLock V1.4.0 pj之温柔篇(2)
  • SWF探索者(SWFExplorer)XP V1.11.2002.326 破解过程
  • windows 2000 wmi service buffer overflow expolit
  • Resource Grabber v2.68c 功能限制去除
  • EasyRecovery 5.0 5个文件限制的破解全攻略
  • Readbook v1.4破解实战
  • 【随机文章】
  • 传奇世界,你我眼中的元宝
  • C#2.0-泛型
  • MPLS应用一瞥
  • [.NET3.0体验]Oracas中内置的LinQ,XLinQ[DLinQ]扩展方法
  • solaris网络管理基础培训
  • 合成的魅力:三星最新靓丽DC L50上市
  • Zaks Pop3 简要介绍 
  • mysql 程序参考
  • 建立一个任务栏通知程序
  • 引用
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 bbb软讯网络 All Rigths Reserved.