OpenVideoJoiner V3.02汉化版追码分析(逐位)
附件很多,请大家参考这一帖下载:https://www.chinapyg.com/viewthread.php?tid=5215&extra=page%3D1
++++++++++++++++++++
破解手记。。。
WildCatIII
9876543210
00422E20/.55 PUSH EBP
00422E21|.8BEC MOV EBP,ESP
00422E23|.83EC 20 SUB ESP,20
00422E26|.894D E0 MOV DWORD PTR SS:[EBP-20],ECX
00422E29|.6A 01 PUSH 1
00422E2B|.8B4D E0 MOV ECX,DWORD PTR SS:[EBP-20]
00422E2E|.E8 FC130200 CALL VideoJoi.0044422F
00422E33|.8B4D E0 MOV ECX,DWORD PTR SS:[EBP-20]
00422E36|.83C1 70 ADD ECX,70
00422E39|.E8 A28CFEFF CALL VideoJoi.0040BAE0
00422E3E|.83F8 02 CMP EAX,2
00422E41|.7D 13 JGE SHORT VideoJoi.00422E56
00422E43|.6A 00 PUSH 0
00422E45|.6A 00 PUSH 0
00422E47|.68 D4CF4500 PUSH VideoJoi.0045CFD4 ;请输入正确的用户名!
00422E4C|.E8 6AAE0200 CALL VideoJoi.0044DCBB
00422E51|.E9 A9020000 JMP VideoJoi.004230FF
00422E56|>8B4D E0 MOV ECX,DWORD PTR SS:[EBP-20]
00422E59|.83C1 74 ADD ECX,74
00422E5C|.E8 7F8CFEFF CALL VideoJoi.0040BAE0
00422E61|.83F8 08 CMP EAX,8
00422E64|.7D 13 JGE SHORT VideoJoi.00422E79
00422E66|.6A 00 PUSH 0
00422E68|.6A 00 PUSH 0
00422E6A|.68 F4CF4500 PUSH VideoJoi.0045CFF4 ;请输入正确的注册码!
00422E6F|.E8 47AE0200 CALL VideoJoi.0044DCBB
00422E74|.E9 86020000 JMP VideoJoi.004230FF
00422E79|>6A 00 PUSH 0 ; /Arg1 = 00000000
00422E7B|.8B4D E0 MOV ECX,DWORD PTR SS:[EBP-20] ; |
00422E7E|.83C1 70 ADD ECX,70 ; |
00422E81|.E8 EAF4FFFF CALL VideoJoi.00422370 ; \VideoJoi.00422370
00422E86|.8845 EF MOV BYTE PTR SS:[EBP-11],AL
00422E89|.6A 01 PUSH 1 ; /Arg1 = 00000001
00422E8B|.8B4D E0 MOV ECX,DWORD PTR SS:[EBP-20] ; |
00422E8E|.83C1 70 ADD ECX,70 ; |
00422E91|.E8 DAF4FFFF CALL VideoJoi.00422370 ; \VideoJoi.00422370
00422E96|.8845 F8 MOV BYTE PTR SS:[EBP-8],AL
00422E99|.6A 00 PUSH 0 ; /Arg1 = 00000000
00422E9B|.8B4D E0 MOV ECX,DWORD PTR SS:[EBP-20] ; |
00422E9E|.83C1 70 ADD ECX,70 ; |
00422EA1|.E8 CAF4FFFF CALL VideoJoi.00422370 ; \VideoJoi.00422370
00422EA6|.8845 FF MOV BYTE PTR SS:[EBP-1],AL
00422EA9|.6A 01 PUSH 1 ; /Arg1 = 00000001
00422EAB|.8B4D E0 MOV ECX,DWORD PTR SS:[EBP-20] ; |
00422EAE|.83C1 70 ADD ECX,70 ; |
00422EB1|.E8 BAF4FFFF CALL VideoJoi.00422370 ; \VideoJoi.00422370
00422EB6|.8845 FA MOV BYTE PTR SS:[EBP-6],AL
00422EB9|.0FB645 EF MOVZX EAX,BYTE PTR SS:[EBP-11]
00422EBD|.83C8 4F OR EAX,4F
00422EC0|.8845 EF MOV BYTE PTR SS:[EBP-11],AL
00422EC3|.0FB64D F8 MOVZX ECX,BYTE PTR SS:[EBP-8]
00422EC7|.83C9 56 OR ECX,56
00422ECA|.884D F8 MOV BYTE PTR SS:[EBP-8],CL
00422ECD|.0FB655 FF MOVZX EDX,BYTE PTR SS:[EBP-1]
00422ED1|.83CA 4A OR EDX,4A
00422ED4|.8855 FF MOV BYTE PTR SS:[EBP-1],DL
00422ED7|.0FB645 FA MOVZX EAX,BYTE PTR SS:[EBP-6]
00422EDB|.83C8 4E OR EAX,4E
00422EDE|.8845 FA MOV BYTE PTR SS:[EBP-6],AL
00422EE1|.0FB645 EF MOVZX EAX,BYTE PTR SS:[EBP-11]
00422EE5|.99 CDQ
00422EE6|.B9 0A000000 MOV ECX,0A
00422EEB|.F7F9 IDIV ECX
00422EED|.8855 EF MOV BYTE PTR SS:[EBP-11],DL
00422EF0|.0FB645 F8 MOVZX EAX,BYTE PTR SS:[EBP-8]
00422EF4|.99 CDQ
00422EF5|.B9 0A000000 MOV ECX,0A
00422EFA|.F7F9 IDIV ECX
00422EFC|.8855 F8 MOV BYTE PTR SS:[EBP-8],DL
00422EFF|.0FB645 FF MOVZX EAX,BYTE PTR SS:[EBP-1]
00422F03|.99 CDQ
00422F04|.B9 0A000000 MOV ECX,0A
00422F09|.F7F9 IDIV ECX
00422F0B|.8855 FF MOV BYTE PTR SS:[EBP-1],DL
00422F0E|.0FB645 FA MOVZX EAX,BYTE PTR SS:[EBP-6]
00422F12|.99 CDQ
00422F13|.B9 0A000000 MOV ECX,0A
00422F18|.F7F9 IDIV ECX
00422F1A|.8855 FA MOV BYTE PTR SS:[EBP-6],DL
00422F1D|.C745 F0 00000>MOV DWORD PTR SS:[EBP-10],0
00422F24|.C745 E8 00000>MOV DWORD PTR SS:[EBP-18],0
00422F2B|.EB 09 JMP SHORT VideoJoi.00422F36
00422F2D|>8B55 E8 /MOV EDX,DWORD PTR SS:[EBP-18]
00422F30|.83C2 01 |ADD EDX,1
00422F33|.8955 E8 |MOV DWORD PTR SS:[EBP-18],EDX
00422F36|>8B4D E0 MOV ECX,DWORD PTR SS:[EBP-20]
00422F39|.83C1 70 |ADD ECX,70
00422F3C|.E8 9F8BFEFF |CALL VideoJoi.0040BAE0
00422F41|.3945 E8 |CMP DWORD PTR SS:[EBP-18],EAX
00422F44|.7D 1E |JGE SHORT VideoJoi.00422F64
00422F46|.8B45 E8 |MOV EAX,DWORD PTR SS:[EBP-18]
00422F49|.50 |PUSH EAX ; /Arg1
00422F4A|.8B4D E0 |MOV ECX,DWORD PTR SS:[EBP-20] ; |
00422F4D|.83C1 70 |ADD ECX,70 ; |
00422F50|.E8 1BF4FFFF |CALL VideoJoi.00422370 ; \VideoJoi.00422370
00422F55|.8845 E7 |MOV BYTE PTR SS:[EBP-19],AL
00422F58|.0FB64D E7 |MOVZX ECX,BYTE PTR SS:[EBP-19]
00422F5C|.034D F0 |ADD ECX,DWORD PTR SS:[EBP-10]
00422F5F|.894D F0 |MOV DWORD PTR SS:[EBP-10],ECX
00422F62|.^ EB C9 \JMP SHORT VideoJoi.00422F2D
00422F64|>8B45 F0 MOV EAX,DWORD PTR SS:[EBP-10]
00422F67|.99 CDQ
00422F68|.B9 0A000000 MOV ECX,0A
00422F6D|.F7F9 IDIV ECX
00422F6F|.8855 F4 MOV BYTE PTR SS:[EBP-C],DL
00422F72|.6A 00 PUSH 0 ; /Arg1 = 00000000
00422F74|.8B4D E0 MOV ECX,DWORD PTR SS:[EBP-20] ; |
00422F77|.83C1 74 ADD ECX,74 ; |
00422F7A|.E8 F1F3FFFF CALL VideoJoi.00422370 ; \VideoJoi.00422370
00422F7F|.8845 FC MOV BYTE PTR SS:[EBP-4],AL
00422F82|.6A 01 PUSH 1 ; /Arg1 = 00000001
00422F84|.8B4D E0 MOV ECX,DWORD PTR SS:[EBP-20] ; |
00422F87|.83C1 74 ADD ECX,74 ; |
00422F8A|.E8 E1F3FFFF CALL VideoJoi.00422370 ; \VideoJoi.00422370
00422F8F|.8845 FD MOV BYTE PTR SS:[EBP-3],AL
00422F92|.6A 02 PUSH 2 ; /Arg1 = 00000002
00422F94|.8B4D E0 MOV ECX,DWORD PTR SS:[EBP-20] ; |
00422F97|.83C1 74 ADD ECX,74 ; |
00422F9A|.E8 D1F3FFFF CALL VideoJoi.00422370 ; \VideoJoi.00422370
00422F9F|.8845 F6 MOV BYTE PTR SS:[EBP-A],AL
00422FA2|.6A 03 PUSH 3 ; /Arg1 = 00000003
00422FA4|.8B4D E0 MOV ECX,DWORD PTR SS:[EBP-20] ; |
00422FA7|.83C1 74 ADD ECX,74 ; |
00422FAA|.E8 C1F3FFFF CALL VideoJoi.00422370 ; \VideoJoi.00422370
00422FAF|.8845 F5 MOV BYTE PTR SS:[EBP-B],AL
00422FB2|.6A 04 PUSH 4 ; /Arg1 = 00000004
00422FB4|.8B4D E0 MOV ECX,DWORD PTR SS:[EBP-20] ; |
00422FB7|.83C1 74 ADD ECX,74 ; |
00422FBA|.E8 B1F3FFFF CALL VideoJoi.00422370 ; \VideoJoi.00422370
00422FBF|.8845 F9 MOV BYTE PTR SS:[EBP-7],AL
00422FC2|.6A 05 PUSH 5 ; /Arg1 = 00000005
00422FC4|.8B4D E0 MOV ECX,DWORD PTR SS:[EBP-20] ; |
00422FC7|.83C1 74 ADD ECX,74 ; |
00422FCA|.E8 A1F3FFFF CALL VideoJoi.00422370 ; \VideoJoi.00422370
00422FCF|.8845 F7 MOV BYTE PTR SS:[EBP-9],AL
00422FD2|.6A 06 PUSH 6 ; /Arg1 = 00000006
00422FD4|.8B4D E0 MOV ECX,DWORD PTR SS:[EBP-20] ; |
00422FD7|.83C1 74 ADD ECX,74 ; |
00422FDA|.E8 91F3FFFF CALL VideoJoi.00422370 ; \VideoJoi.00422370
00422FDF|.8845 FE MOV BYTE PTR SS:[EBP-2],AL
00422FE2|.6A 07 PUSH 7 ; /Arg1 = 00000007
00422FE4|.8B4D E0 MOV ECX,DWORD PTR SS:[EBP-20] ; |
00422FE7|.83C1 74 ADD ECX,74 ; |
00422FEA|.E8 81F3FFFF CALL VideoJoi.00422370 ; \VideoJoi.00422370
00422FEF|.8845 FB MOV BYTE PTR SS:[EBP-5],AL
00422FF2|.0FB655 EF MOVZX EDX,BYTE PTR SS:[EBP-11]
00422FF6|.0FB645 FC MOVZX EAX,BYTE PTR SS:[EBP-4]
00422FFA|.83E8 30 SUB EAX,30
00422FFD|.3BD0 CMP EDX,EAX
00422FFF|.75 3C JNZ SHORT VideoJoi.0042303D
00423001|.0FB64D F8 MOVZX ECX,BYTE PTR SS:[EBP-8]
00423005|.0FB655 FD MOVZX EDX,BYTE PTR SS:[EBP-3]
00423009|.83EA 30 SUB EDX,30
0042300C|.3BCA CMP ECX,EDX
0042300E|.75 2D JNZ SHORT VideoJoi.0042303D
00423010|.0FB645 FF MOVZX EAX,BYTE PTR SS:[EBP-1]
00423014|.0FB64D F6 MOVZX ECX,BYTE PTR SS:[EBP-A]
00423018|.83E9 30 SUB ECX,30
0042301B|.3BC1 CMP EAX,ECX
0042301D|.75 1E JNZ SHORT VideoJoi.0042303D
0042301F|.0FB655 FA MOVZX EDX,BYTE PTR SS:[EBP-6]
00423023|.0FB645 F5 MOVZX EAX,BYTE PTR SS:[EBP-B]
00423027|.83E8 30 SUB EAX,30
0042302A|.3BD0 CMP EDX,EAX
0042302C|.75 0F JNZ SHORT VideoJoi.0042303D
0042302E|.0FB64D F4 MOVZX ECX,BYTE PTR SS:[EBP-C]
00423032|.0FB655 F9 MOVZX EDX,BYTE PTR SS:[EBP-7]
00423036|.83EA 30 SUB EDX,30
00423039|.3BCA CMP ECX,EDX
0042303B|.74 58 JE SHORT VideoJoi.00423095
0042303D|>0FB645 FC MOVZX EAX,BYTE PTR SS:[EBP-4]
00423041|.83F8 35 CMP EAX,35
00423044|.0F85 A7000000 JNZ VideoJoi.004230F1
0042304A|.0FB64D FD MOVZX ECX,BYTE PTR SS:[EBP-3]
0042304E|.83F9 31 CMP ECX,31
00423051|.0F85 9A000000 JNZ VideoJoi.004230F1
00423057|.0FB655 F6 MOVZX EDX,BYTE PTR SS:[EBP-A]
0042305B|.83FA 38 CMP EDX,38
0042305E|.0F85 8D000000 JNZ VideoJoi.004230F1
00423064|.0FB645 F5 MOVZX EAX,BYTE PTR SS:[EBP-B]
00423068|.83F8 39 CMP EAX,39
0042306B|.0F85 80000000 JNZ VideoJoi.004230F1
00423071|.0FB64D F9 MOVZX ECX,BYTE PTR SS:[EBP-7]
00423075|.83F9 37 CMP ECX,37
00423078|.75 77 JNZ SHORT VideoJoi.004230F1
0042307A|.0FB655 F7 MOVZX EDX,BYTE PTR SS:[EBP-9]
0042307E|.83FA 36 CMP EDX,36
00423081|.75 6E JNZ SHORT VideoJoi.004230F1
00423083|.0FB645 FE MOVZX EAX,BYTE PTR SS:[EBP-2]
00423087|.83F8 31 CMP EAX,31
0042308A|.75 65 JNZ SHORT VideoJoi.004230F1
0042308C|.0FB64D FB MOVZX ECX,BYTE PTR SS:[EBP-5]
00423090|.83F9 38 CMP ECX,38
00423093|.75 5C JNZ SHORT VideoJoi.004230F1
00423095|>6A 00 PUSH 0
00423097|.6A 00 PUSH 0
00423099|.68 1CD04500 PUSH VideoJoi.0045D01C ;注册成功!
0042309E|.E8 18AC0200 CALL VideoJoi.0044DCBB
004230A3|.8B4D E0 MOV ECX,DWORD PTR SS:[EBP-20]
004230A6|.83C1 70 ADD ECX,70
004230A9|.E8 E2F4FFFF CALL VideoJoi.00422590
004230AE|.50 PUSH EAX
004230AF|.68 38D04500 PUSH VideoJoi.0045D038 ;username
004230B4|.68 44D04500 PUSH VideoJoi.0045D044 ;option
004230B9|.E8 D22BFFFF CALL VideoJoi.00415C90
004230BE|.8BC8 MOV ECX,EAX ; |
004230C0|.E8 56A90200 CALL VideoJoi.0044DA1B ; \VideoJoi.0044DA1B
004230C5|.8B4D E0 MOV ECX,DWORD PTR SS:[EBP-20]
004230C8|.83C1 74 ADD ECX,74
004230CB|.E8 C0F4FFFF CALL VideoJoi.00422590
004230D0|.50 PUSH EAX
004230D1|.68 4CD04500 PUSH VideoJoi.0045D04C ;registration_code
004230D6|.68 60D04500 PUSH VideoJoi.0045D060 ;option
004230DB|.E8 B02BFFFF CALL VideoJoi.00415C90
004230E0|.8BC8 MOV ECX,EAX ; |
004230E2|.E8 34A90200 CALL VideoJoi.0044DA1B ; \VideoJoi.0044DA1B
004230E7|.8B4D E0 MOV ECX,DWORD PTR SS:[EBP-20]
004230EA|.E8 334F0200 CALL VideoJoi.00448022
004230EF|.EB 0E JMP SHORT VideoJoi.004230FF
004230F1|>6A 00 PUSH 0
004230F3|.6A 00 PUSH 0
004230F5|.68 68D04500 PUSH VideoJoi.0045D068 ;注册失败!
004230FA|.E8 BCAB0200 CALL VideoJoi.0044DCBB
004230FF|>8BE5 MOV ESP,EBP
00423101|.5D POP EBP
00423102\.C3 RETN
[ 本帖最后由 野猫III 于 2006-6-4 17:56 编辑 ] 猫兄,辛苦了!! 永远支持猫兄!感谢! 支持,支持!猫,辛苦了! 支持猫兄再接再历 下来学习下`~ 不知注册机有没?这个以前在汉化版发过,现在转发到这里,当个补充,高级语言比汇编容易理解些。
一个注册机,算法根据用户名进行运算,得出的值(五位)与用户输入的注册码前五位比较,若相同,则忽略后面的数字(注册码需要至少八位)
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, char *argv[])
{
char user;
char code;
char b1,b2;
short i,count,m;
printf("please inpute your name:");
gets(user);
printf("\nuser name is %s",user);
b1=user;
b2=user;
count=0;
for(i=0;i<strlen(user);i++){
count+=user;
}
m=count % 0xa;
code=(b1|0x4f) % 0xa;
code=(b2|0x56) % 0xa;
code=(b1|0x4a) % 0xa;
code=(b2|0x4e) % 0xa;
code=m;
code='\0';
for(i=0;i<strlen(code);i++){
code=code+0x30;
}
printf("the code is %s",code);
system("PAUSE");
return 0;
} 原帖由 caterpilla 于 2006-6-6 07:07 发表
不知注册机有没?这个以前在汉化版发过,现在转发到这里,当个补充,高级语言比汇编容易理解些。
一个注册机,算法根据用户名进行运算,得出的值(五位)与用户输入的注册码前五位比较,若相同,则忽略后面的数字 ...
兄弟写的吗?牛人!
是C++还是C呢?
那两个程序在那里下载呀???
[ 本帖最后由 野猫III 于 2006-6-6 11:12 编辑 ] C写的,DEV C++,天空软件站有下,用VC++也行。 用兄弟教的方法下载完毕~
页:
[1]
2