| 
TA的每日心情|  | 开心 2015-8-23 23:49
 | 
|---|
 签到天数: 27 天 [LV.4]偶尔看看III | 
 
| 本帖最后由 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                   ; 录像时调用!
 ok,直接来到:复制代码00431A0A    85C0            TEST EAX,EAX
00431A0C    75 09           JNZ SHORT VideoRec.00431A17              ; 不跳则有2分钟的限制
00431A0E    C745 F4 0000000>MOV DWORD PTR SS:[EBP-C],0              ;注意这里
00431A15    EB 07           JMP SHORT VideoRec.00431A1E
00431A17    C745 F4 0100000>MOV DWORD PTR SS:[EBP-C],1   ;还有这里。赋值不同!
复制代码0042ED1C    C745 F0 CE2BE30>MOV DWORD PTR SS:[EBP-10],0E32BCE              ; 这里赋值常数0E32BCE给[EBP-10]
0042ED23    C745 E8 2540743>MOV DWORD PTR SS:[EBP-18],35744025                        ; 这里赋值常数:35744025给[EBP-18]
0042ED2A    8D4D EC         LEA ECX,DWORD PTR SS:[EBP-14]
0042ED2D    E8 6E2AFDFF     CALL VideoRec.004017A0
0042ED32    C745 FC 0000000>MOV DWORD PTR SS:[EBP-4],0
0042ED39    8D4D D8         LEA ECX,DWORD PTR SS:[EBP-28]
0042ED3C    E8 5F2AFDFF     CALL VideoRec.004017A0
0042ED41    C645 FC 01      MOV BYTE PTR SS:[EBP-4],1
0042ED45    C745 DC C800000>MOV DWORD PTR SS:[EBP-24],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:[EBP-20]
0042ED57    50              PUSH EAX
0042ED58    6A 00           PUSH 0
0042ED5A    6A 00           PUSH 0
0042ED5C    68 CC454900     PUSH VideoRec.004945CC
复制代码0042EDAB    85C0            TEST EAX,EAX                                   ; (保存的)注册码长度为空则跳
0042EDAD    74 71           JE SHORT VideoRec.0042EE20
0042EDAF    8D85 0CFFFFFF   LEA EAX,DWORD PTR SS:[EBP-F4]                  ; 保存的注册码!
0042EDB5    50              PUSH EAX
0042EDB6    8D4D D8         LEA ECX,DWORD PTR SS:[EBP-28]
0042EDB9    E8 F23CFDFF     CALL VideoRec.00402AB0
0042EDBE    6A 10           PUSH 10
0042EDC0    6A 00           PUSH 0
0042EDC2    8D4D D8         LEA ECX,DWORD PTR SS:[EBP-28]
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:[EBP-1C],EAX                 ; 保存的注册码!
0042EDD6    8B4D E4         MOV ECX,DWORD PTR SS:[EBP-1C]
0042EDD9    334D E8         XOR ECX,DWORD PTR SS:[EBP-18]                 ; 保存的注册码  xor 常数35744025
0042EDDC    894D E4         MOV DWORD PTR SS:[EBP-1C],ECX                 ; 结果为机器码的数值形式
0042EDDF    8B55 E4         MOV EDX,DWORD PTR SS:[EBP-1C]
0042EDE2    3355 F0         XOR EDX,DWORD PTR SS:[EBP-10]                 ; 机器码的数值形式 xor 常数00E32BCE
0042EDE5    8955 E4         MOV DWORD PTR SS:[EBP-1C],EDX                 ; 得到的结果!
复制代码0042EDEE    75 30           JNZ SHORT VideoRec.0042EE20                   ; 不等则跳,下面会弹出注册框!
0042EDF0    C785 A0FDFFFF 0>MOV DWORD PTR SS:[EBP-260],1
0042EDFA    C645 FC 00      MOV BYTE PTR SS:[EBP-4],0
0042EDFE    8D4D D8         LEA ECX,DWORD PTR SS:[EBP-28]
0042EE01    E8 BA29FDFF     CALL VideoRec.004017C0
0042EE06    C745 FC FFFFFFF>MOV DWORD PTR SS:[EBP-4],-1
0042EE0D    8D4D EC         LEA ECX,DWORD PTR SS:[EBP-14]
0042EE10    E8 AB29FDFF     CALL VideoRec.004017C0
0042EE15    8B85 A0FDFFFF   MOV EAX,DWORD PTR SS:[EBP-260]
0042EE1B    E9 07030000     JMP VideoRec.0042F127
0042EE20    0FB64D 08       MOVZX ECX,BYTE PTR SS:[EBP+8]
0042EE24    85C9            TEST ECX,ECX
0042EE26    0F84 D0020000   JE VideoRec.0042F0FC
0042EE2C    8D8D 04FFFFFF   LEA ECX,DWORD PTR SS:[EBP-FC]
0042EE32    E8 6929FDFF     CALL VideoRec.004017A0
0042EE37    C645 FC 02      MOV BYTE PTR SS:[EBP-4],2
0042EE3B    68 E8454900     PUSH VideoRec.004945E8                         ; ASCII "UseTimes3"
0042EE40    8D8D A4FDFFFF   LEA ECX,DWORD PTR SS:[EBP-25C]
0042EE46    E8 F53BFDFF     CALL VideoRec.00402A40
0042EE4B    C645 FC 03      MOV BYTE PTR SS:[EBP-4],3
0042EE4F    68 F4454900     PUSH VideoRec.004945F4                         ; ASCII "Time"
0042EE54    8D8D A8FDFFFF   LEA ECX,DWORD PTR SS:[EBP-258]
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:[EBP-254]
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:[EBP-1E0]
0042EF42    52              PUSH EDX
0042EF43    8D4D D8         LEA ECX,DWORD PTR SS:[EBP-28]
0042EF46    E8 952BFDFF     CALL VideoRec.00401AE0
0042EF4B    8D8D ACFDFFFF   LEA ECX,DWORD PTR SS:[EBP-254]
0042EF51    E8 DA35FFFF     CALL VideoRec.00422530
0042EF56    8985 9CFDFFFF   MOV DWORD PTR SS:[EBP-264],EAX
0042EF5C    8B85 9CFDFFFF   MOV EAX,DWORD PTR SS:[EBP-264]
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:[EBP-28]
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:[EBP-1C],EAX                  ; 假码15987530
0042EF83    8B4D E4         MOV ECX,DWORD PTR SS:[EBP-1C]
0042EF86    334D E8         XOR ECX,DWORD PTR SS:[EBP-18]                  ; 假码 XOR 35744025
0042EF89    894D E4         MOV DWORD PTR SS:[EBP-1C],ECX                  ; xoR的结果
0042EF8C    8B55 E4         MOV EDX,DWORD PTR SS:[EBP-1C]                  ; xoR的结果
0042EF8F    3355 F0         XOR EDX,DWORD PTR SS:[EBP-10]                  ; 再 xor 00E32BCE
0042EF92    8955 E4         MOV DWORD PTR SS:[EBP-1C],EDX                  ; 结果
0042EF95    8B45 E4         MOV EAX,DWORD PTR SS:[EBP-1C]                  ; 设为K2
文件注册信息保存在:复制代码0042EF9B    0F85 AC000000   JNZ VideoRec.0042F04D                          ; 不等就错了!
0042EFA1    8D4D EC         LEA ECX,DWORD PTR SS:[EBP-14]
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:[48C374]                     ; kernel32.WriteProfileStringA
0042EFBA    8D4D D8         LEA ECX,DWORD PTR SS:[EBP-28]
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:[48C374]                     ; kernel32.WriteProfileStringA
0042EFD3    6A 00           PUSH 0
0042EFD5    6A 00           PUSH 0
 
 
 试着录了2分46秒的视频,可能是没有选好解码器的缘故吧,生成的录像文件近50M。
 
 
 
 另外,顺便贴个如何查看盘符卷标序列号的命令:
 -------我是分割线(不要复制我,复制下面的内容)---
 ECHO " HELLO , GGLHY !"
 fsutil fsinfo volumeinfo c:\
 pause
 ----------我是分割线(不要复制我)-----------
 
 将其另存为:查看C盘卷序列号.bat
 运行即可查看C盘卷序列号
 看这里:Volumen Serial Number : 0X.....(16进制)
 
 
 另盘符可以自己更改!
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 设置回复可见是让刚入门的真心想学习的兄弟姐妹们看的。如果只是想观光,这种简单算法也就不必浪费阁下的时间了!/:017
 
 
 
   
 
   | 
 评分
查看全部评分
 |