作品发布     邀请码    设为首页  收藏 

当前位置:文章免杀 → 文章内容 >> Aurora MPEG To DVD Burner注册算法分析


Aurora MPEG To DVD Burner注册算法分析

更新时间:2010-12-25 4:56:28   作者:佚名  来源:不详

文/图 zjjtr
    人人都说国内的软件安全性太差,今天上网找到一个不错的国外软件Aurora MPEG To DVD Burner,它能将MPEG文件转化为DVD-R、DVD+R、DVD+RW,使其能够在DVD播放机上播放。用它可以创造一个真正的DVD,而不仅仅是硬盘上的一个MPEG文件。下面我就来看看它的安全性如何。
    试着注册一下,发现有错误提示“Sorry,Invalid username or registration code”。用PEiD查壳,发现无壳,并且软件是用Microsoft Visual C++ 6.0写的。用OD载入,查找ASCII,并没有那些错误提示,既然弹出了对话框,就用API断点吧。F9运行,点Register,出来注册窗口,User Name填“zjjtr”,Registeration Code填“123456789”。OD中下“bp MessageBoxA”,点击OK按扭,程序成功被断。
 
77D5058A >  8BFF  MOV EDI,EDI ;断在这里
77D5058C    55    PUSH EBP
77D5058D    8BEC  MOV EBP,ESP
77D5058F    833D BC04D777 0>CMP DWORD PTR DS:[77D704BC],0

Alt+F9回到程序,点确定,来到这里。
 
0045E317  /$  8B4424 08  MOV EAX,DWORD PTR SS:[ESP+8]
0045E31B  |.  56  PUSH ESI
0045E31C  |.  85C0  TEST EAX,EAX
0045E31E  |.  8BF1  MOV ESI,ECX
0045E320  |.  75 08  JNZ SHORT Aurora_M.0045E32A
0045E322  |.  E8 AEED0000  CALL Aurora_M.0046D0D5
0045E327  |.  8B40 10  MOV EAX,DWORD PTR DS:[EAX+10]
0045E32A  |>  85F6  TEST ESI,ESI
0045E32C  |.  75 04  JNZ SHORT Aurora_M.0045E332
0045E32E  |.  33C9  XOR ECX,ECX
0045E330  |.  EB 03  JMP SHORT Aurora_M.0045E335
0045E332  |>  8B4E 1C  MOV ECX,DWORD PTR DS:[ESI+1C]
0045E335  |>  FF7424 10  PUSH DWORD PTR SS:[ESP+10] 
0045E339  |.  50  PUSH EAX  
0045E33A  |.  FF7424 10  PUSH DWORD PTR SS:[ESP+10] 
0045E33E  |.  51  PUSH ECX 
0045E33F  |.  FF15 7C764700 CALL DWORD PTR DS:[<&USER32.MessageBoxA>>
0045E345  |.  5E  POP ESI  ;来到这里

往前看到0045E317,发现“本地调用来自 00422FD7,00423005”,我们分别来到00422FD7和00423005,直接从00422FD7处分析。重新载入程序,在00422F70 处下断点,程序停了下来:
 
00422F70  .  6A FF  PUSH -1 ;断点
00422F72  .  68 F8444700  PUSH Aurora_M.004744F8 
00422F77  .  64:A1 0000000>MOV EAX,DWORD PTR FS:[0]
00422F7D  .  50  PUSH EAX
00422F7E  .  64:8925 00000>MOV DWORD PTR FS:[0],ESP
00422F85  .  83EC 08  SUB ESP,8
00422F88  .  A1 34404900  MOV EAX,DWORD PTR DS:[494034]
00422F8D  .  56  PUSH ESI
00422F8E  .  8BF1  MOV ESI,ECX
00422F90  .  894424 04  MOV DWORD PTR SS:[ESP+4],EAX
00422F94  .  6A 01  PUSH 1
00422F96  .  C74424 18 000>MOV DWORD PTR SS:[ESP+18],0
00422F9E  .  E8 6ABE0300  CALL Aurora_M.0045EE0D  ;注册码
00422FA3  .  E8 2DA10400  CALL Aurora_M.0046D0D5 
00422FA8  .  8B48 04  MOV ECX,DWORD PTR DS:[EAX+4]   ;固定字符串“hyG”
00422FAB  .  E8 D88A0300  CALL Aurora_M.0045BA88
00422FB0  .  8B46 60  MOV EAX,DWORD PTR DS:[ESI+60]  ;注册码移入EAX
00422FB3  .  8B4E 5C  MOV ECX,DWORD PTR DS:[ESI+5C]  ;用户名移入ECX
00422FB6  .  50  PUSH EAX
00422FB7  .  51  PUSH ECX
00422FB8  .  C64424 1C 01  MOV BYTE PTR SS:[ESP+1C],1
00422FBD  .  E8 CEFCFFFF  CALL Aurora_M.00422C90   ;算法call,F7追入
00422FC2  .  83C4 08  ADD ESP,8
00422FC5  .  85C0  TEST EAX,EAX
00422FC7  .  75 18  JNZ SHORT Aurora_M.00422FE1   ;不等就注册失败,这里可以爆破
00422FC9  .  6A 40  PUSH 40
00422FCB  .  68 28FC4800  PUSH Aurora_M.0048FC28 
00422FD0  .  68 FCFB4800  PUSH Aurora_M.0048FBFC 
00422FD5  .  8BCE  MOV ECX,ESI
00422FD7  .  E8 3BB30300  CALL Aurora_M.0045E317  ;调用上面出错信息的call
00422FDC  .  E9 A0000000  JMP Aurora_M.00423081
00422FE1  >  8B4E 5C  MOV ECX,DWORD PTR DS:[ESI+5C]
00422FE4  .  8D5424 04  LEA EDX,DWORD PTR SS:[ESP+4]
00422FE8  .  51  PUSH ECX
00422FE9  .  68 E0FB4800  PUSH Aurora_M.0048FBE0  ;ASCII "License To:%s  "
00422FEE  .  52  PUSH EDX
00422FEF  .  E8 20520300  CALL Aurora_M.00458214
00422FF4  .  8B4424 10  MOV EAX,DWORD PTR SS:[ESP+10]
00422FF8  .  83C4 0C  ADD ESP,0C
00422FFB  .  8BCE  MOV ECX,ESI
00422FFD  .  6A 40  PUSH 40
00422FFF  .  68 D4FB4800  PUSH Aurora_M.0048FBD4  ;ASCII "Thank you"
00423004  .  50  PUSH EAX
00423005  .  E8 0DB30300  CALL Aurora_M.0045E317  ;如果运行到这里注册成功
0042300A  .  8B46 5C  MOV EAX,DWORD PTR DS:[ESI+5C]
0042300D  .  B9 38844900  MOV ECX,Aurora_M.00498438
00423012  .  50  PUSH EAX
00423013  .  E8 E83CFFFF  CALL Aurora_M.00416D00
00423018  .  8B46 60  MOV EAX,DWORD PTR DS:[ESI+60]
0042301B  .  B9 38844900  MOV ECX,Aurora_M.00498438
00423020  .  50  PUSH EAX
00423021  .  E8 0A3DFFFF  CALL Aurora_M.00416D30
00423026  .  E8 AAA00400  CALL Aurora_M.0046D0D5
0042302B  .  8B40 04  MOV EAX,DWORD PTR DS:[EAX+4]
0042302E  .  8D4C24 04  LEA ECX,DWORD PTR SS:[ESP+4]
00423032  .  51  PUSH ECX
00423033  .  8D5424 0C  LEA EDX,DWORD PTR SS:[ESP+C]
00423037  .  68 08D74800  PUSH Aurora_M.0048D708 
0042303C  .  52  PUSH EDX
0042303D  .  C680 C1000000>MOV BYTE PTR DS:[EAX+C1],1
00423044  .  E8 557D0300  CALL Aurora_M.0045AD9E
00423049  .  50  PUSH EAX
0042304A  .  8D4C24 08  LEA ECX,DWORD PTR SS:[ESP+8]
0042304E  .  C64424 18 02  MOV BYTE PTR SS:[ESP+18],2
00423053  .  E8 767B0300  CALL Aurora_M.0045ABCE
00423058  .  8D4C24 08  LEA ECX,DWORD PTR SS:[ESP+8]
0042305C  .  C64424 14 01  MOV BYTE PTR SS:[ESP+14],1
00423061  .  E8 2F7A0300  CALL Aurora_M.0045AA95
00423066  .  E8 6AA00400  CALL Aurora_M.0046D0D5
0042306B  .  8B40 04  MOV EAX,DWORD PTR DS:[EAX+4]
0042306E  .  8B4C24 04  MOV ECX,DWORD PTR SS:[ESP+4]
00423072  .  51  PUSH ECX
00423073  .  8BC8  MOV ECX,EAX
00423075  .  8B10  MOV EDX,DWORD PTR DS:[EAX]
00423077  .  FF52 74  CALL DWORD PTR DS:[EDX+74]
0042307A  .  8BC8  MOV ECX,EAX
0042307C  .  E8 21C90300  CALL Aurora_M.0045F9A2
00423081  >  8BCE  MOV ECX,ESI
00423083  .  E8 3D950300  CALL Aurora_M.0045C5C5
00423088  .  C64424 14 00  MOV BYTE PTR SS:[ESP+14],0
0042308D  .  E8 43A00400  CALL Aurora_M.0046D0D5
00423092  .  8B48 04  MOV ECX,DWORD PTR DS:[EAX+4]
00423095  .  E8 038A0300  CALL Aurora_M.0045BA9D
0042309A  .  8D4C24 04  LEA ECX,DWORD PTR SS:[ESP+4]
0042309E  .  C74424 14 FFF>MOV DWORD PTR SS:[ESP+14],-1
004230A6  .  E8 EA790300  CALL Aurora_M.0045AA95
004230AB  .  8B4C24 0C  MOV ECX,DWORD PTR SS:[ESP+C]
004230AF  .  5E  POP ESI
004230B0  .  64:890D 00000>MOV DWORD PTR FS:[0],ECX
004230B7  .  83C4 14  ADD ESP,14

F7跟入00422FBD处的call,来到这里。
 
00422C90  /$  53  PUSH EBX
00422C91  |.  55  PUSH EBP
00422C92  |.  8B6C24 0C  MOV EBP,DWORD PTR SS:[ESP+C]
00422C96  |.  56  PUSH ESI
00422C97  |.  57  PUSH EDI
00422C98  |.  BE 74834900  MOV ESI,Aurora_M.00498374
00422C9D  |.  8BC5  MOV EAX,EBP
00422C9F  |>  8A10  /MOV DL,BYTE PTR DS:[EAX]  ;用户名第一个字符z
00422CA1  |.  8A1E  |MOV BL,BYTE PTR DS:[ESI]
00422CA3  |.  8ACA  |MOV CL,DL   ;ECX中固定字符串"ltr.ax"
00422Cyesmybi.com  |.  3AD3  |CMP DL,BL   ;与0比较,即检查用户名是否为空
00422CA7  |.  75 1E  |JNZ SHORT Aurora_M.00422CC7
00422CA9  |.  84C9  |TEST CL,CL
00422CAB  |.  74 16  |JE SHORT Aurora_M.00422CC3
00422CAD  |.  8yesmybi.com0 01  |MOV DL,BYTE PTR DS:[EAX+1]
00422CB0  |.  8yesmybi.comE 01  |MOV BL,BYTE PTR DS:[ESI+1]
00422CB3  |.  8ACA  |MOV CL,DL
00422CB5  |.  3AD3  |CMP DL,BL
00422CB7  |.  75 0E  |JNZ SHORT Aurora_M.00422CC7
00422CB9  |.  83C0 02  |ADD EAX,2
00422CBC  |.  83C6 02  |ADD ESI,2
00422CBF  |.  84C9  |TEST CL,CL
00422CC1  |.^ 75 DC  \JNZ SHORT Aurora_M.00422C9F
00422CC3  |>  33C0  XOR EAX,EAX
00422CC5  |.  EB 05  JMP SHORT Aurora_M.00422CCC
00422CC7  |>  1BC0  SBB EAX,EAX
00422CC9  |.  83D8 FF  SBB EAX,-1
00422CCC  |>  85C0  TEST EAX,EAX
00422CCE  |.  74 62  JE SHORT Aurora_M.00422D32
00422CD0  |.  8B7C24 18  MOV EDI,DWORD PTR SS:[ESP+18]
00422CD4  |.  BE 74834900  MOV ESI,Aurora_M.00498374
00422CD9  |.  8BC7  MOV EAX,EDI
00422CDB  |>  8A10  /MOV DL,BYTE PTR DS:[EAX]  ;这里检查注册码是否为空
00422CDD  |.  8A1E  |MOV BL,BYTE PTR DS:[ESI]
00422CDF  |.  8ACA  |MOV CL,DL
00422CE1  |.  3AD3  |CMP DL,BL
00422CE3  |.  75 1E  |JNZ SHORT Aurora_M.00422D03
00422CE5  |.  84C9  |TEST CL,CL
00422CE7  |.  74 16  |JE SHORT Aurora_M.00422CFF
00422CE9  |.  8yesmybi.com0 01  |MOV DL,BYTE PTR DS:[EAX+1]
00422CEC  |.  8yesmybi.comE 01  |MOV BL,BYTE PTR DS:[ESI+1]
00422CEF  |.  8ACA  |MOV CL,DL
00422CF1  |.  3AD3  |CMP DL,BL
00422CF3  |.  75 0E  |JNZ SHORT Aurora_M.00422D03
00422CF5  |.  83C0 02  |ADD EAX,2
00422CF8  |.  83C6 02  |ADD ESI,2
00422CFB  |.  84C9  |TEST CL,CL
00422CFD  |.^ 75 DC  \JNZ SHORT Aurora_M.00422CDB
00422CFF  |>  33C0  XOR EAX,EAX
00422D01  |.  EB 05  JMP SHORT Aurora_M.00422D08
00422D03  |>  1BC0  SBB EAX,EAX
00422D05  |.  83D8 FF  SBB EAX,-1
00422D08  |>  85C0  TEST EAX,EAX
00422D0A  |.  74 26  JE SHORT Aurora_M.00422D32
00422D0C  |.  57  PUSH EDI
00422D0D  |.  55  PUSH EBP
00422D0E  |.  E8 6DF9FFFF  CALL Aurora_M.00422680   ;算法
00422D13  |.  83C4 08  ADD ESP,8
00422D16  |.  85C0  TEST EAX,EAX
00422D18  |.  75 0E  JNZ SHORT Aurora_M.00422D28
00422D1A  |.  57  PUSH EDI
00422D1B  |.  55  PUSH EBP
00422D1C  |.  E8 8FFBFFFF  CALL Aurora_M.004228B0
00422D21  |.  83C4 08  ADD ESP,8
00422D24  |.  85C0  TEST EAX,EAX
00422D26  |.  74 0A  JE SHORT Aurora_M.00422D32
00422D28  |>  5F  POP EDI
00422D29  |.  5E  POP ESI
00422D2A  |.  5D  POP EBP
00422D2B  |.  B8 01000000  MOV EAX,1
00422D30  |.  5B  POP EBX
00422D31  |.  C3  RETN

F7跟入00422D0E 的call。
00422682  |.  68 D0434700  PUSH Aurora_M.004743D0  ;SE处理程序安装
00422687  |.  64:A1 0000000>MOV EAX,DWORD PTR FS:[0]
0042268D  |.  50  PUSH EAX
0042268E  |.  64:8925 00000>MOV DWORD PTR FS:[0],ESP
00422695  |.  83EC 14  SUB ESP,14
00422698  |.  8B4424 24  MOV EAX,DWORD PTR SS:[ESP+24]
0042269C  |.  53  PUSH EBX   ;依次将用户名、注册码压栈
0042269D  |.  55  PUSH EBP
0042269E  |.  56  PUSH ESI
0042269F  |.  57  PUSH EDI
004226A0  |.  50  PUSH EAX
004226A1  |.  8D4C24 18  LEA ECX,DWORD PTR SS:[ESP+18]  
004226yesmybi.com  |.  E8 59840300  CALL Aurora_M.0045AB03  ;下面几个call获取用户名和注册码
004226AA  |.  8D4C24 14  LEA ECX,DWORD PTR SS:[ESP+14]
004226AE  |.  C74424 2C 000>MOV DWORD PTR SS:[ESP+2C],0
004226B6  |.  E8 B85B0300  CALL Aurora_M.00458273
004226BB  |.  8D4C24 14  LEA ECX,DWORD PTR SS:[ESP+14]
004226BF  |.  E8 635B0300  CALL Aurora_M.00458227
004226C4  |.  6A 20  PUSH 20
004226C6  |.  8D4C24 18  LEA ECX,DWORD PTR SS:[ESP+18]
004226CA  |.  E8 F6870300  CALL Aurora_M.0045AEC5
004226CF  |.  8B4C24 38  MOV ECX,DWORD PTR SS:[ESP+38]
004226D3  |.  8BD8  MOV EBX,EAX
004226D5  |.  51  PUSH ECX
004226D6  |.  8D4C24 14  LEA ECX,DWORD PTR SS:[ESP+14]
004226DA  |.  E8 24840300  CALL Aurora_M.0045AB03
004226DF  |.  8D4C24 10  LEA ECX,DWORD PTR SS:[ESP+10]
004226E3  |.  C64424 2C 01  MOV BYTE PTR SS:[ESP+2C],1
004226E8  |.  E8 865B0300  CALL Aurora_M.00458273
004226ED  |.  8D4C24 10  LEA ECX,DWORD PTR SS:[ESP+10]
004226F1  |.  E8 315B0300  CALL Aurora_M.00458227
004226F6  |.  6A 20  PUSH 20
004226F8  |.  8D4C24 14  LEA ECX,DWORD PTR SS:[ESP+14]
004226FC  |.  E8 C4870300  CALL Aurora_M.0045AEC5
00422701  |.  8BD0  MOV EDX,EAX
00422703  |.  83CE FF  OR ESI,FFFFFFFF
00422706  |.  8BFA  MOV EDI,EDX
00422708  |.  8BCE  MOV ECX,ESI
0042270A  |.  33C0  XOR EAX,EAX
0042270C  |.  895424 20  MOV DWORD PTR SS:[ESP+20],EDX
00422710  |.  F2:AE  REPNE SCAS BYTE PTR ES:[EDI]  ;注册码长度到ECX
00422712  |.  F7D1  NOT ECX
00422714  |.  49  DEC ECX
00422715  |.  8BFB  MOV EDI,EBX
00422717  |.  8BE9  MOV EBP,ECX  ;注册码长度转移到EBP
00422719  |.  8BCE  MOV ECX,ESI 
0042271B  |.  F2:AE  REPNE SCAS BYTE PTR ES:[EDI]  ;用户名长度到ECX
0042271D  |.  F7D1  NOT ECX
0042271F  |.  49  DEC ECX
00422720  |.  3BCD  CMP ECX,EBP
00422722  |.  0F87 52010000 JA Aurora_M.0042287A
00422728  |.  8BFB  MOV EDI,EBX
0042272A  |.  8BCE  MOV ECX,ESI
0042272C  |.  F2:AE  REPNE SCAS BYTE PTR ES:[EDI]  ;用户名第一个字符放入EAX
0042272E  |.  F7D1  NOT ECX
00422730  |.  49  DEC ECX
00422731  |.  0F84 43010000 JE Aurora_M.0042287A
00422737  |.  8BFA  MOV EDI,EDX
00422739  |.  8BCE  MOV ECX,ESI
0042273B  |.  F2:AE  REPNE SCAS BYTE PTR ES:[EDI]  ;注册码第一个字符放入EAX
;再次检测用户名和注册码是否为空
0042273D  |.  F7D1  NOT ECX
0042273F  |.  49  DEC ECX
00422740  |.  0F84 34010000 JE Aurora_M.0042287A
00422746  |.  894424 38  MOV DWORD PTR SS:[ESP+38],EAX
0042274A  |>  8B5424 38  /MOV EDX,DWORD PTR SS:[ESP+38]
0042274E  |.  8A82 B8FA4800 |MOV AL,BYTE PTR DS:[EDX+48FAB8]
00422754  |.  8B15 34404900 |MOV EDX,DWORD PTR DS:[494034] ;Aurora_M.00494048
0042275A  |.  884424 18  |MOV BYTE PTR SS:[ESP+18],AL
0042275E  |.  895424 34  |MOV DWORD PTR SS:[ESP+34],EDX
00422762  |.  8BFB  |MOV EDI,EBX
00422764  |.  83C9 FF  |OR ECX,FFFFFFFF
00422767  |.  33C0  |XOR EAX,EAX
00422769  |.  33ED  |XOR EBP,EBP
0042276B  |.  F2:AE  |REPNE SCAS BYTE PTR ES:[EDI]
0042276D  |.  F7D1  |NOT ECX
0042276F  |.  49  |DEC ECX
00422770  |.  C64424 2C 02  |MOV BYTE PTR SS:[ESP+2C],2
00422775  |.  74 4F  |JE SHORT Aurora_M.004227C6
00422777  |>  8A042B  |/MOV AL,BYTE PTR DS:[EBX+EBP]
0042277A  |.  33F6  ||XOR ESI,ESI
0042277C  |>  3A0475 50FA48>||/CMP AL,BYTE PTR DS:[ESI*2+48Fyesmybi.com0]
00422783  |.  74 08  |||JE SHORT Aurora_M.0042278D
00422785  |.  46  |||INC ESI
00422786  |.  83FE 34  |||CMP ESI,34
00422789  |.^ 7C F1  ||\JL SHORT Aurora_M.0042277C
0042278B  |.  EB 11  ||JMP SHORT Aurora_M.0042279E
0042278D  |>  8A0C75 51FA48>||MOV CL,BYTE PTR DS:[ESI*2+48Fyesmybi.com1];这里计算注册码第一段.

注册码有两段,这里是第一段,由查表所得,我们根据地址[EBX+EBP]在数据窗口找到第一张表ABCdefghijklmnopqrstuvwxyzabCDEFGHIJKLMNOPQRSTUVWXYZ;根据地址[ESI*2+48Fyesmybi.com0]在数据窗口找到第二张表ACBxCidIeAfXgMhjiEjVkZlemRnyoBpKqdrTsStPuWvlwkxDyHzFazbqCpD

OEkFgGYHmItJaKrLQMnNsOuPUQGRJSLTNUbVcWfXhYoZwGXW。
注册码第一段为:用户名每个字符在表1中的序数乘以2得到的数作为新序数,然后在表2中找到对应序数的字母。如果用户名不是以上字符一律变为G。
 
00422794  |.  51  ||PUSH ECX
00422795  |.  8D4C24 38  ||LEA ECX,DWORD PTR SS:[ESP+38]
00422799  |.  E8 FA860300  ||CALL Aurora_M.0045AE98
0042279E  |>  83FE 34  ||CMP ESI,34
004227A1  |.  75 0E  ||JNZ SHORT Aurora_M.004227B1
004227A3  |.  8B5424 18  ||MOV EDX,DWORD PTR SS:[ESP+18]
004227A7  |.  8D4C24 34  ||LEA ECX,DWORD PTR SS:[ESP+34]
004227AB  |.  52  ||PUSH EDX
004227AC  |.  E8 E7860300  ||CALL Aurora_M.0045AE98
004227B1  |>  8BFB  ||MOV EDI,EBX
004227B3  |.  83C9 FF  ||OR ECX,FFFFFFFF
004227B6  |.  33C0  ||XOR EAX,EAX
004227B8  |.  45  ||INC EBP
004227B9  |.  F2:AE  ||REPNE SCAS BYTE PTR ES:[EDI]
004227BB  |.  F7D1  ||NOT ECX
004227BD  |.  49  ||DEC ECX
004227BE  |.  3BE9  ||CMP EBP,ECX
004227C0  |.^ 72 B5  |\JB SHORT Aurora_M.00422777
004227C2  |.  8B5424 34  |MOV EDX,DWORD PTR SS:[ESP+34]
004227C6  |>  8B42 F8  |MOV EAX,DWORD PTR DS:[EDX-8]
004227C9  |.  83F8 10  |CMP EAX,10 
004227CC  |.  7D 34  |JGE SHORT Aurora_M.00422802  ;用户名要小于16位,注册码一定是16位
004227CE  |.  B9 10000000  |MOV ECX,10
004227D3  |.  8D5424 1C  |LEA EDX,DWORD PTR SS:[ESP+1C]
004227D7  |.  2BC8  |SUB ECX,EAX
004227D9  |.  51  |PUSH ECX
004227DA  |.  52  |PUSH EDX
004227DB  |.  B9 9C844900  |MOV ECX,Aurora_M.0049849C
004227E0  |.  E8 0F560300  |CALL Aurora_M.00457DF4  ;F7跟入这个call,这里得到第二段注册码
004227E5  |.  50  |PUSH EAX
004227E6  |.  8D4C24 38  |LEA ECX,DWORD PTR SS:[ESP+38]
004227EA  |.  C64424 30 03  |MOV BYTE PTR SS:[ESP+30],3
004227EF  |.  E8 B9860300  |CALL Aurora_M.0045AEAD
004227F4  |.  8D4C24 1C  |LEA ECX,DWORD PTR SS:[ESP+1C]
004227F8  |.  C64424 2C 02  |MOV BYTE PTR SS:[ESP+2C],2
004227FD  |.  E8 93820300  |CALL Aurora_M.0045AA95
00422802  |>  8B4424 20  |MOV EAX,DWORD PTR SS:[ESP+20]
00422806  |.  8B4C24 34  |MOV ECX,DWORD PTR SS:[ESP+34]
0042280A  |.  50  |PUSH EAX   ;将前11位固定字符接在第一段注册码后得到注册码"FVVPTLdQsBcmpJpa"
0042280B  |.  51  |PUSH ECX   ; |Arg1
0042280C  |.  E8 444B0200  |CALL Aurora_M.00447355  ; \Aurora_M.00447355
00422811  |.  83C4 08  |ADD ESP,8
00422814  |.  8D4C24 34  |LEA ECX,DWORD PTR SS:[ESP+34]
00422818  |.  85C0  |TEST EAX,EAX
0042281A  |.  C64424 2C 01  |MOV BYTE PTR SS:[ESP+2C],1
0042281F  |.  74 1B  |JE SHORT Aurora_M.0042283C
00422821  |.  33F6  |XOR ESI,ESI
00422823  |.  E8 6D820300  |CALL Aurora_M.0045AA95
00422828  |.  8B4424 38  |MOV EAX,DWORD PTR SS:[ESP+38]
0042282C  |.  40  |INC EAX
0042282D  |.  83F8 03  |CMP EAX,3
00422830  |.  894424 38  |MOV DWORD PTR SS:[ESP+38],EAX
00422834  |.^ 0F8C 10FFFFFF \JL Aurora_M.0042274A
0042283A  |.  EB 0A  JMP SHORT Aurora_M.00422846
0042283C  |>  BE 01000000  MOV ESI,1
00422841  |.  E8 4F820300  CALL Aurora_M.0045AA95
00422846  |>  8D4C24 10  LEA ECX,DWORD PTR SS:[ESP+10]
0042284A  |.  C64424 2C 00  MOV BYTE PTR SS:[ESP+2C],0
0042284F  |.  E8 41820300  CALL Aurora_M.0045AA95
00422854  |.  8D4C24 14  LEA ECX,DWORD PTR SS:[ESP+14]
00422858  |.  C74424 2C FFF>MOV DWORD PTR SS:[ESP+2C],-1
00422860  |.  E8 30820300  CALL Aurora_M.0045AA95
00422865  |.  8BC6  MOV EAX,ESI
00422867  |.  5F  POP EDI
00422868  |.  5E  POP ESI
00422869  |.  5D  POP EBP
0042286A  |.  5B  POP EBX
0042286B  |.  8B4C24 14  MOV ECX,DWORD PTR SS:[ESP+14]
0042286F  |.  64:890D 00000>MOV DWORD PTR FS:[0],ECX
00422876  |.  83C4 20  ADD ESP,20
00422879  |.  C3  RETN
0042287A  |>  8D4C24 10  LEA ECX,DWORD PTR SS:[ESP+10]
0042287E  |.  C64424 2C 00  MOV BYTE PTR SS:[ESP+2C],0
00422883  |.  E8 0D820300  CALL Aurora_M.0045AA95
00422888  |.  8D4C24 14  LEA ECX,DWORD PTR SS:[ESP+14]
0042288C  |.  897424 2C  MOV DWORD PTR SS:[ESP+2C],ESI
00422890  |.  E8 00820300  CALL Aurora_M.0045AA95
00422895  |.  8B4C24 24  MOV ECX,DWORD PTR SS:[ESP+24]
00422899  |.  5F  POP EDI
0042289A  |.  5E  POP ESI
0042289B  |.  5D  POP EBP
0042289C  |.  33C0  XOR EAX,EAX
0042289E  |.  5B  POP EBX
0042289F  |.  64:890D 00000>MOV DWORD PTR FS:[0],ECX
004228A6  |.  83C4 20  ADD ESP,20
004228A9  \.  C3  RETN

从call出来,来到这里:
 
00457DF4  /$  B8 A7554700  MOV EAX,Aurora_M.004755A7
00457DF9  |.  E8 5A35FFFF  CALL Aurora_M.0044B358
00457DFE  |.  51  PUSH ECX
00457DFF  |.  8B45 0C  MOV EAX,DWORD PTR SS:[EBP+C]
00457E02  |.  8365 F0 00   AND DWORD PTR SS:[EBP-10],0
00457E06  |.  85C0  TEST EAX,EAX
00457E08  |.  7D 02  JGE SHORT Aurora_M.00457E0C
00457E0A  |.  33C0  XOR EAX,EAX
00457E0C  |>  8B11  MOV EDX,DWORD PTR DS:[ECX] ;固定字符串"FLdQsBcmpJpaEsXt"
00457E0E  |.  3B42 F8  CMP EAX,DWORD PTR DS:[EDX-8]
00457E11  |.  7C 0E  JL SHORT Aurora_M.00457E21
00457E13  |.  51  PUSH ECX
00457E14  |.  8B4D 08  MOV ECX,DWORD PTR SS:[EBP+8]
00457E17  |.  E8 EE290000  CALL Aurora_M.0045A80A
00457E1C  |.  8B45 08  MOV EAX,DWORD PTR SS:[EBP+8]
00457E1F  |.  EB 3D  JMP SHORT Aurora_M.00457E5E
00457E21  |>  8B15 34404900 MOV EDX,DWORD PTR DS:[494034] ; Aurora_M.00494048
00457E27  |.  56  PUSH ESI
00457E28  |.  8955 0C  MOV DWORD PTR SS:[EBP+C],EDX
00457E2B  |.  6A 01  PUSH 1
00457E2D  |.  5E  POP ESI
00457E2E  |.  6A 00  PUSH 0  ; /Arg4 = 00000000
00457E30  |.  6A 00  PUSH 0  ; |Arg3 = 00000000
00457E32  |.  50  PUSH EAX  ; |Arg2
00457E33  |.  8D45 0C  LEA EAX,DWORD PTR SS:[EBP+C]  ; |
00457E36  |.  50  PUSH EAX  ; |Arg1
00457E37  |.  8975 FC  MOV DWORD PTR SS:[EBP-4],ESI  ; |
00457E3A  |.  E8 802C0000  CALL Aurora_M.0045AABF ;这里将固定字符串取出(16-用户名的位数)位
00457E3F  |.  8B4D 08  MOV ECX,DWORD PTR SS:[EBP+8]
00457E42  |.  8D45 0C  LEA EAX,DWORD PTR SS:[EBP+C]
00457E45  |.  50  PUSH EAX
00457E46  |.  E8 BF290000  CALL Aurora_M.0045A80A
00457E4B  |.  8065 FC 00   AND BYTE PTR SS:[EBP-4],0
00457E4F  |.  8D4D 0C  LEA ECX,DWORD PTR SS:[EBP+C]
00457E52  |.  8975 F0  MOV DWORD PTR SS:[EBP-10],ESI
00457E55  |.  E8 3B2C0000  CALL Aurora_M.0045AA95
00457E5A  |.  8B45 08  MOV EAX,DWORD PTR SS:[EBP+8]
00457E5D  |.  5E  POP ESI
00457E5E  |>  8B4D F4  MOV ECX,DWORD PTR SS:[EBP-C]
00457E61  |.  64:890D 00000>MOV DWORD PTR FS:[0],ECX
00457E68  |.  C9  LEAVE

从上面的代码可知,用户名小于等于16位,注册码为16位。注册码分两段,第一段由查表方式得到。第二段从固定字符串“FLdQsBcmpJpaEsXt”中依次截取补足第一段注册码至16位。
破解到这里了,注册算法我们也就搞清楚了,用“zjjtr”和“FVVPTLdQsBcmpJpa”注册即可成功,如图1所示

图1
这个软件的破解不是很费力,虽然表很难找到,但是内存中却出现了明码,可以用keymake做出内存注册机,也可以爆破。所以软件保护在各国都不是很到位的,而不仅仅是国内。看来,对于国内外来说,软件安全还有很长的路要走

责任编辑:华中帝国        



本文引用网址: 

Aurora MPEG To DVD Burner注册算法分析的相关文章
发表评论

用户名: 查看更多评论

分 值:100分 85分 70分 55分 40分 25分 10分 0分

内 容:

         (注“”为必填内容。) 验证码: 验证码,看不清楚?请点击刷新验证码