某exe视频文件的密码找寻过程

自己花了很长时间才分析出来的,走了很多弯路。

初级水平,请批评指正。

先用PEID查壳,MoleBox v2.0 [Overlay] *的壳。按照黑鹰的“轻松解被MoleBox打包了的程序”视频教程,脱壳。得到源程序是Borland Delphi写的。拿出dede,得到注册按钮的地址:00494dd8。
用OllyICE加载未脱壳的exe视频文件,运行,再shift+f9忽略异常n次,直到出现注册对话框。在调试器OllyICE中找到00494dd8地址处,下断点,可能会提示此处是数据段,确认下断点吗?按“是”。
输入假注册码,确定后停在这里:
00494DD8    55              PUSH EBP
00494DD9    8BEC            MOV EBP,ESP
00494DDB    B9 52000000     MOV ECX,52
00494DE0    6A 00           PUSH 0
00494DE2    6A 00           PUSH 0
00494DE4    49              DEC ECX
00494DE5  ^ 75 F9           JNZ SHORT 00494DE0
00494DE7    53              PUSH EBX
00494DE8    56              PUSH ESI
00494DE9    57              PUSH EDI
00494DEA    8BD8            MOV EBX,EAX
00494DEC    33C0            XOR EAX,EAX
00494DEE    55              PUSH EBP
00494DEF    68 33564900     PUSH 00495633
00494DF4    64:FF30         PUSH DWORD PTR FS:[EAX]
00494DF7    64:8920         MOV DWORD PTR FS:[EAX],ESP
00494DFA    8D95 04FEFFFF   LEA EDX,DWORD PTR SS:[EBP-1FC]
00494E00    8B83 00030000   MOV EAX,DWORD PTR DS:[EBX+300]
00494E06    E8 598CFAFF     CALL 0043DA64
00494E0B    8B85 04FEFFFF   MOV EAX,DWORD PTR SS:[EBP-1FC]
00494E11    8D55 FC         LEA EDX,DWORD PTR SS:[EBP-4]
00494E14    E8 973BF7FF     CALL 004089B0
00494E19    8B45 FC         MOV EAX,DWORD PTR SS:[EBP-4]
00494E1C    E8 47FCF6FF     CALL 00404A68
00494E21    83F8 08         CMP EAX,8
00494E24    75 0C           JNZ SHORT 00494E32
00494E26    A1 2CDC4900     MOV EAX,DWORD PTR DS:[49DC2C]
00494E2B    8B00            MOV EAX,DWORD PTR DS:[EAX]
00494E2D    E8 4E4DFCFF     CALL 00459B80
00494E32    8B45 FC         MOV EAX,DWORD PTR SS:[EBP-4]
00494E35    E8 2EFCF6FF     CALL 00404A68
00494E3A    83F8 20         CMP EAX,20                                ‘’检查密码是不是32位。要32位才行。
00494E3D    0F85 C8000000   JNZ 00494F0B
00494E43    8D4D D8         LEA ECX,DWORD PTR SS:[EBP-28]
00494E46    BA 08000000     MOV EDX,8
00494E4B    8B45 FC         MOV EAX,DWORD PTR SS:[EBP-4]
00494E4E    E8 71ABF9FF     CALL 0042F9C4
00494E53    8D4D D4         LEA ECX,DWORD PTR SS:[EBP-2C]
00494E56    BA 18000000     MOV EDX,18
00494E5B    8B45 FC         MOV EAX,DWORD PTR SS:[EBP-4]
00494E5E    E8 D1ABF9FF     CALL 0042FA34
00494E63    8D95 ECFDFFFF   LEA EDX,DWORD PTR SS:[EBP-214]
00494E69    8B45 D8         MOV EAX,DWORD PTR SS:[EBP-28]            ; ''取得密码前8位
00494E6C    E8 B737FDFF     CALL 00468628
00494E71    8D85 ECFDFFFF   LEA EAX,DWORD PTR SS:[EBP-214]
00494E77    8D95 FCFDFFFF   LEA EDX,DWORD PTR SS:[EBP-204]
00494E7D    E8 1A38FDFF     CALL 0046869C                            ; ''通过密码前8位算出后16位+8位
00494E82    8B85 FCFDFFFF   MOV EAX,DWORD PTR SS:[EBP-204]
00494E88    8D8D 00FEFFFF   LEA ECX,DWORD PTR SS:[EBP-200]
00494E8E    BA 18000000     MOV EDX,18
00494E93    E8 2CABF9FF     CALL 0042F9C4                            ; ’‘取出前面算出的前16位  ------------ ①
00494E98    8B95 00FEFFFF   MOV EDX,DWORD PTR SS:[EBP-200]
00494E9E    8D45 D8         LEA EAX,DWORD PTR SS:[EBP-28]
00494EA1    E8 9AF9F6FF     CALL 00404840
00494EA6    8B45 D8         MOV EAX,DWORD PTR SS:[EBP-28]
00494EA9    8B55 D4         MOV EDX,DWORD PTR SS:[EBP-2C]
00494EAC    E8 03FDF6FF     CALL 00404BB4
00494EB1    0F95C0          SETNE AL
00494EB4    84C0            TEST AL,AL                               ; ''eax=1  要等于0才行
00494EB6    74 0F           JE SHORT 00494EC7                        ; ''no jmp 要跳才行
00494EB8    B8 4C564900     MOV EAX,0049564C
00494EBD    E8 9E7BF9FF     CALL 0042CA60                            ; '''出现播放密码格式不正确的提示。结论:密码格式应该是假密码的前8位+①
00494EC2    E9 F0060000     JMP 004955B7
00494EC7    8B45 D8         MOV EAX,DWORD PTR SS:[EBP-28]
00494ECA    8B55 D4         MOV EDX,DWORD PTR SS:[EBP-2C]
00494ECD    E8 E2FCF6FF     CALL 00404BB4
00494ED2    0F95C0          SETNE AL
00494ED5    84C0            TEST AL,AL
00494ED7    0F85 DA060000   JNZ 004955B7
00494EDD    8B45 D8         MOV EAX,DWORD PTR SS:[EBP-28]
00494EE0    8B55 D4         MOV EDX,DWORD PTR SS:[EBP-2C]
00494EE3    E8 CCFCF6FF     CALL 00404BB4
00494EE8    75 21           JNZ SHORT 00494F0B
00494EEA    8D8D E8FDFFFF   LEA ECX,DWORD PTR SS:[EBP-218]
00494EF0    BA 08000000     MOV EDX,8
00494EF5    8B45 FC         MOV EAX,DWORD PTR SS:[EBP-4]
00494EF8    E8 C7AAF9FF     CALL 0042F9C4
00494EFD    8B95 E8FDFFFF   MOV EDX,DWORD PTR SS:[EBP-218]
00494F03    8D45 FC         LEA EAX,DWORD PTR SS:[EBP-4]
00494F06    E8 35F9F6FF     CALL 00404840
00494F0B    8B45 FC         MOV EAX,DWORD PTR SS:[EBP-4]
00494F0E    E8 55FBF6FF     CALL 00404A68
00494F13    83F8 08         CMP EAX,8
00494F16    75 12           JNZ SHORT 00494F2A
00494F18    B8 E0FD4900     MOV EAX,0049FDE0
00494F1D    8B55 FC         MOV EDX,DWORD PTR SS:[EBP-4]
00494F20    E8 D7F8F6FF     CALL 004047FC
00494F25    E9 50010000     JMP 0049507A
00494F2A    8D95 E4FDFFFF   LEA EDX,DWORD PTR SS:[EBP-21C]
00494F30    8B45 FC         MOV EAX,DWORD PTR SS:[EBP-4]
00494F33    E8 EC350000     CALL 00498524
00494F38    8B85 E4FDFFFF   MOV EAX,DWORD PTR SS:[EBP-21C]
00494F3E    BA 68564900     MOV EDX,00495668
00494F43    E8 54430000     CALL 0049929C
00494F48    8BF0            MOV ESI,EAX
00494F4A    8BC6            MOV EAX,ESI
00494F4C    8B10            MOV EDX,DWORD PTR DS:[EAX]
00494F4E    FF52 14         CALL DWORD PTR DS:[EDX+14]
00494F51    83F8 04         CMP EAX,4
00494F54    0F85 0A010000   JNZ 00495064
00494F5A    8D8D E0FDFFFF   LEA ECX,DWORD PTR SS:[EBP-220]
00494F60    33D2            XOR EDX,EDX
00494F62    8BC6            MOV EAX,ESI
00494F64    8B38            MOV EDI,DWORD PTR DS:[EAX]
00494F66    FF57 0C         CALL DWORD PTR DS:[EDI+C]
00494F69    8B95 E0FDFFFF   MOV EDX,DWORD PTR SS:[EBP-220]
00494F6F    B8 E0FD4900     MOV EAX,0049FDE0
00494F74    E8 83F8F6FF     CALL 004047FC
00494F79    8D4D E8         LEA ECX,DWORD PTR SS:[EBP-18]
00494F7C    BA 01000000     MOV EDX,1
00494F81    8BC6            MOV EAX,ESI
00494F83    8B38            MOV EDI,DWORD PTR DS:[EAX]
00494F85    FF57 0C         CALL DWORD PTR DS:[EDI+C]
00494F88    8D4D E0         LEA ECX,DWORD PTR SS:[EBP-20]
00494F8B    BA 02000000     MOV EDX,2
00494F90    8BC6            MOV EAX,ESI
00494F92    8B38            MOV EDI,DWORD PTR DS:[EAX]
00494F94    FF57 0C         CALL DWORD PTR DS:[EDI+C]
00494F97    8D4D E4         LEA ECX,DWORD PTR SS:[EBP-1C]
00494F9A    BA 03000000     MOV EDX,3
00494F9F    8BC6            MOV EAX,ESI
00494FA1    8B38            MOV EDI,DWORD PTR DS:[EAX]
00494FA3    FF57 0C         CALL DWORD PTR DS:[EDI+C]
00494FA6    8D4D DC         LEA ECX,DWORD PTR SS:[EBP-24]
00494FA9    BA 04000000     MOV EDX,4
00494FAE    8B45 E4         MOV EAX,DWORD PTR SS:[EBP-1C]
00494FB1    E8 7EAAF9FF     CALL 0042FA34
00494FB6    8B45 E4         MOV EAX,DWORD PTR SS:[EBP-1C]
00494FB9    E8 AAFAF6FF     CALL 00404A68
00494FBE    8BD0            MOV EDX,EAX
00494FC0    83EA 04         SUB EDX,4
00494FC3    8D8D DCFDFFFF   LEA ECX,DWORD PTR SS:[EBP-224]
00494FC9    8B45 E4         MOV EAX,DWORD PTR SS:[EBP-1C]
00494FCC    E8 F3A9F9FF     CALL 0042F9C4
00494FD1    8B95 DCFDFFFF   MOV EDX,DWORD PTR SS:[EBP-224]
00494FD7    8D45 E4         LEA EAX,DWORD PTR SS:[EBP-1C]
00494FDA    E8 61F8F6FF     CALL 00404840
00494FDF    FF35 E0FD4900   PUSH DWORD PTR DS:[49FDE0]
00494FE5    68 68564900     PUSH 00495668
00494FEA    FF75 E8         PUSH DWORD PTR SS:[EBP-18]
00494FED    68 68564900     PUSH 00495668
00494FF2    FF75 E0         PUSH DWORD PTR SS:[EBP-20]
00494FF5    68 68564900     PUSH 00495668
00494FFA    FF75 E4         PUSH DWORD PTR SS:[EBP-1C]
00494FFD    8D85 D0FDFFFF   LEA EAX,DWORD PTR SS:[EBP-230]
00495003    BA 07000000     MOV EDX,7
00495008    E8 1BFBF6FF     CALL 00404B28
0049500D    8B85 D0FDFFFF   MOV EAX,DWORD PTR SS:[EBP-230]
00495013    8D95 ECFDFFFF   LEA EDX,DWORD PTR SS:[EBP-214]
00495019    E8 0A36FDFF     CALL 00468628
0049501E    8D85 ECFDFFFF   LEA EAX,DWORD PTR SS:[EBP-214]
00495024    8D95 D4FDFFFF   LEA EDX,DWORD PTR SS:[EBP-22C]
0049502A    E8 6D36FDFF     CALL 0046869C
0049502F    8B85 D4FDFFFF   MOV EAX,DWORD PTR SS:[EBP-22C]
00495035    8D8D D8FDFFFF   LEA ECX,DWORD PTR SS:[EBP-228]
0049503B    BA 04000000     MOV EDX,4
00495040    E8 7FA9F9FF     CALL 0042F9C4
00495045    8B85 D8FDFFFF   MOV EAX,DWORD PTR SS:[EBP-228]
0049504B    8B55 DC         MOV EDX,DWORD PTR SS:[EBP-24]
0049504E    E8 61FBF6FF     CALL 00404BB4
00495053    74 1E           JE SHORT 00495073
00495055    B8 74564900     MOV EAX,00495674
0049505A    E8 017AF9FF     CALL 0042CA60
0049505F    E9 53050000     JMP 004955B7
00495064    B8 90564900     MOV EAX,00495690
00495069    E8 F279F9FF     CALL 0042CA60                            ; ''播放授权不正确
0049506E    E9 44050000     JMP 004955B7
00495073    8BC6            MOV EAX,ESI
00495075    E8 DEE9F6FF     CALL 00403A58
0049507A    8D95 C4FDFFFF   LEA EDX,DWORD PTR SS:[EBP-23C]
00495080    A1 BCDA4900     MOV EAX,DWORD PTR DS:[49DABC]
00495085    8B00            MOV EAX,DWORD PTR DS:[EAX]
00495087    E8 98340000     CALL 00498524
0049508C    FFB5 C4FDFFFF   PUSH DWORD PTR SS:[EBP-23C]
00495092    8D95 C0FDFFFF   LEA EDX,DWORD PTR SS:[EBP-240]
00495098    8B83 FC020000   MOV EAX,DWORD PTR DS:[EBX+2FC]
0049509E    E8 C189FAFF     CALL 0043DA64
004950A3    FFB5 C0FDFFFF   PUSH DWORD PTR SS:[EBP-240]
004950A9    68 AC564900     PUSH 004956AC
004950AE    68 B8564900     PUSH 004956B8
004950B3    68 C4564900     PUSH 004956C4
004950B8    68 D0564900     PUSH 004956D0
004950BD    68 DC564900     PUSH 004956DC
004950C2    68 E8564900     PUSH 004956E8
004950C7    68 C4564900     PUSH 004956C4
004950CC    68 F4564900     PUSH 004956F4
004950D1    68 B8564900     PUSH 004956B8
004950D6    68 00574900     PUSH 00495700
004950DB    68 0C574900     PUSH 0049570C
004950E0    68 18574900     PUSH 00495718
004950E5    68 B8564900     PUSH 004956B8
004950EA    68 AC564900     PUSH 004956AC
004950EF    68 0C574900     PUSH 0049570C
004950F4    68 C4564900     PUSH 004956C4
004950F9    68 DC564900     PUSH 004956DC
004950FE    68 24574900     PUSH 00495724
00495103    68 18574900     PUSH 00495718
00495108    68 DC564900     PUSH 004956DC
0049510D    68 30574900     PUSH 00495730
00495112    68 D0564900     PUSH 004956D0
00495117    8D85 C8FDFFFF   LEA EAX,DWORD PTR SS:[EBP-238]
0049511D    BA 18000000     MOV EDX,18
00495122    E8 01FAF6FF     CALL 00404B28
00495127    8B85 C8FDFFFF   MOV EAX,DWORD PTR SS:[EBP-238]
0049512D    8D95 CCFDFFFF   LEA EDX,DWORD PTR SS:[EBP-234]
00495133    E8 6436F7FF     CALL 0040879C
00495138    8B85 CCFDFFFF   MOV EAX,DWORD PTR SS:[EBP-234]
0049513E    8D55 F8         LEA EDX,DWORD PTR SS:[EBP-8]
00495141    E8 CA340000     CALL 00498610
00495146    8D95 A8FDFFFF   LEA EDX,DWORD PTR SS:[EBP-258]
0049514C    8B45 F8         MOV EAX,DWORD PTR SS:[EBP-8]
0049514F    E8 D0330000     CALL 00498524
00495154    FFB5 A8FDFFFF   PUSH DWORD PTR SS:[EBP-258]
0049515A    68 3C574900     PUSH 0049573C                            ; ASCII "yaomediakj1jf"
0049515F    68 54574900     PUSH 00495754
00495164    68 60574900     PUSH 00495760                            ; ASCII "ly"
00495169    68 6C574900     PUSH 0049576C                            ; ASCII "12.1a.4"
0049516E    68 7C574900     PUSH 0049577C                            ; ASCII "25"
00495173    68 B8564900     PUSH 004956B8
00495178    68 C4564900     PUSH 004956C4
0049517D    68 D0564900     PUSH 004956D0
00495182    68 DC564900     PUSH 004956DC
00495187    68 E8564900     PUSH 004956E8
0049518C    68 C4564900     PUSH 004956C4
00495191    68 F4564900     PUSH 004956F4
00495196    68 B8564900     PUSH 004956B8
0049519B    68 00574900     PUSH 00495700
004951A0    68 0C574900     PUSH 0049570C
004951A5    68 0C574900     PUSH 0049570C
004951AA    68 18574900     PUSH 00495718
004951AF    68 B8564900     PUSH 004956B8
004951B4    68 AC564900     PUSH 004956AC
004951B9    68 0C574900     PUSH 0049570C
004951BE    68 C4564900     PUSH 004956C4
004951C3    68 DC564900     PUSH 004956DC
004951C8    68 24574900     PUSH 00495724
004951CD    68 18574900     PUSH 00495718
004951D2    68 DC564900     PUSH 004956DC
004951D7    68 30574900     PUSH 00495730
004951DC    68 D0564900     PUSH 004956D0
004951E1    8D85 ACFDFFFF   LEA EAX,DWORD PTR SS:[EBP-254]
004951E7    BA 1C000000     MOV EDX,1C
004951EC    E8 37F9F6FF     CALL 00404B28
004951F1    8B85 ACFDFFFF   MOV EAX,DWORD PTR SS:[EBP-254]
004951F7    8D95 B0FDFFFF   LEA EDX,DWORD PTR SS:[EBP-250]
004951FD    E8 0E340000     CALL 00498610
00495202    8B85 B0FDFFFF   MOV EAX,DWORD PTR SS:[EBP-250]
00495208    8D95 B4FDFFFF   LEA EDX,DWORD PTR SS:[EBP-24C]
0049520E    E8 8935F7FF     CALL 0040879C
00495213    8B85 B4FDFFFF   MOV EAX,DWORD PTR SS:[EBP-24C]
00495219    8D95 ECFDFFFF   LEA EDX,DWORD PTR SS:[EBP-214]
0049521F    E8 0434FDFF     CALL 00468628                            ; '''mediaplayer
00495224    8D85 ECFDFFFF   LEA EAX,DWORD PTR SS:[EBP-214]
0049522A    8D95 B8FDFFFF   LEA EDX,DWORD PTR SS:[EBP-248]
00495230    E8 6734FDFF     CALL 0046869C                            ; '''根据电脑标识等算出一堆字符。--------②
00495235    8B85 B8FDFFFF   MOV EAX,DWORD PTR SS:[EBP-248]
0049523B    8D8D BCFDFFFF   LEA ECX,DWORD PTR SS:[EBP-244]
00495241    BA 02000000     MOV EDX,2
00495246    E8 79A7F9FF     CALL 0042F9C4                            ‘’取出②的前2位字符,我这里是“b1”
0049524B    8B85 BCFDFFFF   MOV EAX,DWORD PTR SS:[EBP-244]
00495251    8D95 ECFDFFFF   LEA EDX,DWORD PTR SS:[EBP-214]
00495257    E8 CC33FDFF     CALL 00468628                            ; '''mediaplayer
0049525C    8D85 ECFDFFFF   LEA EAX,DWORD PTR SS:[EBP-214]
00495262    8D55 F0         LEA EDX,DWORD PTR SS:[EBP-10]
00495265    E8 3234FDFF     CALL 0046869C                            ; '''mediaplayer   要进
0049526A    8D8D A4FDFFFF   LEA ECX,DWORD PTR SS:[EBP-25C]
00495270    BA 02000000     MOV EDX,2
00495275    A1 E0FD4900     MOV EAX,DWORD PTR DS:[49FDE0]
0049527A    E8 45A7F9FF     CALL 0042F9C4                            ‘’取出假密码的前2位字符,我这里是“c3”
0049527F    8B85 A4FDFFFF   MOV EAX,DWORD PTR SS:[EBP-25C]
00495285    8D95 ECFDFFFF   LEA EDX,DWORD PTR SS:[EBP-214]
0049528B    E8 9833FDFF     CALL 00468628                            
00495290    8D85 ECFDFFFF   LEA EAX,DWORD PTR SS:[EBP-214]
00495296    8D55 EC         LEA EDX,DWORD PTR SS:[EBP-14]
00495299    E8 FE33FDFF     CALL 0046869C                            
0049529E    8B45 F0         MOV EAX,DWORD PTR SS:[EBP-10]
004952A1    8B55 EC         MOV EDX,DWORD PTR SS:[EBP-14]
004952A4    E8 0BF9F6FF     CALL 00404BB4                            ; '''要看,也是一个cmp
004952A9    74 0F           JE SHORT 004952BA
004952AB    B8 88574900     MOV EAX,00495788
004952B0    E8 AB77F9FF     CALL 0042CA60                            ; ''播放密码不正确。结论:正确密码的前两位应该是②的前2位.将密码的前两位改过来(还需要重新进行第一步算出后16位,然后再用算出的8位+16位密码往下进行),
004952B5    E9 FD020000     JMP 004955B7
004952BA    8B83 10030000   MOV EAX,DWORD PTR DS:[EBX+310]
004952C0    8B10            MOV EDX,DWORD PTR DS:[EAX]
004952C2    FF92 C8000000   CALL DWORD PTR DS:[EDX+C8]
004952C8    84C0            TEST AL,AL
004952CA    0F84 F1000000   JE 004953C1
004952D0    68 A0574900     PUSH 004957A0                            ; ASCII "c:\china-drm\"
004952D5    8D95 9CFDFFFF   LEA EDX,DWORD PTR SS:[EBP-264]
004952DB    A1 18DB4900     MOV EAX,DWORD PTR DS:[49DB18]
004952E0    8B00            MOV EAX,DWORD PTR DS:[EAX]
004952E2    E8 D185FCFF     CALL 0045D8B8
004952E7    8B85 9CFDFFFF   MOV EAX,DWORD PTR SS:[EBP-264]
004952ED    8D95 ECFDFFFF   LEA EDX,DWORD PTR SS:[EBP-214]
004952F3    E8 3033FDFF     CALL 00468628
004952F8    8D85 ECFDFFFF   LEA EAX,DWORD PTR SS:[EBP-214]
004952FE    8D95 A0FDFFFF   LEA EDX,DWORD PTR SS:[EBP-260]
00495304    E8 9333FDFF     CALL 0046869C
00495309    FFB5 A0FDFFFF   PUSH DWORD PTR SS:[EBP-260]
0049530F    68 B8574900     PUSH 004957B8                            ; ASCII ".ini"
00495314    8D45 F4         LEA EAX,DWORD PTR SS:[EBP-C]
00495317    BA 03000000     MOV EDX,3
0049531C    E8 07F8F6FF     CALL 00404B28
00495321    8B45 F4         MOV EAX,DWORD PTR SS:[EBP-C]
00495324    E8 F73DF7FF     CALL 00409120
00495329    84C0            TEST AL,AL
0049532B    75 0D           JNZ SHORT 0049533A
0049532D    8B45 F4         MOV EAX,DWORD PTR SS:[EBP-C]
00495330    E8 BF3CF7FF     CALL 00408FF4
00495335    E8 763DF7FF     CALL 004090B0
0049533A    8B55 F4         MOV EDX,DWORD PTR SS:[EBP-C]
0049533D    8D85 08FEFFFF   LEA EAX,DWORD PTR SS:[EBP-1F8]
00495343    E8 74DBF6FF     CALL 00402EBC
00495348    8D85 08FEFFFF   LEA EAX,DWORD PTR SS:[EBP-1F8]
0049534E    E8 05D9F6FF     CALL 00402C58
00495353    E8 E4D5F6FF     CALL 0040293C
00495358    8D95 94FDFFFF   LEA EDX,DWORD PTR SS:[EBP-26C]
0049535E    8B83 00030000   MOV EAX,DWORD PTR DS:[EBX+300]
00495364    E8 FB86FAFF     CALL 0043DA64
00495369    8B85 94FDFFFF   MOV EAX,DWORD PTR SS:[EBP-26C]
0049536F    8D95 98FDFFFF   LEA EDX,DWORD PTR SS:[EBP-268]
00495375    E8 96320000     CALL 00498610
0049537A    8B95 98FDFFFF   MOV EDX,DWORD PTR SS:[EBP-268]
00495380    8D85 08FEFFFF   LEA EAX,DWORD PTR SS:[EBP-1F8]
00495386    E8 F9FAF6FF     CALL 00404E84
0049538B    E8 88E1F6FF     CALL 00403518
00495390    E8 A7D5F6FF     CALL 0040293C
00495395    8D85 08FEFFFF   LEA EAX,DWORD PTR SS:[EBP-1F8]
0049539B    E8 E4DBF6FF     CALL 00402F84
004953A0    E8 97D5F6FF     CALL 0040293C
004953A5    8B45 F0         MOV EAX,DWORD PTR SS:[EBP-10]
004953A8    8B55 EC         MOV EDX,DWORD PTR SS:[EBP-14]
004953AB    E8 04F8F6FF     CALL 00404BB4                            ; ‘’‘又要比较,要跳!
004953B0    74 0F           JE SHORT 004953C1
004953B2    B8 88574900     MOV EAX,00495788
004953B7    E8 A476F9FF     CALL 0042CA60
004953BC    E9 F6010000     JMP 004955B7
004953C1    8B45 F0         MOV EAX,DWORD PTR SS:[EBP-10]
004953C4    8B55 EC         MOV EDX,DWORD PTR SS:[EBP-14]
004953C7    E8 E8F7F6FF     CALL 00404BB4
004953CC    0F85 E5010000   JNZ 004955B7
004953D2    8D95 78FDFFFF   LEA EDX,DWORD PTR SS:[EBP-288]
004953D8    8B45 F8         MOV EAX,DWORD PTR SS:[EBP-8]
004953DB    E8 44310000     CALL 00498524
004953E0    FFB5 78FDFFFF   PUSH DWORD PTR SS:[EBP-288]
004953E6    68 C8574900     PUSH 004957C8                            ; ASCII "yaomediakj2jf"
004953EB    68 E0574900     PUSH 004957E0                            ; ASCII "mm"
004953F0    68 60574900     PUSH 00495760                            ; ASCII "ly"
004953F5    68 6C574900     PUSH 0049576C                            ; ASCII "12.1a.4"
004953FA    68 7C574900     PUSH 0049577C                            ; ASCII "25"
004953FF    68 B8564900     PUSH 004956B8
00495404    68 C4564900     PUSH 004956C4
00495409    68 D0564900     PUSH 004956D0
0049540E    68 DC564900     PUSH 004956DC
00495413    68 E8564900     PUSH 004956E8
00495418    68 C4564900     PUSH 004956C4
0049541D    68 F4564900     PUSH 004956F4
00495422    68 B8564900     PUSH 004956B8
00495427    68 00574900     PUSH 00495700
0049542C    68 0C574900     PUSH 0049570C
00495431    68 0C574900     PUSH 0049570C
00495436    68 0C574900     PUSH 0049570C
0049543B    68 18574900     PUSH 00495718
00495440    68 B8564900     PUSH 004956B8
00495445    68 AC564900     PUSH 004956AC
0049544A    68 0C574900     PUSH 0049570C
0049544F    68 C4564900     PUSH 004956C4
00495454    68 DC564900     PUSH 004956DC
00495459    68 24574900     PUSH 00495724
0049545E    68 18574900     PUSH 00495718
00495463    68 DC564900     PUSH 004956DC
00495468    68 30574900     PUSH 00495730
0049546D    68 D0564900     PUSH 004956D0
00495472    8D85 7CFDFFFF   LEA EAX,DWORD PTR SS:[EBP-284]
00495478    BA 1D000000     MOV EDX,1D
0049547D    E8 A6F6F6FF     CALL 00404B28
00495482    8B85 7CFDFFFF   MOV EAX,DWORD PTR SS:[EBP-284]
00495488    8D95 80FDFFFF   LEA EDX,DWORD PTR SS:[EBP-280]
0049548E    E8 7D310000     CALL 00498610
00495493    8B85 80FDFFFF   MOV EAX,DWORD PTR SS:[EBP-280]
00495499    8D95 84FDFFFF   LEA EDX,DWORD PTR SS:[EBP-27C]
0049549F    E8 F832F7FF     CALL 0040879C
004954A4    8B85 84FDFFFF   MOV EAX,DWORD PTR SS:[EBP-27C]
004954AA    8D95 ECFDFFFF   LEA EDX,DWORD PTR SS:[EBP-214]
004954B0    E8 7331FDFF     CALL 00468628
004954B5    8D85 ECFDFFFF   LEA EAX,DWORD PTR SS:[EBP-214]
004954BB    8D95 88FDFFFF   LEA EDX,DWORD PTR SS:[EBP-278]
004954C1    E8 D631FDFF     CALL 0046869C                            ; ’‘计算
004954C6    8B85 88FDFFFF   MOV EAX,DWORD PTR SS:[EBP-278]
004954CC    8D8D 8CFDFFFF   LEA ECX,DWORD PTR SS:[EBP-274]
004954D2    BA 0E000000     MOV EDX,0E
004954D7    E8 E8A4F9FF     CALL 0042F9C4
004954DC    8B85 8CFDFFFF   MOV EAX,DWORD PTR SS:[EBP-274]           ; ’‘取出前面算出的前14位
004954E2    8D8D 90FDFFFF   LEA ECX,DWORD PTR SS:[EBP-270]
004954E8    BA 04000000     MOV EDX,4
004954ED    E8 42A5F9FF     CALL 0042FA34                            ; ’‘取出前面取出的前14位的最后4位 --------③
004954F2    8B85 90FDFFFF   MOV EAX,DWORD PTR SS:[EBP-270]
004954F8    8D95 ECFDFFFF   LEA EDX,DWORD PTR SS:[EBP-214]
004954FE    E8 2531FDFF     CALL 00468628
00495503    8D85 ECFDFFFF   LEA EAX,DWORD PTR SS:[EBP-214]
00495509    8D55 F0         LEA EDX,DWORD PTR SS:[EBP-10]
0049550C    E8 8B31FDFF     CALL 0046869C                            ; ’‘计算
00495511    8D8D 70FDFFFF   LEA ECX,DWORD PTR SS:[EBP-290]
00495517    BA 06000000     MOV EDX,6
0049551C    A1 E0FD4900     MOV EAX,DWORD PTR DS:[49FDE0]
00495521    E8 9EA4F9FF     CALL 0042F9C4                            ; ’‘取出假密码的前6位
00495526    8B85 70FDFFFF   MOV EAX,DWORD PTR SS:[EBP-290]
0049552C    8D8D 74FDFFFF   LEA ECX,DWORD PTR SS:[EBP-28C]
00495532    BA 04000000     MOV EDX,4
00495537    E8 F8A4F9FF     CALL 0042FA34                            ; ’‘取出假密码的前6位的最后4位 -----------------④
0049553C    8B85 74FDFFFF   MOV EAX,DWORD PTR SS:[EBP-28C]
00495542    8D95 ECFDFFFF   LEA EDX,DWORD PTR SS:[EBP-214]
00495548    E8 DB30FDFF     CALL 00468628
0049554D    8D85 ECFDFFFF   LEA EAX,DWORD PTR SS:[EBP-214]
00495553    8D55 EC         LEA EDX,DWORD PTR SS:[EBP-14]
00495556    E8 4131FDFF     CALL 0046869C                            ; ’‘计算
0049555B    8B45 F0         MOV EAX,DWORD PTR SS:[EBP-10]
0049555E    8B55 EC         MOV EDX,DWORD PTR SS:[EBP-14]
00495561    E8 4EF6F6FF     CALL 00404BB4
00495566    74 0C           JE SHORT 00495574                        ; ‘’这个也要跳
00495568    B8 88574900     MOV EAX,00495788
0049556D    E8 EE74F9FF     CALL 0042CA60                        ''播放密码不正确。结论:正确密码的前两位应该是②的前2位,第5-8位应该是③.将密码改过来重复第一步。
00495572    EB 43           JMP SHORT 004955B7
00495574    8B45 FC         MOV EAX,DWORD PTR SS:[EBP-4]
00495577    E8 ECF4F6FF     CALL 00404A68
0049557C    83F8 08         CMP EAX,8
0049557F    7E 0E           JLE SHORT 0049558F
00495581    8B4D E0         MOV ECX,DWORD PTR SS:[EBP-20]
00495584    8B55 E4         MOV EDX,DWORD PTR SS:[EBP-1C]
00495587    8B45 E8         MOV EAX,DWORD PTR SS:[EBP-18]
0049558A    E8 FD070000     CALL 00495D8C
0049558F    A1 60D84900     MOV EAX,DWORD PTR DS:[49D860]
00495594    BA EC574900     MOV EDX,004957EC                         ; ASCII "ok"
00495599    E8 5EF2F6FF     CALL 004047FC
0049559E    8B55 EC         MOV EDX,DWORD PTR SS:[EBP-14]
004955A1    8B45 F0         MOV EAX,DWORD PTR SS:[EBP-10]
004955A4    E8 2F32F7FF     CALL 004087D8
004955A9    85C0            TEST EAX,EAX
004955AB    75 0A           JNZ SHORT 004955B7                       ; ‘’不能跳
004955AD    A1 D0FD4900     MOV EAX,DWORD PTR DS:[49FDD0]
004955B2    E8 C945FCFF     CALL 00459B80
004955B7    33C0            XOR EAX,EAX
004955B9    5A              POP EDX
004955BA    59              POP ECX
004955BB    59              POP ECX
004955BC    64:8910         MOV DWORD PTR FS:[EAX],EDX
004955BF    68 3A564900     PUSH 0049563A
004955C4    8D85 70FDFFFF   LEA EAX,DWORD PTR SS:[EBP-290]
004955CA    BA 09000000     MOV EDX,9
004955CF    E8 F8F1F6FF     CALL 004047CC
004955D4    8D85 94FDFFFF   LEA EAX,DWORD PTR SS:[EBP-26C]
004955DA    E8 C9F1F6FF     CALL 004047A8
004955DF    8D85 98FDFFFF   LEA EAX,DWORD PTR SS:[EBP-268]
004955E5    BA 0A000000     MOV EDX,0A
004955EA    E8 DDF1F6FF     CALL 004047CC
004955EF    8D85 C0FDFFFF   LEA EAX,DWORD PTR SS:[EBP-240]
004955F5    E8 AEF1F6FF     CALL 004047A8
004955FA    8D85 C4FDFFFF   LEA EAX,DWORD PTR SS:[EBP-23C]
00495600    BA 0A000000     MOV EDX,0A
00495605    E8 C2F1F6FF     CALL 004047CC
0049560A    8D85 FCFDFFFF   LEA EAX,DWORD PTR SS:[EBP-204]
00495610    BA 02000000     MOV EDX,2
00495615    E8 B2F1F6FF     CALL 004047CC
0049561A    8D85 04FEFFFF   LEA EAX,DWORD PTR SS:[EBP-1FC]
00495620    E8 83F1F6FF     CALL 004047A8
00495625    8D45 D4         LEA EAX,DWORD PTR SS:[EBP-2C]
00495628    BA 0B000000     MOV EDX,0B
0049562D    E8 9AF1F6FF     CALL 004047CC
00495632    C3              RET                                          到这里,确定按钮的程序就走完了。按F9,程序一闪就退出了?怎么回事?
                                                                           想起dede反编译的本窗口关闭的地址:004957f0。重新运行程序,在004957f0下断点。




004957F0    55              PUSH EBP
004957F1    8BEC            MOV EBP,ESP
004957F3    51              PUSH ECX
004957F4    B9 0C000000     MOV ECX,0C
004957F9    6A 00           PUSH 0
004957FB    6A 00           PUSH 0
004957FD    49              DEC ECX
004957FE  ^ 75 F9           JNZ SHORT 004957F9
00495800    874D FC         XCHG DWORD PTR SS:[EBP-4],ECX
00495803    53              PUSH EBX
00495804    56              PUSH ESI
00495805    57              PUSH EDI
00495806    8BD8            MOV EBX,EAX
00495808    33C0            XOR EAX,EAX
0049580A    55              PUSH EBP
0049580B    68 F95B4900     PUSH 00495BF9
00495810    64:FF30         PUSH DWORD PTR FS:[EAX]
00495813    64:8920         MOV DWORD PTR FS:[EAX],ESP
00495816    8D55 E4         LEA EDX,DWORD PTR SS:[EBP-1C]
00495819    A1 BCDA4900     MOV EAX,DWORD PTR DS:[49DABC]
0049581E    8B00            MOV EAX,DWORD PTR DS:[EAX]
00495820    E8 FF2C0000     CALL 00498524
00495825    FF75 E4         PUSH DWORD PTR SS:[EBP-1C]
00495828    8D55 E0         LEA EDX,DWORD PTR SS:[EBP-20]
0049582B    8B83 FC020000   MOV EAX,DWORD PTR DS:[EBX+2FC]
00495831    E8 2E82FAFF     CALL 0043DA64
00495836    FF75 E0         PUSH DWORD PTR SS:[EBP-20]
00495839    68 105C4900     PUSH 00495C10
0049583E    68 1C5C4900     PUSH 00495C1C
00495843    68 285C4900     PUSH 00495C28
00495848    68 345C4900     PUSH 00495C34
0049584D    68 405C4900     PUSH 00495C40
00495852    68 4C5C4900     PUSH 00495C4C
00495857    68 285C4900     PUSH 00495C28
0049585C    68 585C4900     PUSH 00495C58
00495861    68 1C5C4900     PUSH 00495C1C
00495866    68 645C4900     PUSH 00495C64
0049586B    68 705C4900     PUSH 00495C70
00495870    68 7C5C4900     PUSH 00495C7C
00495875    68 1C5C4900     PUSH 00495C1C
0049587A    68 105C4900     PUSH 00495C10
0049587F    68 705C4900     PUSH 00495C70
00495884    68 285C4900     PUSH 00495C28
00495889    68 405C4900     PUSH 00495C40
0049588E    68 885C4900     PUSH 00495C88
00495893    68 7C5C4900     PUSH 00495C7C
00495898    68 405C4900     PUSH 00495C40
0049589D    68 945C4900     PUSH 00495C94
004958A2    68 345C4900     PUSH 00495C34
004958A7    8D45 E8         LEA EAX,DWORD PTR SS:[EBP-18]
004958AA    BA 18000000     MOV EDX,18
004958AF    E8 74F2F6FF     CALL 00404B28
004958B4    8B45 E8         MOV EAX,DWORD PTR SS:[EBP-18]
004958B7    8D55 EC         LEA EDX,DWORD PTR SS:[EBP-14]
004958BA    E8 DD2EF7FF     CALL 0040879C
004958BF    8B45 EC         MOV EAX,DWORD PTR SS:[EBP-14]
004958C2    8D55 F4         LEA EDX,DWORD PTR SS:[EBP-C]
004958C5    E8 462D0000     CALL 00498610
004958CA    8D55 B4         LEA EDX,DWORD PTR SS:[EBP-4C]
004958CD    8B45 F4         MOV EAX,DWORD PTR SS:[EBP-C]
004958D0    E8 4F2C0000     CALL 00498524
004958D5    FF75 B4         PUSH DWORD PTR SS:[EBP-4C]
004958D8    68 A05C4900     PUSH 00495CA0                            ; ASCII "yaomediakj3jf"
004958DD    68 B85C4900     PUSH 00495CB8                            ; ASCII "mmm"
004958E2    68 C45C4900     PUSH 00495CC4                            ; ASCII "ly"
004958E7    68 D05C4900     PUSH 00495CD0                            ; ASCII "12.1a.4"
004958EC    68 E05C4900     PUSH 00495CE0                            ; ASCII "25"
004958F1    68 1C5C4900     PUSH 00495C1C
004958F6    68 285C4900     PUSH 00495C28
004958FB    68 345C4900     PUSH 00495C34
00495900    68 405C4900     PUSH 00495C40
00495905    68 4C5C4900     PUSH 00495C4C
0049590A    68 285C4900     PUSH 00495C28
0049590F    68 585C4900     PUSH 00495C58
00495914    68 1C5C4900     PUSH 00495C1C
00495919    68 645C4900     PUSH 00495C64
0049591E    68 705C4900     PUSH 00495C70
00495923    68 705C4900     PUSH 00495C70
00495928    68 705C4900     PUSH 00495C70
0049592D    68 705C4900     PUSH 00495C70
00495932    68 7C5C4900     PUSH 00495C7C
00495937    68 1C5C4900     PUSH 00495C1C
0049593C    68 105C4900     PUSH 00495C10
00495941    68 705C4900     PUSH 00495C70
00495946    68 285C4900     PUSH 00495C28
0049594B    68 405C4900     PUSH 00495C40
00495950    68 885C4900     PUSH 00495C88
00495955    68 7C5C4900     PUSH 00495C7C
0049595A    68 405C4900     PUSH 00495C40
0049595F    68 945C4900     PUSH 00495C94
00495964    68 345C4900     PUSH 00495C34
00495969    8D45 B8         LEA EAX,DWORD PTR SS:[EBP-48]
0049596C    BA 1E000000     MOV EDX,1E
00495971    E8 B2F1F6FF     CALL 00404B28
00495976    8B45 B8         MOV EAX,DWORD PTR SS:[EBP-48]
00495979    8D55 BC         LEA EDX,DWORD PTR SS:[EBP-44]
0049597C    E8 8F2C0000     CALL 00498610
00495981    8B45 BC         MOV EAX,DWORD PTR SS:[EBP-44]
00495984    8D55 C0         LEA EDX,DWORD PTR SS:[EBP-40]
00495987    E8 102EF7FF     CALL 0040879C
0049598C    8B45 C0         MOV EAX,DWORD PTR SS:[EBP-40]
0049598F    8D55 D0         LEA EDX,DWORD PTR SS:[EBP-30]
00495992    E8 912CFDFF     CALL 00468628
00495997    8D45 D0         LEA EAX,DWORD PTR SS:[EBP-30]
0049599A    8D55 C4         LEA EDX,DWORD PTR SS:[EBP-3C]
0049599D    E8 FA2CFDFF     CALL 0046869C                            ; 计算出一堆字符
004959A2    8B45 C4         MOV EAX,DWORD PTR SS:[EBP-3C]
004959A5    8D4D C8         LEA ECX,DWORD PTR SS:[EBP-38]
004959A8    BA 18000000     MOV EDX,18
004959AD    E8 12A0F9FF     CALL 0042F9C4
004959B2    8B45 C8         MOV EAX,DWORD PTR SS:[EBP-38]
004959B5    8D4D CC         LEA ECX,DWORD PTR SS:[EBP-34]
004959B8    BA 02000000     MOV EDX,2
004959BD    E8 72A0F9FF     CALL 0042FA34                            ; 取出两位字符-----------------------⑤
004959C2    8B45 CC         MOV EAX,DWORD PTR SS:[EBP-34]
004959C5    8D55 D0         LEA EDX,DWORD PTR SS:[EBP-30]
004959C8    E8 5B2CFDFF     CALL 00468628
004959CD    8D45 D0         LEA EAX,DWORD PTR SS:[EBP-30]
004959D0    8D55 FC         LEA EDX,DWORD PTR SS:[EBP-4]
004959D3    E8 C42CFDFF     CALL 0046869C
004959D8    8D4D B0         LEA ECX,DWORD PTR SS:[EBP-50]
004959DB    BA 02000000     MOV EDX,2
004959E0    A1 E0FD4900     MOV EAX,DWORD PTR DS:[49FDE0]
004959E5    E8 4AA0F9FF     CALL 0042FA34                            ; 取出假注册码的7、8位
004959EA    8B45 B0         MOV EAX,DWORD PTR SS:[EBP-50]
004959ED    8D55 D0         LEA EDX,DWORD PTR SS:[EBP-30]
004959F0    E8 332CFDFF     CALL 00468628
004959F5    8D45 D0         LEA EAX,DWORD PTR SS:[EBP-30]
004959F8    8D55 F8         LEA EDX,DWORD PTR SS:[EBP-8]
004959FB    E8 9C2CFDFF     CALL 0046869C
00495A00    8B45 FC         MOV EAX,DWORD PTR SS:[EBP-4]
00495A03    8B55 F8         MOV EDX,DWORD PTR SS:[EBP-8]
00495A06    E8 A9F1F6FF     CALL 00404BB4                            ; 作对比,相等则跳,显然要跳。结论:真注册码的7、8位应该是⑤
00495A0B    74 11           JE SHORT 00495A1E
00495A0D    A1 2CDC4900     MOV EAX,DWORD PTR DS:[49DC2C]
00495A12    8B00            MOV EAX,DWORD PTR DS:[EAX]
00495A14    E8 6741FCFF     CALL 00459B80
00495A19    E9 A3010000     JMP 00495BC1
00495A1E    8B45 FC         MOV EAX,DWORD PTR SS:[EBP-4]
00495A21    8B55 F8         MOV EDX,DWORD PTR SS:[EBP-8]
00495A24    E8 8BF1F6FF     CALL 00404BB4
00495A29    74 11           JE SHORT 00495A3C
00495A2B    A1 2CDC4900     MOV EAX,DWORD PTR DS:[49DC2C]
00495A30    8B00            MOV EAX,DWORD PTR DS:[EAX]
00495A32    E8 4941FCFF     CALL 00459B80
00495A37    E9 85010000     JMP 00495BC1
00495A3C    A1 D8D94900     MOV EAX,DWORD PTR DS:[49D9D8]
00495A41    E8 62EDF6FF     CALL 004047A8
00495A46    8B45 FC         MOV EAX,DWORD PTR SS:[EBP-4]
00495A49    8B55 F8         MOV EDX,DWORD PTR SS:[EBP-8]
00495A4C    E8 63F1F6FF     CALL 00404BB4
00495A51    74 11           JE SHORT 00495A64
00495A53    A1 2CDC4900     MOV EAX,DWORD PTR DS:[49DC2C]
00495A58    8B00            MOV EAX,DWORD PTR DS:[EAX]
00495A5A    E8 2141FCFF     CALL 00459B80
00495A5F    E9 5D010000     JMP 00495BC1
00495A64    A1 98DA4900     MOV EAX,DWORD PTR DS:[49DA98]
00495A69    8B55 FC         MOV EDX,DWORD PTR SS:[EBP-4]
00495A6C    E8 8BEDF6FF     CALL 004047FC
00495A71    A1 C0DA4900     MOV EAX,DWORD PTR DS:[49DAC0]
00495A76    8B55 F8         MOV EDX,DWORD PTR SS:[EBP-8]
00495A79    E8 7EEDF6FF     CALL 004047FC
00495A7E    A1 BCDC4900     MOV EAX,DWORD PTR DS:[49DCBC]
00495A83    8B00            MOV EAX,DWORD PTR DS:[EAX]
00495A85    BA 7C5C4900     MOV EDX,00495C7C
00495A8A    E8 25F1F6FF     CALL 00404BB4
00495A8F    75 7F           JNZ SHORT 00495B10
00495A91    68 EC5C4900     PUSH 00495CEC                            ; ASCII "c:\china-drm\"
00495A96    A1 84D84900     MOV EAX,DWORD PTR DS:[49D884]
00495A9B    FF30            PUSH DWORD PTR DS:[EAX]
00495A9D    8D55 A4         LEA EDX,DWORD PTR SS:[EBP-5C]
00495AA0    A1 BCDA4900     MOV EAX,DWORD PTR DS:[49DABC]
00495AA5    8B00            MOV EAX,DWORD PTR DS:[EAX]
00495AA7    E8 782A0000     CALL 00498524
00495AAC    FF75 A4         PUSH DWORD PTR SS:[EBP-5C]
00495AAF    8D45 A0         LEA EAX,DWORD PTR SS:[EBP-60]
00495AB2    E8 9DECFFFF     CALL 00494754
00495AB7    FF75 A0         PUSH DWORD PTR SS:[EBP-60]
00495ABA    68 045D4900     PUSH 00495D04                            ; ASCII "mediakjjf"
00495ABF    8D45 A8         LEA EAX,DWORD PTR SS:[EBP-58]
00495AC2    BA 04000000     MOV EDX,4
00495AC7    E8 5CF0F6FF     CALL 00404B28
00495ACC    8B45 A8         MOV EAX,DWORD PTR SS:[EBP-58]
00495ACF    8D55 D0         LEA EDX,DWORD PTR SS:[EBP-30]
00495AD2    E8 512BFDFF     CALL 00468628
00495AD7    8D45 D0         LEA EAX,DWORD PTR SS:[EBP-30]
00495ADA    8D55 AC         LEA EDX,DWORD PTR SS:[EBP-54]
00495ADD    E8 BA2BFDFF     CALL 0046869C
00495AE2    FF75 AC         PUSH DWORD PTR SS:[EBP-54]
00495AE5    68 185D4900     PUSH 00495D18                            ; ASCII ".config"
00495AEA    8D45 F0         LEA EAX,DWORD PTR SS:[EBP-10]
00495AED    BA 03000000     MOV EDX,3
00495AF2    E8 31F0F6FF     CALL 00404B28
00495AF7    8B45 F0         MOV EAX,DWORD PTR SS:[EBP-10]
00495AFA    E8 2136F7FF     CALL 00409120
00495AFF    84C0            TEST AL,AL
00495B01    75 0D           JNZ SHORT 00495B10
00495B03    8B45 F0         MOV EAX,DWORD PTR SS:[EBP-10]
00495B06    E8 E934F7FF     CALL 00408FF4
00495B0B    E8 A035F7FF     CALL 004090B0
00495B10    A1 C4D94900     MOV EAX,DWORD PTR DS:[49D9C4]
00495B15    8B00            MOV EAX,DWORD PTR DS:[EAX]
00495B17    BA 1C5C4900     MOV EDX,00495C1C
00495B1C    E8 93F0F6FF     CALL 00404BB4
00495B21    74 52           JE SHORT 00495B75
00495B23    8D55 9C         LEA EDX,DWORD PTR SS:[EBP-64]
00495B26    A1 2CDC4900     MOV EAX,DWORD PTR DS:[49DC2C]
00495B2B    8B00            MOV EAX,DWORD PTR DS:[EAX]
00495B2D    8B80 00030000   MOV EAX,DWORD PTR DS:[EAX+300]
00495B33    E8 141FFDFF     CALL 00467A4C
00495B38    8B45 9C         MOV EAX,DWORD PTR SS:[EBP-64]
00495B3B    50              PUSH EAX
00495B3C    8B00            MOV EAX,DWORD PTR DS:[EAX]
00495B3E    FF50 20         CALL DWORD PTR DS:[EAX+20]
00495B41    E8 B606F7FF     CALL 004061FC
00495B46    A1 2CDC4900     MOV EAX,DWORD PTR DS:[49DC2C]
00495B4B    8B00            MOV EAX,DWORD PTR DS:[EAX]
00495B4D    8B80 F8020000   MOV EAX,DWORD PTR DS:[EAX+2F8]
00495B53    B2 01           MOV DL,1
00495B55    E8 1A90F9FF     CALL 0042EB74
00495B5A    8B45 FC         MOV EAX,DWORD PTR SS:[EBP-4]
00495B5D    8B55 F8         MOV EDX,DWORD PTR SS:[EBP-8]
00495B60    E8 4FF0F6FF     CALL 00404BB4
00495B65    74 13           JE SHORT 00495B7A
00495B67    A1 2CDC4900     MOV EAX,DWORD PTR DS:[49DC2C]
00495B6C    8B00            MOV EAX,DWORD PTR DS:[EAX]
00495B6E    E8 0D40FCFF     CALL 00459B80
00495B73    EB 4C           JMP SHORT 00495BC1
00495B75    E8 0A340000     CALL 00498F84
00495B7A    8B45 FC         MOV EAX,DWORD PTR SS:[EBP-4]
00495B7D    8B55 F8         MOV EDX,DWORD PTR SS:[EBP-8]
00495B80    E8 2FF0F6FF     CALL 00404BB4
00495B85    74 0E           JE SHORT 00495B95
00495B87    A1 2CDC4900     MOV EAX,DWORD PTR DS:[49DC2C]
00495B8C    8B00            MOV EAX,DWORD PTR DS:[EAX]
00495B8E    E8 ED3FFCFF     CALL 00459B80
00495B93    EB 2C           JMP SHORT 00495BC1
00495B95    33C0            XOR EAX,EAX
00495B97    55              PUSH EBP
00495B98    68 B75B4900     PUSH 00495BB7
00495B9D    64:FF30         PUSH DWORD PTR FS:[EAX]
00495BA0    64:8920         MOV DWORD PTR FS:[EAX],ESP
00495BA3    E8 D89CF9FF     CALL 0042F880
00495BA8    8B10            MOV EDX,DWORD PTR DS:[EAX]
00495BAA    FF52 18         CALL DWORD PTR DS:[EDX+18]
00495BAD    33C0            XOR EAX,EAX
00495BAF    5A              POP EDX
00495BB0    59              POP ECX
00495BB1    59              POP ECX
00495BB2    64:8910         MOV DWORD PTR FS:[EAX],EDX
00495BB5    EB 0A           JMP SHORT 00495BC1
00495BB7  - E9 3CE3F6FF     JMP 00403EF8
00495BBC    E8 9FE6F6FF     CALL 00404260
00495BC1    33C0            XOR EAX,EAX
00495BC3    5A              POP EDX
00495BC4    59              POP ECX
00495BC5    59              POP ECX
00495BC6    64:8910         MOV DWORD PTR FS:[EAX],EDX
00495BC9    68 005C4900     PUSH 00495C00
00495BCE    8D45 9C         LEA EAX,DWORD PTR SS:[EBP-64]
00495BD1    E8 1605F7FF     CALL 004060EC
00495BD6    8D45 A0         LEA EAX,DWORD PTR SS:[EBP-60]
00495BD9    BA 0C000000     MOV EDX,0C
00495BDE    E8 E9EBF6FF     CALL 004047CC
00495BE3    8D45 E0         LEA EAX,DWORD PTR SS:[EBP-20]
00495BE6    E8 BDEBF6FF     CALL 004047A8
00495BEB    8D45 E4         LEA EAX,DWORD PTR SS:[EBP-1C]
00495BEE    BA 07000000     MOV EDX,7
00495BF3    E8 D4EBF6FF     CALL 004047CC
00495BF8    C3              RET

最后结论:密码校验机制是:其实只对前8位分三次进行校验,后24位只是校验前8位。首先用后24位校验前8位,然后校验1、2位,然后校验3、4、5、6位,最后校验7、8位。

想分离出视频文件,没成功。请高手指点。