简单任务之一分钟学算法:某录像软件的注册算法分析
本帖最后由 GGLHY 于 2012-3-16 13:13 编辑简单任务之一分钟学算法:某录像软件的注册算法分析
很简单,确实很简单!适合新手。
0043060B E8 E0E6FFFF CALL VideoRec.0042ECF0 ; 重启验证的call!
00430610 85C0 TEST EAX,EAX
00430612 0F85 E5000000 JNZ VideoRec.004306FD
00431A05 E8 E6D2FFFF CALL VideoRec.0042ECF0 ; 录像时调用!00431A0A 85C0 TEST EAX,EAX
00431A0C 75 09 JNZ SHORT VideoRec.00431A17 ; 不跳则有2分钟的限制
00431A0E C745 F4 0000000>MOV DWORD PTR SS:,0 ;注意这里
00431A15 EB 07 JMP SHORT VideoRec.00431A1E
00431A17 C745 F4 0100000>MOV DWORD PTR SS:,1 ;还有这里。赋值不同!
ok,直接来到:0042ED1C C745 F0 CE2BE30>MOV DWORD PTR SS:,0E32BCE ; 这里赋值常数0E32BCE给
0042ED23 C745 E8 2540743>MOV DWORD PTR SS:,35744025 ; 这里赋值常数:35744025给
0042ED2A 8D4D EC LEA ECX,DWORD PTR SS:
0042ED2D E8 6E2AFDFF CALL VideoRec.004017A0
0042ED32 C745 FC 0000000>MOV DWORD PTR SS:,0
0042ED39 8D4D D8 LEA ECX,DWORD PTR SS:
0042ED3C E8 5F2AFDFF CALL VideoRec.004017A0
0042ED41 C645 FC 01 MOV BYTE PTR SS:,1
0042ED45 C745 DC C800000>MOV DWORD PTR SS:,0C8
0042ED4C 6A 00 PUSH 0
0042ED4E 6A 00 PUSH 0
0042ED50 6A 00 PUSH 0
0042ED52 6A 00 PUSH 0
0042ED54 8D45 E0 LEA EAX,DWORD PTR SS:
0042ED57 50 PUSH EAX
0042ED58 6A 00 PUSH 0
0042ED5A 6A 00 PUSH 0
0042ED5C 68 CC454900 PUSH VideoRec.004945CC**** Hidden Message *****0042EDAB 85C0 TEST EAX,EAX ; (保存的)注册码长度为空则跳
0042EDAD 74 71 JE SHORT VideoRec.0042EE20
0042EDAF 8D85 0CFFFFFF LEA EAX,DWORD PTR SS: ; 保存的注册码!
0042EDB5 50 PUSH EAX
0042EDB6 8D4D D8 LEA ECX,DWORD PTR SS:
0042EDB9 E8 F23CFDFF CALL VideoRec.00402AB0
0042EDBE 6A 10 PUSH 10
0042EDC0 6A 00 PUSH 0
0042EDC2 8D4D D8 LEA ECX,DWORD PTR SS:
0042EDC5 E8 E6F4FDFF CALL VideoRec.0040E2B0
0042EDCA 50 PUSH EAX
0042EDCB E8 049F0200 CALL VideoRec.00458CD4
0042EDD0 83C4 0C ADD ESP,0C
0042EDD3 8945 E4 MOV DWORD PTR SS:,EAX ; 保存的注册码!
0042EDD6 8B4D E4 MOV ECX,DWORD PTR SS:
0042EDD9 334D E8 XOR ECX,DWORD PTR SS: ; 保存的注册码xor 常数35744025
0042EDDC 894D E4 MOV DWORD PTR SS:,ECX ; 结果为机器码的数值形式
0042EDDF 8B55 E4 MOV EDX,DWORD PTR SS:
0042EDE2 3355 F0 XOR EDX,DWORD PTR SS: ; 机器码的数值形式 xor 常数00E32BCE
0042EDE5 8955 E4 MOV DWORD PTR SS:,EDX ; 得到的结果!
**** Hidden Message *****0042EDEE 75 30 JNZ SHORT VideoRec.0042EE20 ; 不等则跳,下面会弹出注册框!
0042EDF0 C785 A0FDFFFF 0>MOV DWORD PTR SS:,1
0042EDFA C645 FC 00 MOV BYTE PTR SS:,0
0042EDFE 8D4D D8 LEA ECX,DWORD PTR SS:
0042EE01 E8 BA29FDFF CALL VideoRec.004017C0
0042EE06 C745 FC FFFFFFF>MOV DWORD PTR SS:,-1
0042EE0D 8D4D EC LEA ECX,DWORD PTR SS:
0042EE10 E8 AB29FDFF CALL VideoRec.004017C0
0042EE15 8B85 A0FDFFFF MOV EAX,DWORD PTR SS:
0042EE1B E9 07030000 JMP VideoRec.0042F127
0042EE20 0FB64D 08 MOVZX ECX,BYTE PTR SS:
0042EE24 85C9 TEST ECX,ECX
0042EE26 0F84 D0020000 JE VideoRec.0042F0FC
0042EE2C 8D8D 04FFFFFF LEA ECX,DWORD PTR SS:
0042EE32 E8 6929FDFF CALL VideoRec.004017A0
0042EE37 C645 FC 02 MOV BYTE PTR SS:,2
0042EE3B 68 E8454900 PUSH VideoRec.004945E8 ; ASCII "UseTimes3"
0042EE40 8D8D A4FDFFFF LEA ECX,DWORD PTR SS:
0042EE46 E8 F53BFDFF CALL VideoRec.00402A40
0042EE4B C645 FC 03 MOV BYTE PTR SS:,3
0042EE4F 68 F4454900 PUSH VideoRec.004945F4 ; ASCII "Time"
0042EE54 8D8D A8FDFFFF LEA ECX,DWORD PTR SS:
0042EE5A E8 E13BFDFF CALL VideoRec.00402A40
(省略部分代码)
0042EF20 E8 DB2BFDFF CALL VideoRec.00401B00
0042EF25 83C4 0C ADD ESP,0C
0042EF28 8D8D ACFDFFFF LEA ECX,DWORD PTR SS:
0042EF2E E8 E2E40300 CALL VideoRec.0046D415 ;调出注册框!
0042EF33 83F8 01 CMP EAX,1
0042EF36 0F85 21010000 JNZ VideoRec.0042F05D
0042EF3C 8D95 20FEFFFF LEA EDX,DWORD PTR SS:
0042EF42 52 PUSH EDX
0042EF43 8D4D D8 LEA ECX,DWORD PTR SS:
0042EF46 E8 952BFDFF CALL VideoRec.00401AE0
0042EF4B 8D8D ACFDFFFF LEA ECX,DWORD PTR SS:
0042EF51 E8 DA35FFFF CALL VideoRec.00422530
0042EF56 8985 9CFDFFFF MOV DWORD PTR SS:,EAX
0042EF5C 8B85 9CFDFFFF MOV EAX,DWORD PTR SS:
0042EF62 50 PUSH EAX
0042EF63 E8 32310400 CALL VideoRec.0047209A
0042EF68 83C4 04 ADD ESP,4
0042EF6B 6A 10 PUSH 10
0042EF6D 6A 00 PUSH 0
0042EF6F 8D4D D8 LEA ECX,DWORD PTR SS:
0042EF72 E8 39F3FDFF CALL VideoRec.0040E2B0
0042EF77 50 PUSH EAX ; 假码15987530
0042EF78 E8 579D0200 CALL VideoRec.00458CD4
0042EF7D 83C4 0C ADD ESP,0C
0042EF80 8945 E4 MOV DWORD PTR SS:,EAX ; 假码15987530
0042EF83 8B4D E4 MOV ECX,DWORD PTR SS:
0042EF86 334D E8 XOR ECX,DWORD PTR SS: ; 假码 XOR 35744025
0042EF89 894D E4 MOV DWORD PTR SS:,ECX ; xoR的结果
0042EF8C 8B55 E4 MOV EDX,DWORD PTR SS: ; xoR的结果
0042EF8F 3355 F0 XOR EDX,DWORD PTR SS: ; 再 xor 00E32BCE
0042EF92 8955 E4 MOV DWORD PTR SS:,EDX ; 结果
0042EF95 8B45 E4 MOV EAX,DWORD PTR SS: ; 设为K2
**** Hidden Message *****0042EF9B 0F85 AC000000 JNZ VideoRec.0042F04D ; 不等就错了!
0042EFA1 8D4D EC LEA ECX,DWORD PTR SS:
0042EFA4 E8 07F3FDFF CALL VideoRec.0040E2B0
0042EFA9 50 PUSH EAX
0042EFAA 68 14464900 PUSH VideoRec.00494614 ; ASCII "UserID"
0042EFAF 68 1C464900 PUSH VideoRec.0049461C ; ASCII "MySoft"
0042EFB4 FF15 74C34800 CALL DWORD PTR DS: ; kernel32.WriteProfileStringA
0042EFBA 8D4D D8 LEA ECX,DWORD PTR SS:
0042EFBD E8 EEF2FDFF CALL VideoRec.0040E2B0
0042EFC2 50 PUSH EAX
0042EFC3 68 24464900 PUSH VideoRec.00494624 ; ASCII "RegCode"
0042EFC8 68 2C464900 PUSH VideoRec.0049462C ; ASCII "MySoft"
0042EFCD FF15 74C34800 CALL DWORD PTR DS: ; kernel32.WriteProfileStringA
0042EFD3 6A 00 PUSH 0
0042EFD5 6A 00 PUSH 0
文件注册信息保存在:
**** Hidden Message *****
试着录了2分46秒的视频,可能是没有选好解码器的缘故吧,生成的录像文件近50M。
另外,顺便贴个如何查看盘符卷标序列号的命令:
-------我是分割线(不要复制我,复制下面的内容)---
ECHO " HELLO , GGLHY !"
fsutil fsinfo volumeinfo c:\
pause
----------我是分割线(不要复制我)-----------
将其另存为:查看C盘卷序列号.bat
运行即可查看C盘卷序列号
看这里:Volumen Serial Number : 0X.....(16进制)
另盘符可以自己更改!
设置回复可见是让刚入门的真心想学习的兄弟姐妹们看的。如果只是想观光,这种简单算法也就不必浪费阁下的时间了!/:017
本帖最后由 老万 于 2011-3-3 20:51 编辑
录像软件,学习了 老G,改风格了哈, 哇!!!学习了 支持你 顺便贴个如何查看盘符卷标序列号的命令:
-----------我是分割线(不要复制我,复制下面的内容)-------
ECHO " HELLO , GGLHY !"
fsutil fsinfo volumeinfo c:\
pause
----------我是分割线(不要复制我)-----------
将其另存为:查看C盘卷序列号.bat
运行即可查看C盘卷序列号
看这里:Volumen Serial Number : 0X.....(16进制)
另盘符可以自己更改! 我也来学习并支持楼主的分享。 是什么录像软件? 学习了 支持你 学习了 支持你 还是看不明白是什么意思啊!
看来我对算法还是不行啊