CODE 0041280A . B8 67666666 MOV EAX,66666667 0041280F . F7EB IMUL EBX =>(kt2 or 44) * 66666667 = H4xxxxxxxx , edx=H4 00412811 . 8BC3 MOV EAX,EBX =>eax = kt2 or 44 00412813 . C1F8 1F SAR EAX,1F 00412816 . C1FA 02 SAR EDX,2 =>edx=H4/4 00412819 . 2BD0 SUB EDX,EAX =>edx=H4/4 0041281B . 6BFA 0A IMUL EDI,EDX,0A =>edi=H4/4*0a 0041281E . 33C9 XOR ECX,ECX =>ecx=0 00412820 . 2BDF SUB EBX,EDI =>ebx = (kt2 or 44) - H4/4*0a 00412822 . 8B4424 18 MOV EAX,DWORD PTR SS:[ESP+18] =>đưa chuỗi name vào eax 00412826 . 0FB6F3 MOVZX ESI,BL =>esi = (kt2 or 44) - H4/4*0a 00412829 . 8B5C24 10 MOV EBX,DWORD PTR SS:[ESP+10] =>đưa chuỗi serial vào ebx 0041282D . 897424 1C MOV DWORD PTR SS:[ESP+1C],ESI =>ss:[esp+1c] = (kt2 or 44) - H4/4*0a (71 or 44)*66666667=2ECCCCCD13 , khi đó edx=2E ss:[esp+1c] = (71 or 44) - 2E/4*a = 7 giai đoạn mã hóa thứ năm cùng và kiểm tra serial nhập vào CODE 00412831 . 85ED TEST EBP,EBP 00412833 . 8B7424 2C MOV ESI,DWORD PTR SS:[ESP+2C] 00412837 . 7E 0E JLE SHORT DVD2DIVX.00412847 00412839 . 03E8 ADD EBP,EAX 0041283B > 0FB610 MOVZX EDX,BYTE PTR DS:[EAX] =>đưa từng ký tự chuỗi name vào edx 0041283E . 03CA ADD ECX,EDX 00412840 . 83C0 01 ADD EAX,1 00412843 . 3BC5 CMP EAX,EBP 00412845 .^72 F4 JB SHORT DVD2DIVX.0041283B =>nguyên cái vòng lặp từ 0041283b đến 00412845 sẽ tính tổng của chuỗi name rồi đặt vào ecx 00412847 > B8 67666666 MOV EAX,66666667 =>eax=66666667h 0041284C . F7E9 IMUL ECX =>sumname * 66666667 = H5xxxxxxxx , edx=H5 0041284E . 8BC1 MOV EAX,ECX =>eax=sumname 00412850 . C1F8 1F SAR EAX,1F =>eax/(2 mũ 1f) 00412853 . C1FA 02 SAR EDX,2 =>H5/4 00412856 . 2BD0 SUB EDX,EAX =>edx = H5/4 - eax/(2 mũ 1f) 00412858 . 6BC2 0A IMUL EAX,EDX,0A =>eax = H5/4*0a 0041285B . 0FB653 01 MOVZX EDX,BYTE PTR DS:[EBX+1] =>đưa ký tự thứ 2 của chuỗi serial vào edx 0041285F . 2BC8 SUB ECX,EAX =>ecx = sumname - H5/4*0a 00412861 . 0FB643 02 MOVZX EAX,BYTE PTR DS:[EBX+2] =>đưa ký tự thứ 3 của chuỗi serial vào eax 00412865 . 890424 MOV DWORD PTR SS:[ESP],EAX =>ss:[esp] chứa ký tự thứ 3 chuỗi serial 00412868 . 0FB643 03 MOVZX EAX,BYTE PTR DS:[EBX+3] =>đưa ký tự thứ 4 của chuỗi serial vào eax 0041286C . 894424 04 MOV DWORD PTR SS:[ESP+4],EAX =>ss:[esp+4] chứa ký tự thứ 4 chuỗi serial 00412870 . 0FB643 04 MOVZX EAX,BYTE PTR DS:[EBX+4] =>đưa ký tự thứ 5 của chuỗi serial vào eax 00412874 . 0FB6E9 MOVZX EBP,CL =>ebp = sumname - H5/4*0a 00412877 . 8A4B 05 MOV CL,BYTE PTR DS:[EBX+5] =>đưa ký tự thứ 6 của chuỗi serial vào cl 0041287A . 896C24 0C MOV DWORD PTR SS:[ESP+C],EBP =>ss:[esp+c] = sumname - H5/4*0a 0041287E . 0FB62B MOVZX EBP,BYTE PTR DS:[EBX] =>đưa ký tự thứ 1 của chuỗi serial vào ebp 00412881 . 8D7D D0 LEA EDI,DWORD PTR SS:[EBP-30] 00412884 . 894424 08 MOV DWORD PTR SS:[ESP+8],EAX =>ss:[esp+8] chứa ký tự thứ 5 của chuỗi serial 00412888 . 8A43 06 MOV AL,BYTE PTR DS:[EBX+6] =>đưa ký tự thứ 7 của chuỗi serial vào al 0041288B . 884C24 14 MOV BYTE PTR SS:[ESP+14],CL =>[esp+14] chứa ký tự thứ 6 của chuỗi serial 0041288F . 884424 18 MOV BYTE PTR SS:[ESP+18],AL =>[esp+18] chứa ký tự thứ 7 của chuỗi serial 00412893 . 8A43 07 MOV AL,BYTE PTR DS:[EBX+7] =>đưa ký tự thứ 8 của chuỗi serial vào al 00412896 . 8B5C24 24 MOV EBX,DWORD PTR SS:[ESP+24] =>ebx = ss:[esp+24] = (kt1 or 41) - H1/4*0a 0041289A . 884424 10 MOV BYTE PTR SS:[ESP+10],AL =>đưa ký tự thứ 8 của chuỗi serial vào [esp+10] 0041289E . 3BDF CMP EBX,EDI =>so sánh với ký tự đầu tiên của chuỗi serial nhập vào 004128A0 . 0F85 88000000 JNZ DVD2DIVX.0041292E =>không bằng thì bắn nag Bad Boy 004128A6 . 8B5C24 28 MOV EBX,DWORD PTR SS:[ESP+28] =>ebx = ss:[esp+28] = (kt2 or 42) - H2/4*0a 004128AA . 8D42 D0 LEA EAX,DWORD PTR DS:[EDX-30] 004128AD . 3BD8 CMP EBX,EAX =>so sánh với ký tự thứ 2 của chuỗi serial nhập vào 004128AF . 75 7D JNZ SHORT DVD2DIVX.0041292E =>không bằng thì bắn nag Bad Boy 004128B1 . 8B3C24 MOV EDI,DWORD PTR SS:[ESP] 004128B4 . 8B5C24 20 MOV EBX,DWORD PTR SS:[ESP+20] =>ebx = ss:[esp+20] = (kt1 or 43) - H3/4*0a 004128B8 . 8D47 D0 LEA EAX,DWORD PTR DS:[EDI-30] 004128BB . 3BD8 CMP EBX,EAX =>so sánh với ký tự thứ 3 của chuỗi serial nhập vào 004128BD . 75 6F JNZ SHORT DVD2DIVX.0041292E =>không bằng thì bắn nag Bad Boy 004128BF . 8B7C24 04 MOV EDI,DWORD PTR SS:[ESP+4] 004128C3 . 8B5C24 1C MOV EBX,DWORD PTR SS:[ESP+1C] =>ebx = ss:[esp+1C] = (kt2 or 44) - H4/4*0a 004128C7 . 8D47 D0 LEA EAX,DWORD PTR DS:[EDI-30] 004128CA . 3BD8 CMP EBX,EAX =>so sánh với ký tự thứ 4 của chuỗi serial nhập vào 004128CC . 75 60 JNZ SHORT DVD2DIVX.0041292E =>không bằng thì bắ n nag Bad Boy 004128CE . 8B7C24 08 MOV EDI,DWORD PTR SS:[ESP+8] 004128D2 . 8B5C24 0C MOV EBX,DWORD PTR SS:[ESP+C] =>ebx = ss:[esp+C] = sumname - H5/4*0a 004128D6 . 8D47 D0 LEA EAX,DWORD PTR DS:[EDI-30] 004128D9 . 3BD8 CMP EBX,EAX =>so sánh với ký tự thứ 5 của chuỗi serial nhập vào 004128DB . 75 51 JNZ SHORT DVD2DIVX.0041292E =>không bằng thì bắn nag Bad Boy 004128DD > 33C0 XOR EAX,EAX 004128DF . 50 PUSH EAX; /Arg3 => 00000000 004128E0 . 50 PUSH EAX; |Arg2 => 00000000 004128E1 . 68 F0409500 PUSH DVD2DIVX.009540F0; |Arg1 = 009540F0 ASCII "Registration has succeeded!" ở đây có một số dòng có vấn đề , tuy ta nhập đúng và chương trình chạy tốt nhưng cái thẻ register không mất có lẽ sau đoạn bắn nag Good Boy còn các lời gọi hàm kiểm tra nhưng mấy lời gọi hàm ở đây khá lung tung và tớ không hiểu rõ lắm nên không viết tiếp , bác nào test thì bảo tớ nhá như vậy xài cũng tốt rồi , thấy phiền thì patch cho nó mất luôn cái nag bắt đăng ký mỗi khi load chương trình 00412935 . 50 PUSH EAX; /Arg3 => 00000000 00412936 . 50 PUSH EAX; |Arg2 => 00000000 00412937 . 68 0C419500 PUSH DVD2DIVX.0095410C; |Arg1 = 0095410C ASCII "Registration failed!" name : dqtln serial : 15377xxx xxx bất kỳ , có thể nhiều hơn nữa xxxxxxxxx . Boy 00 412 8DD > 33C0 XOR EAX,EAX 00 412 8DF . 50 PUSH EAX; /Arg3 => 00 000 000 00 412 8E0 . 50 PUSH EAX; |Arg2 => 00 000 000 00 412 8E1 . 68 F0 409 500 PUSH DVD2DIVX .00 9540F0; |Arg1 = 00 9540F0 ASCII. load chương trình 00 412 935 . 50 PUSH EAX; /Arg3 => 00 000 000 00 412 936 . 50 PUSH EAX; |Arg2 => 00 000 000 00 412 937 . 68 0C 419 500 PUSH DVD2DIVX .00 95 4 10 C; |Arg1 = 00 95 4 10 C ASCII "Registration. EAX,1F 00 412 816 . C1FA 02 SAR EDX,2 =>edx=H4/4 00 412 819 . 2BD0 SUB EDX,EAX =>edx=H4/4 00 412 81B . 6BFA 0A IMUL EDI,EDX,0A =>edi=H4/4*0a 00 412 81E . 33C9 XOR ECX,ECX =>ecx =0 00 412 820