【破文标题】1Click DVD to DivX AVI 1.21  简单分析
【破文作者】tianxj
【作者邮箱】tianxj_2007@126.com
【作者主页】WwW.ChiNaPYG.CoM
【破解工具】PEiD,OD
【破解平台】Windows XP
【软件名称】1Click DVD to DivX AVI 1.21  
【软件大小】974KB 
【软件类别】国外软件/光碟工具  
【软件授权】共享版 
【软件语言】英文 
【运行环境】Win9x/Me/NT/2000/XP/2003 
【更新时间】2003-12-6 
【原版下载】华军软件园
【保护方式】注册码
【软件简介】1Click DVD to Divx xVid Avi是一个将DVD转换成Divx,xVid和Avi文件的工具,可以对整个DVD或部分DVD(按时间,画面或章节分)进行转换,是个理想的备份DVD的方法。 
【破解声明】我是一只小菜鸟,偶得一点心得,愿与大家分享:)
--------------------------------------------------------------
【破解内容】
--------------------------------------------------------------
**************************************************************
一、运行程序,进行注册,输入错误的注册信息进行检测,有提示信息
"wrong serialnumber,program terminate!"
**************************************************************
二、用PEiD对dvdtoavi.exe查壳,为 ASPack 2.12 -> Alexey Solodovnikov
    用PEiD插件脱壳,为 Microsoft Visual C++ 6.0
**************************************************************
三、运行OD,打开dvdtoavi.exe.unpacked_.exe,右键超级字串参考查找ASCII.
==============================================================

代码:
00411504   .  56            PUSH    ESI
00411505   .  53            PUSH    EBX
00411506   .  56            PUSH    ESI
00411507   .  8BD9          MOV     EBX, ECX
00411509   .  6A 01         PUSH    1
0041150B   .  8BCB          MOV     ECX, EBX
0041150D   .  E8 5C8A0900   CALL    dvdtoavi.004A9F6E
00411512   .  8B43 60       MOV     EAX, DWORD PTR [EBX+60]          ;  //试练码
00411515   .  8B50 F8       MOV     EDX, DWORD PTR [EAX-8]           ;  //试练码长度
00411518   .  83FA 1D       CMP     EDX, 1D
0041151B   .  74 50         JE      SHORT dvdtoavi.0041156D          ;  //注册码长度为29位则跳
0041151D   .  33C0          XOR     EAX, EAX
0041151F   .  50            PUSH    EAX
00411520   .  50            PUSH    EAX
00411521   .  8BCB          MOV     ECX, EBX
00411523   .  68 183E9200   PUSH    dvdtoavi.00923E18                ;  wrong serialnumber,program terminate!
00411528   .  E8 E5820900   CALL    dvdtoavi.004A9812
0041152D   .  FF15 10724B00 CALL    DWORD PTR [<&KERNEL32.GetCurrent>; [GetCurrentProcess
00411533   .  6A 01         PUSH    1                                ; /ExitCode = 1
00411535   .  50            PUSH    EAX                              ; |hProcess
00411536   .  FF15 20724B00 CALL    DWORD PTR [<&KERNEL32.TerminateP>; \TerminateProcess
0041153C   .  8D73 5C       LEA     ESI, DWORD PTR [EBX+5C]
0041153F   >  8B06          MOV     EAX, DWORD PTR [ESI]
00411541   .  8B50 F8       MOV     EDX, DWORD PTR [EAX-8]
00411544   .  85D2          TEST    EDX, EDX
00411546   .  74 1A         JE      SHORT dvdtoavi.00411562
00411548   .  8B43 60       MOV     EAX, DWORD PTR [EBX+60]
0041154B   .  8B50 F8       MOV     EDX, DWORD PTR [EAX-8]
0041154E   .  85D2          TEST    EDX, EDX
00411550   .  74 10         JE      SHORT dvdtoavi.00411562
00411552   .  33C0          XOR     EAX, EAX
00411554   .  50            PUSH    EAX
00411555   .  50            PUSH    EAX
00411556   .  8BCB          MOV     ECX, EBX
00411558   .  68 403E9200   PUSH    dvdtoavi.00923E40                ;  thank for registration,please restart the program.
0041155D   .  E8 B0820900   CALL    dvdtoavi.004A9812
00411562   >  8BCB          MOV     ECX, EBX
00411564   .  E8 CE9B0900   CALL    dvdtoavi.004AB137
00411569   .  59            POP     ECX
0041156A   .  5B            POP     EBX
0041156B   .  5E            POP     ESI
0041156C   .  C3            RETN
0041156D   >  8A50 05       MOV     DL, BYTE PTR [EAX+5]
00411570   .  80FA 2B       CMP     DL, 2B
00411573   .  74 24         JE      SHORT dvdtoavi.00411599          ;  //注册码第6位为“+”则跳
00411575   >  33C0          XOR     EAX, EAX
00411577   .  50            PUSH    EAX
00411578   .  50            PUSH    EAX
00411579   .  8BCB          MOV     ECX, EBX
0041157B   .  68 183E9200   PUSH    dvdtoavi.00923E18                ;  wrong serialnumber,program terminate!
00411580   .  E8 8D820900   CALL    dvdtoavi.004A9812
00411585   .  FF15 10724B00 CALL    DWORD PTR [<&KERNEL32.GetCurrent>; [GetCurrentProcess
0041158B   .  6A 01         PUSH    1                                ; /ExitCode = 1
0041158D   .  50            PUSH    EAX                              ; |hProcess
0041158E   .  FF15 20724B00 CALL    DWORD PTR [<&KERNEL32.TerminateP>; \TerminateProcess
00411594   .  8D73 5C       LEA     ESI, DWORD PTR [EBX+5C]
00411597   .^ EB A6         JMP     SHORT dvdtoavi.0041153F
00411599   >  8A50 0B       MOV     DL, BYTE PTR [EAX+B]             ;  //注册码第12位不为“+”则跳
0041159C   .  80FA 2B       CMP     DL, 2B
0041159F   .^ 75 D4         JNZ     SHORT dvdtoavi.00411575
004115A1   .  8A50 11       MOV     DL, BYTE PTR [EAX+11]
004115A4   .  80FA 2B       CMP     DL, 2B
004115A7   .^ 75 CC         JNZ     SHORT dvdtoavi.00411575          ;  //注册码第18位不为“+”则跳
004115A9   .  8A50 17       MOV     DL, BYTE PTR [EAX+17]
004115AC   .  80FA 2B       CMP     DL, 2B
004115AF   .^ 75 C4         JNZ     SHORT dvdtoavi.00411575          ;  //注册码第24位不为“+”则跳
004115B1   .  0FBE10        MOVSX   EDX, BYTE PTR [EAX]
004115B4   .  83FA 41       CMP     EDX, 41
004115B7   .  7C 0A         JL      SHORT dvdtoavi.004115C3          ;  //注册码第1位ASCII码小于41则跳
004115B9   .  83FA 46       CMP     EDX, 46
004115BC   .  7F 05         JG      SHORT dvdtoavi.004115C3          ;  //注册码第1位ASCII码大于46则跳
004115BE   .  83C2 C9       ADD     EDX, -37                         ;  //EDX=EDX-37
004115C1   .  EB 03         JMP     SHORT dvdtoavi.004115C6
004115C3   >  83C2 D0       ADD     EDX, -30                         ;  //EDX=EDX-30
004115C6   >  0FBE70 01     MOVSX   ESI, BYTE PTR [EAX+1]
004115CA   .  83FE 41       CMP     ESI, 41
004115CD   .  7C 09         JL      SHORT dvdtoavi.004115D8          ;  //注册码第2位ASCII码小于41则跳
004115CF   .  83FE 46       CMP     ESI, 46
004115D2   .  7F 04         JG      SHORT dvdtoavi.004115D8          ;  //注册码第2位ASCII码大于46则跳
004115D4   .  B1 01         MOV     CL, 1
004115D6   .  EB 02         JMP     SHORT dvdtoavi.004115DA
004115D8   >  B1 00         MOV     CL, 0
004115DA   >  03D6          ADD     EDX, ESI                         ;  //EDX=EDX+ESI
004115DC   .  84C9          TEST    CL, CL
004115DE   .  74 05         JE      SHORT dvdtoavi.004115E5
004115E0   .  83C2 C9       ADD     EDX, -37                         ;  //EDX=EDX-37
004115E3   .  EB 03         JMP     SHORT dvdtoavi.004115E8
004115E5   >  83C2 D0       ADD     EDX, -30                         ;  //EDX=EDX-30
004115E8   >  0FBE70 02     MOVSX   ESI, BYTE PTR [EAX+2]
004115EC   .  83FE 41       CMP     ESI, 41
004115EF   .  7C 09         JL      SHORT dvdtoavi.004115FA          ;  //注册码第3位ASCII码小于41则跳
004115F1   .  83FE 46       CMP     ESI, 46
004115F4   .  7F 04         JG      SHORT dvdtoavi.004115FA          ;  //注册码第3位ASCII码大于46则跳
004115F6   .  B1 01         MOV     CL, 1
004115F8   .  EB 02         JMP     SHORT dvdtoavi.004115FC
004115FA   >  B1 00         MOV     CL, 0
004115FC   >  03D6          ADD     EDX, ESI                         ;  //EDX=EDX+ESI
004115FE   .  84C9          TEST    CL, CL
00411600   .  74 05         JE      SHORT dvdtoavi.00411607
00411602   .  83C2 C9       ADD     EDX, -37                         ;  //EDX=EDX-37
00411605   .  EB 03         JMP     SHORT dvdtoavi.0041160A
00411607   >  83C2 D0       ADD     EDX, -30                         ;  //EDX=EDX-30
0041160A   >  0FBE70 03     MOVSX   ESI, BYTE PTR [EAX+3]
0041160E   .  83FE 41       CMP     ESI, 41
00411611   .  7C 09         JL      SHORT dvdtoavi.0041161C          ;  //注册码第4位ASCII码小于41则跳
00411613   .  83FE 46       CMP     ESI, 46
00411616   .  7F 04         JG      SHORT dvdtoavi.0041161C          ;  //注册码第4位ASCII码大于46则跳
00411618   .  B1 01         MOV     CL, 1
0041161A   .  EB 02         JMP     SHORT dvdtoavi.0041161E
0041161C   >  B1 00         MOV     CL, 0
0041161E   >  03D6          ADD     EDX, ESI                         ;  //EDX=EDX+ESI
00411620   .  84C9          TEST    CL, CL
00411622   .  74 05         JE      SHORT dvdtoavi.00411629
00411624   .  83C2 C9       ADD     EDX, -37                         ;  //EDX=EDX-37
00411627   .  EB 03         JMP     SHORT dvdtoavi.0041162C
00411629   >  83C2 D0       ADD     EDX, -30                         ;  //EDX=EDX-30
0041162C   >  0FBE70 04     MOVSX   ESI, BYTE PTR [EAX+4]
00411630   .  83FE 41       CMP     ESI, 41
00411633   .  7C 09         JL      SHORT dvdtoavi.0041163E          ;  //注册码第5位ASCII码小于41则跳
00411635   .  83FE 46       CMP     ESI, 46
00411638   .  7F 04         JG      SHORT dvdtoavi.0041163E          ;  //注册码第5位ASCII码大于46则跳
0041163A   .  B1 01         MOV     CL, 1
0041163C   .  EB 02         JMP     SHORT dvdtoavi.00411640
0041163E   >  B1 00         MOV     CL, 0
00411640   >  03D6          ADD     EDX, ESI                         ;  //EDX=EDX+ESI
00411642   .  84C9          TEST    CL, CL
00411644   .  74 05         JE      SHORT dvdtoavi.0041164B
00411646   .  83C2 C9       ADD     EDX, -37                         ;  //EDX=EDX-37
00411649   .  EB 03         JMP     SHORT dvdtoavi.0041164E
0041164B   >  83C2 D0       ADD     EDX, -30
0041164E   >  83FA 28       CMP     EDX, 28
00411651   .  0F85 6A020000 JNZ     dvdtoavi.004118C1                ;  //EDX与28h比较,不等则跳
00411657   .  0FBE50 06     MOVSX   EDX, BYTE PTR [EAX+6]
0041165B   .  83FA 41       CMP     EDX, 41
0041165E   .  7C 0A         JL      SHORT dvdtoavi.0041166A          ;  //注册码第7位ASCII码小于41则跳
00411660   .  83FA 46       CMP     EDX, 46
00411663   .  7F 05         JG      SHORT dvdtoavi.0041166A
00411665   .  83C2 C9       ADD     EDX, -37                         ;  //EDX=EDX-37
00411668   .  EB 03         JMP     SHORT dvdtoavi.0041166D
0041166A   >  83C2 D0       ADD     EDX, -30                         ;  //EDX=EDX-30
0041166D   >  0FBE70 07     MOVSX   ESI, BYTE PTR [EAX+7]
00411671   .  83FE 41       CMP     ESI, 41
00411674   .  7C 09         JL      SHORT dvdtoavi.0041167F          ;  //注册码第8位ASCII码小于41则跳
00411676   .  83FE 46       CMP     ESI, 46
00411679   .  7F 04         JG      SHORT dvdtoavi.0041167F          ;  //注册码第8位ASCII码大于46则跳
0041167B   .  B1 01         MOV     CL, 1
0041167D   .  EB 02         JMP     SHORT dvdtoavi.00411681
0041167F   >  B1 00         MOV     CL, 0
00411681   >  03D6          ADD     EDX, ESI                         ;  //EDX=EDX+ESI
00411683   .  84C9          TEST    CL, CL
00411685   .  74 05         JE      SHORT dvdtoavi.0041168C
00411687   .  83C2 C9       ADD     EDX, -37                         ;  //EDX=EDX-37
0041168A   .  EB 03         JMP     SHORT dvdtoavi.0041168F
0041168C   >  83C2 D0       ADD     EDX, -30                         ;  //EDX=EDX-30
0041168F   >  0FBE70 08     MOVSX   ESI, BYTE PTR [EAX+8]
00411693   .  83FE 41       CMP     ESI, 41
00411696   .  7C 09         JL      SHORT dvdtoavi.004116A1          ;  //注册码第9位ASCII码小于41则跳
00411698   .  83FE 46       CMP     ESI, 46
0041169B   .  7F 04         JG      SHORT dvdtoavi.004116A1          ;  //注册码第9位ASCII码大于46则跳
0041169D   .  B1 01         MOV     CL, 1
0041169F   .  EB 02         JMP     SHORT dvdtoavi.004116A3
004116A1   >  B1 00         MOV     CL, 0
004116A3   >  03D6          ADD     EDX, ESI                         ;  //EDX=EDX+ESI
004116A5   .  84C9          TEST    CL, CL
004116A7   .  74 05         JE      SHORT dvdtoavi.004116AE
004116A9   .  83C2 C9       ADD     EDX, -37                         ;  //EDX=EDX-37
004116AC   .  EB 03         JMP     SHORT dvdtoavi.004116B1
004116AE   >  83C2 D0       ADD     EDX, -30                         ;  //EDX=EDX-30
004116B1   >  0FBE70 09     MOVSX   ESI, BYTE PTR [EAX+9]
004116B5   .  83FE 41       CMP     ESI, 41
004116B8   .  7C 09         JL      SHORT dvdtoavi.004116C3          ;  //注册码第10位ASCII码小于41则跳
004116BA   .  83FE 46       CMP     ESI, 46
004116BD   .  7F 04         JG      SHORT dvdtoavi.004116C3          ;  //注册码第10位ASCII码大于46则跳
004116BF   .  B1 01         MOV     CL, 1
004116C1   .  EB 02         JMP     SHORT dvdtoavi.004116C5
004116C3   >  B1 00         MOV     CL, 0
004116C5   >  03D6          ADD     EDX, ESI                         ;  //EDX=EDX+ESI
004116C7   .  84C9          TEST    CL, CL
004116C9   .  74 05         JE      SHORT dvdtoavi.004116D0
004116CB   .  83C2 C9       ADD     EDX, -37                         ;  //EDX=EDX-37
004116CE   .  EB 03         JMP     SHORT dvdtoavi.004116D3
004116D0   >  83C2 D0       ADD     EDX, -30                         ;  //EDX=EDX-30
004116D3   >  0FBE70 0A     MOVSX   ESI, BYTE PTR [EAX+A]
004116D7   .  83FE 41       CMP     ESI, 41
004116DA   .  7C 09         JL      SHORT dvdtoavi.004116E5          ;  //注册码第11位ASCII码小于41则跳
004116DC   .  83FE 46       CMP     ESI, 46
004116DF   .  7F 04         JG      SHORT dvdtoavi.004116E5          ;  //注册码第11位ASCII码大于46则跳
004116E1   .  B1 01         MOV     CL, 1
004116E3   .  EB 02         JMP     SHORT dvdtoavi.004116E7
004116E5   >  B1 00         MOV     CL, 0
004116E7   >  03D6          ADD     EDX, ESI                         ;  //EDX=EDX+ESI
004116E9   .  84C9          TEST    CL, CL
004116EB   .  74 05         JE      SHORT dvdtoavi.004116F2
004116ED   .  83C2 C9       ADD     EDX, -37                         ;  //EDX=EDX-37
004116F0   .  EB 03         JMP     SHORT dvdtoavi.004116F5
004116F2   >  83C2 D0       ADD     EDX, -30                         ;  //EDX=EDX-30
004116F5   >  83FA 29       CMP     EDX, 29
004116F8   .  0F85 9C010000 JNZ     dvdtoavi.0041189A                ;  //EDX与29h比较,不等则跳
004116FE   .  0FBE50 0C     MOVSX   EDX, BYTE PTR [EAX+C]
00411702   .  83FA 41       CMP     EDX, 41
00411705   .  7C 0A         JL      SHORT dvdtoavi.00411711          ;  //注册码第13位ASCII码小于41则跳
00411707   .  83FA 46       CMP     EDX, 46
0041170A   .  7F 05         JG      SHORT dvdtoavi.00411711          ;  //注册码第13位ASCII码大于46则跳
0041170C   .  83C2 C9       ADD     EDX, -37                         ;  //EDX=EDX-37
0041170F   .  EB 03         JMP     SHORT dvdtoavi.00411714
00411711   >  83C2 D0       ADD     EDX, -30                         ;  //EDX=EDX-30
00411714   >  0FBE70 0D     MOVSX   ESI, BYTE PTR [EAX+D]
00411718   .  83FE 41       CMP     ESI, 41
0041171B   .  7C 09         JL      SHORT dvdtoavi.00411726          ;  //注册码第14位ASCII码小于41则跳
0041171D   .  83FE 46       CMP     ESI, 46
00411720   .  7F 04         JG      SHORT dvdtoavi.00411726          ;  //注册码第14位ASCII码大于46则跳
00411722   .  B1 01         MOV     CL, 1
00411724   .  EB 02         JMP     SHORT dvdtoavi.00411728
00411726   >  B1 00         MOV     CL, 0
00411728   >  03D6          ADD     EDX, ESI                         ;  //EDX=EDX+ESI
0041172A   .  84C9          TEST    CL, CL
0041172C   .  74 05         JE      SHORT dvdtoavi.00411733
0041172E   .  83C2 C9       ADD     EDX, -37                         ;  //EDX=EDX-37
00411731   .  EB 03         JMP     SHORT dvdtoavi.00411736
00411733   >  83C2 D0       ADD     EDX, -30                         ;  //EDX=EDX-30
00411736   >  0FBE70 0E     MOVSX   ESI, BYTE PTR [EAX+E]
0041173A   .  83FE 41       CMP     ESI, 41
0041173D   .  7C 09         JL      SHORT dvdtoavi.00411748          ;  //注册码第15位ASCII码小于41则跳
0041173F   .  83FE 46       CMP     ESI, 46
00411742   .  7F 04         JG      SHORT dvdtoavi.00411748          ;  //注册码第15位ASCII码大于46则跳
00411744   .  B1 01         MOV     CL, 1
00411746   .  EB 02         JMP     SHORT dvdtoavi.0041174A
00411748   >  B1 00         MOV     CL, 0
0041174A   >  03D6          ADD     EDX, ESI                         ;  //EDX=EDX+ESI
0041174C   .  84C9          TEST    CL, CL
0041174E   .  74 05         JE      SHORT dvdtoavi.00411755
00411750   .  83C2 C9       ADD     EDX, -37                         ;  //EDX=EDX-37
00411753   .  EB 03         JMP     SHORT dvdtoavi.00411758
00411755   >  83C2 D0       ADD     EDX, -30                         ;  //EDX=EDX-30
00411758   >  0FBE70 0F     MOVSX   ESI, BYTE PTR [EAX+F]
0041175C   .  83FE 41       CMP     ESI, 41
0041175F   .  7C 09         JL      SHORT dvdtoavi.0041176A          ;  //注册码第16位ASCII码小于41则跳
00411761   .  83FE 46       CMP     ESI, 46
00411764   .  7F 04         JG      SHORT dvdtoavi.0041176A          ;  //注册码第16位ASCII码大于46则跳
00411766   .  B1 01         MOV     CL, 1
00411768   .  EB 02         JMP     SHORT dvdtoavi.0041176C
0041176A   >  B1 00         MOV     CL, 0
0041176C   >  03D6          ADD     EDX, ESI                         ;  //EDX=EDX+ESI
0041176E   .  84C9          TEST    CL, CL
00411770   .  74 05         JE      SHORT dvdtoavi.00411777
00411772   .  83C2 C9       ADD     EDX, -37                         ;  //EDX=EDX-37
00411775   .  EB 03         JMP     SHORT dvdtoavi.0041177A
00411777   >  83C2 D0       ADD     EDX, -30                         ;  //EDX=EDX-30
0041177A   >  0FBE70 10     MOVSX   ESI, BYTE PTR [EAX+10]
0041177E   .  83FE 41       CMP     ESI, 41
00411781   .  7C 09         JL      SHORT dvdtoavi.0041178C          ;  //注册码第17位ASCII码小于41则跳
00411783   .  83FE 46       CMP     ESI, 46
00411786   .  7F 04         JG      SHORT dvdtoavi.0041178C          ;  //注册码第17位ASCII码大于46则跳
00411788   .  B1 01         MOV     CL, 1
0041178A   .  EB 02         JMP     SHORT dvdtoavi.0041178E
0041178C   >  B1 00         MOV     CL, 0
0041178E   >  03D6          ADD     EDX, ESI                         ;  //EDX=EDX+ESI
00411790   .  84C9          TEST    CL, CL
00411792   .  74 05         JE      SHORT dvdtoavi.00411799
00411794   .  83C2 C9       ADD     EDX, -37                         ;  //EDX=EDX-37
00411797   .  EB 03         JMP     SHORT dvdtoavi.0041179C
00411799   >  83C2 D0       ADD     EDX, -30                         ;  //EDX=EDX-30
0041179C   >  83FA 2A       CMP     EDX, 2A
0041179F   .  0F85 CE000000 JNZ     dvdtoavi.00411873                ;  //EDX与2Ah比较,相等则跳
004117A5   .  0FBE50 12     MOVSX   EDX, BYTE PTR [EAX+12]
004117A9   .  83FA 41       CMP     EDX, 41
004117AC   .  7C 0A         JL      SHORT dvdtoavi.004117B8          ;  //注册码第19位ASCII码小于41则跳
004117AE   .  83FA 46       CMP     EDX, 46
004117B1   .  7F 05         JG      SHORT dvdtoavi.004117B8          ;  //注册码第19位ASCII码大于46则跳
004117B3   .  83C2 C9       ADD     EDX, -37                         ;  //EDX=EDX-37
004117B6   .  EB 03         JMP     SHORT dvdtoavi.004117BB
004117B8   >  83C2 D0       ADD     EDX, -30                         ;  //EDX=EDX-30
004117BB   >  0FBE70 13     MOVSX   ESI, BYTE PTR [EAX+13]
004117BF   .  83FE 41       CMP     ESI, 41
004117C2   .  7C 09         JL      SHORT dvdtoavi.004117CD          ;  //注册码第20位ASCII码小于41则跳
004117C4   .  83FE 46       CMP     ESI, 46
004117C7   .  7F 04         JG      SHORT dvdtoavi.004117CD          ;  //注册码第20位ASCII码大于46则跳
004117C9   .  B1 01         MOV     CL, 1
004117CB   .  EB 02         JMP     SHORT dvdtoavi.004117CF
004117CD   >  B1 00         MOV     CL, 0
004117CF   >  03D6          ADD     EDX, ESI                         ;  //EDX=EDX+ESI
004117D1   .  84C9          TEST    CL, CL
004117D3   .  74 05         JE      SHORT dvdtoavi.004117DA
004117D5   .  83C2 C9       ADD     EDX, -37                         ;  //EDX=EDX-37
004117D8   .  EB 03         JMP     SHORT dvdtoavi.004117DD
004117DA   >  83C2 D0       ADD     EDX, -30                         ;  //EDX=EDX-30
004117DD   >  0FBE70 14     MOVSX   ESI, BYTE PTR [EAX+14]
004117E1   .  83FE 41       CMP     ESI, 41
004117E4   .  7C 09         JL      SHORT dvdtoavi.004117EF          ;  //注册码第21位ASCII码小于41则跳
004117E6   .  83FE 46       CMP     ESI, 46
004117E9   .  7F 04         JG      SHORT dvdtoavi.004117EF          ;  //注册码第21位ASCII码大于46则跳
004117EB   .  B1 01         MOV     CL, 1
004117ED   .  EB 02         JMP     SHORT dvdtoavi.004117F1
004117EF   >  B1 00         MOV     CL, 0
004117F1   >  03D6          ADD     EDX, ESI                         ;  //EDX=EDX+ESI
004117F3   .  84C9          TEST    CL, CL
004117F5   .  74 05         JE      SHORT dvdtoavi.004117FC
004117F7   .  83C2 C9       ADD     EDX, -37                         ;  //EDX=EDX-37
004117FA   .  EB 03         JMP     SHORT dvdtoavi.004117FF
004117FC   >  83C2 D0       ADD     EDX, -30                         ;  //EDX=EDX-30
004117FF   >  0FBE70 15     MOVSX   ESI, BYTE PTR [EAX+15]
00411803   .  83FE 41       CMP     ESI, 41
00411806   .  7C 09         JL      SHORT dvdtoavi.00411811          ;  //注册码第22位ASCII码小于41则跳
00411808   .  83FE 46       CMP     ESI, 46
0041180B   .  7F 04         JG      SHORT dvdtoavi.00411811          ;  //注册码第22位ASCII码大于46则跳
0041180D   .  B1 01         MOV     CL, 1
0041180F   .  EB 02         JMP     SHORT dvdtoavi.00411813
00411811   >  B1 00         MOV     CL, 0
00411813   >  03D6          ADD     EDX, ESI                         ;  //EDX=EDX+ESI
00411815   .  84C9          TEST    CL, CL
00411817   .  74 05         JE      SHORT dvdtoavi.0041181E
00411819   .  83C2 C9       ADD     EDX, -37                         ;  //EDX=EDX-37
0041181C   .  EB 03         JMP     SHORT dvdtoavi.00411821
0041181E   >  83C2 D0       ADD     EDX, -30                         ;  //EDX=EDX-30
00411821   >  0FBE40 16     MOVSX   EAX, BYTE PTR [EAX+16]
00411825   .  83F8 41       CMP     EAX, 41
00411828   .  7C 09         JL      SHORT dvdtoavi.00411833          ;  //注册码第23位ASCII码小于41则跳
0041182A   .  83F8 46       CMP     EAX, 46
0041182D   .  7F 04         JG      SHORT dvdtoavi.00411833          ;  //注册码第23位ASCII码大于46则跳
0041182F   .  B1 01         MOV     CL, 1
00411831   .  EB 02         JMP     SHORT dvdtoavi.00411835
00411833   >  B1 00         MOV     CL, 0
00411835   >  03D0          ADD     EDX, EAX                         ;  //EDX=EDX+EAX
00411837   .  84C9          TEST    CL, CL
00411839   .  74 05         JE      SHORT dvdtoavi.00411840
0041183B   .  83C2 C9       ADD     EDX, -37                         ;  //EDX=EDX-37
0041183E   .  EB 03         JMP     SHORT dvdtoavi.00411843
00411840   >  83C2 D0       ADD     EDX, -30                         ;  //EDX=EDX-30
00411843   >  83FA 2B       CMP     EDX, 2B
00411846   .  0F84 9C000000 JE      dvdtoavi.004118E8                ;  //EDX与2Bh比较,相等则跳
0041184C   .  33C0          XOR     EAX, EAX
0041184E   .  50            PUSH    EAX
0041184F   .  50            PUSH    EAX
00411850   .  8BCB          MOV     ECX, EBX
00411852   .  68 183E9200   PUSH    dvdtoavi.00923E18                ;  wrong serialnumber,program terminate!
00411857   .  E8 B67F0900   CALL    dvdtoavi.004A9812
0041185C   .  FF15 10724B00 CALL    DWORD PTR [<&KERNEL32.GetCurrent>; [GetCurrentProcess
00411862   .  6A 01         PUSH    1                                ; /ExitCode = 1
00411864   .  50            PUSH    EAX                              ; |hProcess
00411865   .  FF15 20724B00 CALL    DWORD PTR [<&KERNEL32.TerminateP>; \TerminateProcess
0041186B   .  8D73 5C       LEA     ESI, DWORD PTR [EBX+5C]
0041186E   .^ E9 CCFCFFFF   JMP     dvdtoavi.0041153F
00411873   >  33C0          XOR     EAX, EAX
00411875   .  50            PUSH    EAX
00411876   .  50            PUSH    EAX
00411877   .  8BCB          MOV     ECX, EBX
00411879   .  68 183E9200   PUSH    dvdtoavi.00923E18                ;  wrong serialnumber,program terminate!
0041187E   .  E8 8F7F0900   CALL    dvdtoavi.004A9812
00411883   .  FF15 10724B00 CALL    DWORD PTR [<&KERNEL32.GetCurrent>; [GetCurrentProcess
00411889   .  6A 01         PUSH    1                                ; /ExitCode = 1
0041188B   .  50            PUSH    EAX                              ; |hProcess
0041188C   .  FF15 20724B00 CALL    DWORD PTR [<&KERNEL32.TerminateP>; \TerminateProcess
00411892   .  8D73 5C       LEA     ESI, DWORD PTR [EBX+5C]
00411895   .^ E9 A5FCFFFF   JMP     dvdtoavi.0041153F
0041189A   >  33C0          XOR     EAX, EAX
0041189C   .  50            PUSH    EAX
0041189D   .  50            PUSH    EAX
0041189E   .  8BCB          MOV     ECX, EBX
004118A0   .  68 183E9200   PUSH    dvdtoavi.00923E18                ;  wrong serialnumber,program terminate!
004118A5   .  E8 687F0900   CALL    dvdtoavi.004A9812
004118AA   .  FF15 10724B00 CALL    DWORD PTR [<&KERNEL32.GetCurrent>; [GetCurrentProcess
004118B0   .  6A 01         PUSH    1                                ; /ExitCode = 1
004118B2   .  50            PUSH    EAX                              ; |hProcess
004118B3   .  FF15 20724B00 CALL    DWORD PTR [<&KERNEL32.TerminateP>; \TerminateProcess
004118B9   .  8D73 5C       LEA     ESI, DWORD PTR [EBX+5C]
004118BC   .^ E9 7EFCFFFF   JMP     dvdtoavi.0041153F
004118C1   >  33C0          XOR     EAX, EAX
004118C3   .  50            PUSH    EAX
004118C4   .  50            PUSH    EAX
004118C5   .  8BCB          MOV     ECX, EBX
004118C7   .  68 183E9200   PUSH    dvdtoavi.00923E18                ;  wrong serialnumber,program terminate!
004118CC   .  E8 417F0900   CALL    dvdtoavi.004A9812
004118D1   .  FF15 10724B00 CALL    DWORD PTR [<&KERNEL32.GetCurrent>; [GetCurrentProcess
004118D7   .  6A 01         PUSH    1                                ; /ExitCode = 1
004118D9   .  50            PUSH    EAX                              ; |hProcess
004118DA   .  FF15 20724B00 CALL    DWORD PTR [<&KERNEL32.TerminateP>; \TerminateProcess
004118E0   .  8D73 5C       LEA     ESI, DWORD PTR [EBX+5C]
004118E3   .^ E9 57FCFFFF   JMP     dvdtoavi.0041153F
004118E8   >  8D0424        LEA     EAX, DWORD PTR [ESP]
004118EB   .  50            PUSH    EAX                              ; /pHandle
004118EC   .  68 643C9200   PUSH    dvdtoavi.00923C64                ; |Software\dvdtoavi\Output_Setting
004118F1   .  68 01000080   PUSH    80000001                         ; |hKey = HKEY_CURRENT_USER
004118F6   .  FF15 0C704B00 CALL    DWORD PTR [<&ADVAPI32.RegCreateK>; \RegCreateKeyA
004118FC   .  85C0          TEST    EAX, EAX
004118FE   .  74 08         JE      SHORT dvdtoavi.00411908
00411900   .  8D73 5C       LEA     ESI, DWORD PTR [EBX+5C]
00411903   .^ E9 37FCFFFF   JMP     dvdtoavi.0041153F
00411908   >  8B43 5C       MOV     EAX, DWORD PTR [EBX+5C]
0041190B   .  FF70 F8       PUSH    DWORD PTR [EAX-8]                ; /Length
0041190E   .  50            PUSH    EAX                              ; |Value
0041190F   .  8D73 5C       LEA     ESI, DWORD PTR [EBX+5C]          ; |
00411912   .  6A 01         PUSH    1                                ; |ValueType = REG_SZ
00411914   .  68 003E9200   PUSH    dvdtoavi.00923E00                ; |FileName
00411919   .  FF7424 10     PUSH    DWORD PTR [ESP+10]               ; |hKey
0041191D   .  FF15 08704B00 CALL    DWORD PTR [<&ADVAPI32.RegSetValu>; \RegSetValueA
00411923   .  8B43 60       MOV     EAX, DWORD PTR [EBX+60]
00411926   .  FF70 F8       PUSH    DWORD PTR [EAX-8]                ; /Length
00411929   .  50            PUSH    EAX                              ; |Value
0041192A   .  6A 01         PUSH    1                                ; |ValueType = REG_SZ
0041192C   .  68 0C3E9200   PUSH    dvdtoavi.00923E0C                ; |PathName
00411931   .  FF7424 10     PUSH    DWORD PTR [ESP+10]               ; |hKey
00411935   .  FF15 08704B00 CALL    DWORD PTR [<&ADVAPI32.RegSetValu>; \RegSetValueA
0041193B   .  FF3424        PUSH    DWORD PTR [ESP]                  ; /hKey
0041193E   .  FF15 10704B00 CALL    DWORD PTR [<&ADVAPI32.RegCloseKe>; \RegCloseKey
00411944   .^ E9 F6FBFFFF   JMP     dvdtoavi.0041153F
00411949      90            NOP
0041194A      90            NOP
0041194B      90            NOP
0041194C   .  B8 D03C9200   MOV     EAX, dvdtoavi.00923CD0
00411951   .  C3            RETN
==============================================================
根据"thank for registration,please restart the program."可知软件为重启验证类型
根据字符串里的信息很容易找到注册表哦
[HKEY_CURRENT_USER\Software\dvdtoavi\Output_Setting\PathName]
==============================================================
代码:
0040980C  /$  57            PUSH    EDI
0040980D  |.  B8 0C110000   MOV     EAX, 110C
00409812  |.  E8 B9BB0800   CALL    dvdtoavi.004953D0
00409817  |.  8D5424 0C     LEA     EDX, DWORD PTR [ESP+C]
0040981B  |.  8D4424 08     LEA     EAX, DWORD PTR [ESP+8]
0040981F  |.  C74424 08 000>MOV     DWORD PTR [ESP+8], 200
00409827  |.  50            PUSH    EAX                              ; /pValueSize
00409828  |.  52            PUSH    EDX                              ; |Value
00409829  |.  68 40049200   PUSH    dvdtoavi.00920440                ; |software\dvdtoavi\output_setting\filename
0040982E  |.  68 01000080   PUSH    80000001                         ; |hKey = HKEY_CURRENT_USER
00409833  |.  FF15 00704B00 CALL    DWORD PTR [<&ADVAPI32.RegQueryVa>; \RegQueryValueA
00409839  |.  85C0          TEST    EAX, EAX
0040983B  |.  0F85 32020000 JNZ     dvdtoavi.00409A73
00409841  |.  8D7C24 0C     LEA     EDI, DWORD PTR [ESP+C]
00409845  |.  33C0          XOR     EAX, EAX
00409847  |.  8A37          MOV     DH, BYTE PTR [EDI]
00409849  |.  8BCF          MOV     ECX, EDI
0040984B  |.  84F6          TEST    DH, DH
0040984D  |.  74 0C         JE      SHORT dvdtoavi.0040985B
0040984F  |>  83C1 01       /ADD     ECX, 1
00409852  |.  83C0 01       |ADD     EAX, 1
00409855  |.  8A11          |MOV     DL, BYTE PTR [ECX]
00409857  |.  84D2          |TEST    DL, DL
00409859  |.^ 75 F4         \JNZ     SHORT dvdtoavi.0040984F
0040985B  |>  85C0          TEST    EAX, EAX
0040985D  |.  0F86 10020000 JBE     dvdtoavi.00409A73                ;  //用户名为空则跳
00409863  |.  C74424 08 000>MOV     DWORD PTR [ESP+8], 200
0040986B  |.  8D5424 0C     LEA     EDX, DWORD PTR [ESP+C]
0040986F  |.  8D4424 08     LEA     EAX, DWORD PTR [ESP+8]
00409873  |.  50            PUSH    EAX                              ; /pValueSize
00409874  |.  52            PUSH    EDX                              ; |Value
00409875  |.  68 64239200   PUSH    dvdtoavi.00922364                ; |software\dvdtoavi\output_setting\pathname
0040987A  |.  68 01000080   PUSH    80000001                         ; |hKey = HKEY_CURRENT_USER
0040987F  |.  FF15 00704B00 CALL    DWORD PTR [<&ADVAPI32.RegQueryVa>; \RegQueryValueA
00409885  |.  85C0          TEST    EAX, EAX
00409887  |.  0F85 E6010000 JNZ     dvdtoavi.00409A73
0040988D  |.  8D7C24 0C     LEA     EDI, DWORD PTR [ESP+C]
00409891  |.  33C0          XOR     EAX, EAX
00409893  |.  8A37          MOV     DH, BYTE PTR [EDI]
00409895  |.  8BCF          MOV     ECX, EDI
00409897  |.  84F6          TEST    DH, DH
00409899  |.  74 0C         JE      SHORT dvdtoavi.004098A7
0040989B  |>  83C1 01       /ADD     ECX, 1
0040989E  |.  83C0 01       |ADD     EAX, 1
004098A1  |.  8A11          |MOV     DL, BYTE PTR [ECX]
004098A3  |.  84D2          |TEST    DL, DL
004098A5  |.^ 75 F4         \JNZ     SHORT dvdtoavi.0040989B
004098A7  |>  83F8 1D       CMP     EAX, 1D
004098AA  |.  0F85 C3010000 JNZ     dvdtoavi.00409A73                ;  //注册码长度不为29位则跳
004098B0  |.  8A4424 11     MOV     AL, BYTE PTR [ESP+11]
004098B4  |.  3C 2B         CMP     AL, 2B
004098B6  |.  74 0A         JE      SHORT dvdtoavi.004098C2          ;  //注册码第6位为“+”则跳
004098B8  |>  33C0          XOR     EAX, EAX
004098BA  |.  81C4 0C110000 ADD     ESP, 110C
004098C0  |.  5F            POP     EDI
004098C1  |.  C3            RETN
004098C2  |>  8A4424 17     MOV     AL, BYTE PTR [ESP+17]
004098C6  |.  3C 2B         CMP     AL, 2B
004098C8  |.^ 75 EE         JNZ     SHORT dvdtoavi.004098B8          ;  //注册码第12位不为“+”则跳
004098CA  |.  8A4424 1D     MOV     AL, BYTE PTR [ESP+1D]
004098CE  |.  3C 2B         CMP     AL, 2B
004098D0  |.^ 75 E6         JNZ     SHORT dvdtoavi.004098B8          ;  //注册码第18位不为“+”则跳
004098D2  |.  8A4424 23     MOV     AL, BYTE PTR [ESP+23]
004098D6  |.  3C 2B         CMP     AL, 2B
004098D8  |.^ 75 DE         JNZ     SHORT dvdtoavi.004098B8          ;  //注册码第24位不为“+”则跳
004098DA  |.  891C24        MOV     DWORD PTR [ESP], EBX
004098DD  |.  897424 04     MOV     DWORD PTR [ESP+4], ESI
004098E1  |.  33FF          XOR     EDI, EDI
004098E3  |.  33C0          XOR     EAX, EAX
004098E5  |.  8BD8          MOV     EBX, EAX
004098E7  |>  0FBE441C 0C   /MOVSX   EAX, BYTE PTR [ESP+EBX+C]
004098EC  |.  8D7424 0C     |LEA     ESI, DWORD PTR [ESP+C]
004098F0  |.  50            |PUSH    EAX
004098F1  |.  03F3          |ADD     ESI, EBX
004098F3  |.  E8 1C7B0000   |CALL    dvdtoavi.00411414
004098F8  |.  59            |POP     ECX
004098F9  |.  0FBE16        |MOVSX   EDX, BYTE PTR [ESI]
004098FC  |.  0FB6C0        |MOVZX   EAX, AL
004098FF  |.  85C0          |TEST    EAX, EAX
00409901  |.  74 06         |JE      SHORT dvdtoavi.00409909
00409903  |.  8D7C17 C9     |LEA     EDI, DWORD PTR [EDI+EDX-37]
00409907  |.  EB 04         |JMP     SHORT dvdtoavi.0040990D
00409909  |>  8D7C17 D0     |LEA     EDI, DWORD PTR [EDI+EDX-30]
0040990D  |>  83C3 01       |ADD     EBX, 1
00409910  |.  83FB 05       |CMP     EBX, 5
00409913  |.^ 7C D2         \JL      SHORT dvdtoavi.004098E7         ;  //循环,累加注册码
00409915  |.  8B1C24        MOV     EBX, DWORD PTR [ESP]
00409918  |.  8B7424 04     MOV     ESI, DWORD PTR [ESP+4]
0040991C  |.  83FF 28       CMP     EDI, 28
0040991F  |.  74 0A         JE      SHORT dvdtoavi.0040992B          ;  //注册码1-5位之和与28h比较,相等则跳
00409921  |.  33C0          XOR     EAX, EAX
00409923  |.  81C4 0C110000 ADD     ESP, 110C
00409929  |.  5F            POP     EDI
0040992A  |.  C3            RETN
0040992B  |>  891C24        MOV     DWORD PTR [ESP], EBX
0040992E  |.  897424 04     MOV     DWORD PTR [ESP+4], ESI
00409932  |.  33C0          XOR     EAX, EAX
00409934  |.  BF 06000000   MOV     EDI, 6
00409939  |.  8BD8          MOV     EBX, EAX
0040993B  |>  0FBE443C 0C   /MOVSX   EAX, BYTE PTR [ESP+EDI+C]
00409940  |.  8D7424 0C     |LEA     ESI, DWORD PTR [ESP+C]
00409944  |.  50            |PUSH    EAX
00409945  |.  03F7          |ADD     ESI, EDI
00409947  |.  E8 C87A0000   |CALL    dvdtoavi.00411414
0040994C  |.  59            |POP     ECX
0040994D  |.  0FBE16        |MOVSX   EDX, BYTE PTR [ESI]
00409950  |.  0FB6C0        |MOVZX   EAX, AL
00409953  |.  85C0          |TEST    EAX, EAX
00409955  |.  74 06         |JE      SHORT dvdtoavi.0040995D
00409957  |.  8D5C13 C9     |LEA     EBX, DWORD PTR [EBX+EDX-37]
0040995B  |.  EB 04         |JMP     SHORT dvdtoavi.00409961
0040995D  |>  8D5C13 D0     |LEA     EBX, DWORD PTR [EBX+EDX-30]
00409961  |>  83C7 01       |ADD     EDI, 1
00409964  |.  83FF 0B       |CMP     EDI, 0B
00409967  |.^ 7C D2         \JL      SHORT dvdtoavi.0040993B         ;  //循环,累加注册码
00409969  |.  8B7424 04     MOV     ESI, DWORD PTR [ESP+4]
0040996D  |.  8BC3          MOV     EAX, EBX
0040996F  |.  8B1C24        MOV     EBX, DWORD PTR [ESP]
00409972  |.  83F8 29       CMP     EAX, 29
00409975  |.  74 0A         JE      SHORT dvdtoavi.00409981          ;  //注册码7-11位之和与29h比较,相等则跳
00409977  |.  33C0          XOR     EAX, EAX
00409979  |.  81C4 0C110000 ADD     ESP, 110C
0040997F  |.  5F            POP     EDI
00409980  |.  C3            RETN
00409981  |>  891C24        MOV     DWORD PTR [ESP], EBX
00409984  |.  897424 04     MOV     DWORD PTR [ESP+4], ESI
00409988  |.  33FF          XOR     EDI, EDI
0040998A  |.  B8 0C000000   MOV     EAX, 0C
0040998F  |.  8BD8          MOV     EBX, EAX
00409991  |>  0FBE541C 0C   /MOVSX   EDX, BYTE PTR [ESP+EBX+C]
00409996  |.  8D7424 0C     |LEA     ESI, DWORD PTR [ESP+C]
0040999A  |.  52            |PUSH    EDX
0040999B  |.  03F3          |ADD     ESI, EBX
0040999D  |.  E8 727A0000   |CALL    dvdtoavi.00411414
004099A2  |.  59            |POP     ECX
004099A3  |.  0FBE0E        |MOVSX   ECX, BYTE PTR [ESI]
004099A6  |.  0FB6D0        |MOVZX   EDX, AL
004099A9  |.  85D2          |TEST    EDX, EDX
004099AB  |.  74 06         |JE      SHORT dvdtoavi.004099B3
004099AD  |.  8D7C0F C9     |LEA     EDI, DWORD PTR [EDI+ECX-37]
004099B1  |.  EB 04         |JMP     SHORT dvdtoavi.004099B7
004099B3  |>  8D7C0F D0     |LEA     EDI, DWORD PTR [EDI+ECX-30]
004099B7  |>  83C3 01       |ADD     EBX, 1
004099BA  |.  83FB 11       |CMP     EBX, 11
004099BD  |.^ 7C D2         \JL      SHORT dvdtoavi.00409991         ;  //循环,累加注册码
004099BF  |.  8B1C24        MOV     EBX, DWORD PTR [ESP]
004099C2  |.  8B7424 04     MOV     ESI, DWORD PTR [ESP+4]
004099C6  |.  83FF 2A       CMP     EDI, 2A
004099C9  |.  74 0A         JE      SHORT dvdtoavi.004099D5          ;  //注册码13-17位之和与2Ah比较,相等则跳
004099CB  |.  33C0          XOR     EAX, EAX
004099CD  |.  81C4 0C110000 ADD     ESP, 110C
004099D3  |.  5F            POP     EDI
004099D4  |.  C3            RETN
004099D5  |>  891C24        MOV     DWORD PTR [ESP], EBX
004099D8  |.  897424 04     MOV     DWORD PTR [ESP+4], ESI
004099DC  |.  33FF          XOR     EDI, EDI
004099DE  |.  B8 12000000   MOV     EAX, 12
004099E3  |.  8BD8          MOV     EBX, EAX
004099E5  |>  0FBE441C 0C   /MOVSX   EAX, BYTE PTR [ESP+EBX+C]
004099EA  |.  8D7424 0C     |LEA     ESI, DWORD PTR [ESP+C]
004099EE  |.  50            |PUSH    EAX
004099EF  |.  03F3          |ADD     ESI, EBX
004099F1  |.  E8 1E7A0000   |CALL    dvdtoavi.00411414
004099F6  |.  59            |POP     ECX
004099F7  |.  0FBE16        |MOVSX   EDX, BYTE PTR [ESI]
004099FA  |.  0FB6C0        |MOVZX   EAX, AL
004099FD  |.  85C0          |TEST    EAX, EAX
004099FF  |.  74 06         |JE      SHORT dvdtoavi.00409A07
00409A01  |.  8D7C17 C9     |LEA     EDI, DWORD PTR [EDI+EDX-37]
00409A05  |.  EB 04         |JMP     SHORT dvdtoavi.00409A0B
00409A07  |>  8D7C17 D0     |LEA     EDI, DWORD PTR [EDI+EDX-30]
00409A0B  |>  83C3 01       |ADD     EBX, 1
00409A0E  |.  83FB 17       |CMP     EBX, 17
00409A11  |.^ 7C D2         \JL      SHORT dvdtoavi.004099E5         ;  //循环,累加注册码
00409A13  |.  8B1C24        MOV     EBX, DWORD PTR [ESP]
00409A16  |.  8B7424 04     MOV     ESI, DWORD PTR [ESP+4]
00409A1A  |.  83FF 2B       CMP     EDI, 2B
00409A1D  |.  74 0A         JE      SHORT dvdtoavi.00409A29          ;  //注册码19-23位之和与2Bh比较,相等则跳
00409A1F  |.  33C0          XOR     EAX, EAX
00409A21  |.  81C4 0C110000 ADD     ESP, 110C
00409A27  |.  5F            POP     EDI
00409A28  |.  C3            RETN
00409A29  |>  891C24        MOV     DWORD PTR [ESP], EBX
00409A2C  |.  897424 04     MOV     DWORD PTR [ESP+4], ESI
00409A30  |.  33FF          XOR     EDI, EDI
00409A32  |.  B8 18000000   MOV     EAX, 18
00409A37  |.  8BD8          MOV     EBX, EAX
00409A39  |>  0FBE541C 0C   /MOVSX   EDX, BYTE PTR [ESP+EBX+C]
00409A3E  |.  8D7424 0C     |LEA     ESI, DWORD PTR [ESP+C]
00409A42  |.  52            |PUSH    EDX
00409A43  |.  03F3          |ADD     ESI, EBX
00409A45  |.  E8 CA790000   |CALL    dvdtoavi.00411414
00409A4A  |.  59            |POP     ECX
00409A4B  |.  0FBE0E        |MOVSX   ECX, BYTE PTR [ESI]
00409A4E  |.  0FB6D0        |MOVZX   EDX, AL
00409A51  |.  85D2          |TEST    EDX, EDX
00409A53  |.  74 06         |JE      SHORT dvdtoavi.00409A5B
00409A55  |.  8D7C0F C9     |LEA     EDI, DWORD PTR [EDI+ECX-37]
00409A59  |.  EB 04         |JMP     SHORT dvdtoavi.00409A5F
00409A5B  |>  8D7C0F D0     |LEA     EDI, DWORD PTR [EDI+ECX-30]
00409A5F  |>  83C3 01       |ADD     EBX, 1
00409A62  |.  83FB 1D       |CMP     EBX, 1D
00409A65  |.^ 7C D2         \JL      SHORT dvdtoavi.00409A39         ;  //循环,累加注册码
00409A67  |.  8B1C24        MOV     EBX, DWORD PTR [ESP]
00409A6A  |.  8B7424 04     MOV     ESI, DWORD PTR [ESP+4]
00409A6E  |.  83FF 2C       CMP     EDI, 2C
00409A71  |.  74 0A         JE      SHORT dvdtoavi.00409A7D          ;  //注册码25-29位之和与2Ch比较,相等则跳
00409A73  |>  33C0          XOR     EAX, EAX
00409A75  |.  81C4 0C110000 ADD     ESP, 110C
00409A7B  |.  5F            POP     EDI
00409A7C  |.  C3            RETN
00409A7D  |>  B8 01000000   MOV     EAX, 1                           ;  //标志位赋值
00409A82  |.  81C4 0C110000 ADD     ESP, 110C
00409A88  |.  5F            POP     EDI
00409A89  \.  C3            RETN
**************************************************************  
【破解总结】
--------------------------------------------------------------
【算法总结】
1.注册码与用户名无关
2.注册码为29位,形式为"XXXXX+XXXXX+XXXXX+XXXXX+XXXXX"
3.注册码第6、12、18、24位为"+"
  注册码1-5位之和为28h
  注册码7-11位之和为29h
  注册码13-17位之和为2Ah
  注册码19-23位之和为2Bh
  注册码25-29位之和为2Ch
--------------------------------------------------------------
【注册信息】
一组可用注册码
用户名:任意
注册码:88888+88889+88899+88999+89999
保存在
[HKEY_CURRENT_USER\Software\dvdtoavi\Output_Setting\PathName]
--------------------------------------------------------------
感谢飘云老大、猫老大、Nisy老大以及很多前辈们的学习教程以及徐超等所有帮助过我的论坛兄弟姐妹们!谢谢
--------------------------------------------------------------
【版权声明】破文是学习的手记,兴趣是成功的源泉;本破文纯属技术交流, 转载请注明作者并保持文章的完整, 谢谢!

     _/_/_/   _/   _/   _/_/_/ 
    _/   _/  _/  _/    _/       
   _/_/_/    _/_/     _/_/_/_/ 
  _/         _/      _/    _/
 _/         _/      _/_/_/ _/    tianxj