00405AE9 |. 894424 10 |MOV DWORD PTR SS:[ESP+10],EAX 00405AED |.^7C AE \JL SHORT POPUP__1.00405A9D - 5 char đầu phải là char và được kiểm tra với các kí tự sau : "COREK" or "corek". 00405B0B |. 33D2 XOR EDX,EDX 00405B0D |. BF F4F54000 MOV EDI,POPUP__1.0040F5F4 00405B12 |. C74424 10 0000> MOV DWORD PTR SS:[ESP+10],0 00405B1A |. 33C9 XOR ECX,ECX 00405B1C |> 8A81 BC1C4100 /MOV AL,BYTE PTR DS:[ECX+411CBC] 00405B22 |. 85C9 |TEST ECX,ECX 00405B24 |. 75 0A |JNZ SHORT POPUP__1.00405B30 00405B26 |. 3C 63 |CMP AL,63 00405B28 |. 74 40 |JE SHORT POPUP__1.00405B6A 00405B2A |. 3C 43 |CMP AL,43 00405B2C |. 75 3D |JNZ SHORT POPUP__1.00405B6B 00405B2E |. EB 3A |JMP SHORT POPUP__1.00405B6A 00405B30 |> 83F9 02 |CMP ECX,2 00405B33 |. 75 0A |JNZ SHORT POPUP__1.00405B3F 00405B35 |. 3C 72 |CMP AL,72 00405B37 |. 74 31 |JE SHORT POPUP__1.00405B6A 00405B39 |. 3C 52 |CMP AL,52 00405B3B |. 75 2E |JNZ SHORT POPUP__1.00405B6B 00405B3D |. EB 2B |JMP SHORT POPUP__1.00405B6A 00405B3F |> 83F9 04 |CMP ECX,4 00405B42 |. 75 0A |JNZ SHORT POPUP__1.00405B4E 00405B44 |. 3C 6B |CMP AL,6B 00405B46 |. 74 22 |JE SHORT POPUP__1.00405B6A 00405B48 |. 3C 4B |CMP AL,4B 00405B4A |. 75 1F |JNZ SHORT POPUP__1.00405B6B 00405B4C |. EB 1C |JMP SHORT POPUP__1.00405B6A 00405B4E |> 83F9 01 |CMP ECX,1 00405B51 |. 75 0A |JNZ SHORT POPUP__1.00405B5D 00405B53 |. 3C 6F |CMP AL,6F 00405B55 |. 74 13 |JE SHORT POPUP__1.00405B6A 00405B57 |. 3C 4F |CMP AL,4F 00405B59 |. 75 10 |JNZ SHORT POPUP__1.00405B6B 00405B5B |. EB 0D |JMP SHORT POPUP__1.00405B6A 00405B5D |> 83F9 03 |CMP ECX,3 00405B60 |. 75 09 |JNZ SHORT POPUP__1.00405B6B 00405B62 |. 3C 65 |CMP AL,65 00405B64 |. 74 04 |JE SHORT POPUP__1.00405B6A 00405B66 |. 3C 45 |CMP AL,45 00405B68 |. 75 01 |JNZ SHORT POPUP__1.00405B6B 00405B6A |> 42 |INC EDX 00405B6B |> 41 |INC ECX 00405B6C |. 83F9 05 |CMP ECX,5 00405B6F |.^7C AB \JL SHORT POPUP__1.00405B1C 00405B71 |. 8B1D 84D04000 MOV EBX,DWORD PTR DS:[<&KERNEL32.GetWind> 00405B77 |. 83FA 05 CMP EDX,5 00405B7A |. 0F85 D9000000 JNZ POPUP__1.00405C59 - Nếu đúng >Bạn sẽ ở đây - Nơi số Serial của Software được giải mã. chỉ còn làm mỗi việc là Copy và Paste vào ô đăng kí. 00405BCB |. BF 14000000 MOV EDI,14 00405BD0 |> E8 611A0000 /CALL POPUP__1.00407636 00405BD5 |. 8A16 |MOV DL,BYTE PTR DS:[ESI] 00405BD7 |. 32D0 |XOR DL,AL 00405BD9 |. 8816 |MOV BYTE PTR DS:[ESI],DL 00405BDB |. 46 |INC ESI 00405BDC |. 4F |DEC EDI 00405BDD |.^75 F1 \JNZ SHORT POPUP__1.00405BD0 00405BDF |. C606 00 MOV BYTE PTR DS:[ESI],0 00405BE2 |> 8D4C24 24 LEA ECX,DWORD PTR SS:[ESP+24] 00405BE6 |. 68 04010000 PUSH 104 00405BEB |. 51 PUSH ECX 00405BEC |. C705 201D4100 > MOV DWORD PTR DS:[411D20],-1 00405BF6 |. C605 3CF04000 > MOV BYTE PTR DS:[40F03C],0 00405BFD |. BE F41B4100 MOV ESI,POPUP__1.00411BF4 - Nếu Bạn chỉ cần số Serial thì không cần xem phần này. - Nếu Bạn muốn biết chương trình kiểm tra như thế nào ,hãy mở Ollydbg và tự đọc ,bên dưới tôi chỉ nêu khái quát không đi sâu vào thuật toán của chương trình. Hướng đi khác của chương trình,Bạn sẽ ở đây nếu 5 kí tự đầu của chuỗi bạn đưa vào không thoả điều kiện trên.Nó không có nghĩa chuỗi Serial bạn nhập là sai khi và chỉ khi nó thoả tất cả các điều kiện được xét bên dưới. Tất cả bắt đầu tại đây: - Lấy 84 kí tự đầu của chuỗi Binary qua các phép toán và KQ trong EAX (các cách chương trình tính đã quá rõ ràng nên không cần giải thích thêm). 00405CD1 |> B9 581C4100 MOV ECX,POPUP__1.00411C58 ;____ASCII "00110110010111010010010100000001010010000111111110011001000010100 00001000000010000001010011111100101QUYPC" 00405CD6 |. 33C0 XOR EAX,EAX 00405CD8 |. BE 54000000 MOV ESI,54 00405CDD |> 33D2 /XOR EDX,EDX 00405CDF |. 8AD4 |MOV DL,AH 00405CE1 |. 8AF0 |MOV DH,AL 00405CE3 |. 66:0FBE01 |MOVSX AX,BYTE PTR DS:[ECX] 00405CE7 |. 33C2 |XOR EAX,EDX 00405CE9 |. 41 |INC ECX 00405CEA |. 8AD0 |MOV DL,AL 00405CEC |. C0EA 04 |SHR DL,4 00405CEF |. 66:0FB6D2 |MOVZX DX,DL 00405CF3 |. 33C2 |XOR EAX,EDX 00405CF5 |. 8BD0 |MOV EDX,EAX 00405CF7 |. C1E2 0C |SHL EDX,0C 00405CFA |. 33C2 |XOR EAX,EDX 00405CFC |. 8AD0 |MOV DL,AL 00405CFE |. 81E2 FF000000 |AND EDX,0FF 00405D04 |. C1E2 05 |SHL EDX,5 00405D07 |. 33C2 |XOR EAX,EDX 00405D09 |. 4E |DEC ESI 00405D0A |.^75 D1 \JNZ SHORT POPUP__1.00405CDD - Tính với 16 kí tự tiếp sau ,KQ trong ECX 00405D0C |. BE AC1C4100 MOV ESI,POPUP__1.00411CAC ;___ASCII "1010011111100101QUYPC" 00405D11 |. 33C9 XOR ECX,ECX 00405D13 |. BF 10000000 MOV EDI,10 00405D18 |> 8A16 /MOV DL,BYTE PTR DS:[ESI] 00405D1A |. 03C9 |ADD ECX,ECX 00405D1C |. 46 |INC ESI 00405D1D |. 80FA 31 |CMP DL,31 00405D20 |. 75 01 |JNZ SHORT POPUP__1.00405D23 00405D22 |. 41 |INC ECX 00405D23 |> 4F |DEC EDI 00405D24 |.^75 F2 \JNZ SHORT POPUP__1.00405D18 - AND EAX với 0FFFFh sau đó so sánh với ECX 00405D26 |. 25 FFFF0000 AND EAX,0FFFF 00405D2B |. 3BC1 CMP EAX,ECX 00405D2D |. 0F85 E6010000 JNZ POPUP__1.00405F19 -Lấy 8 kí tự tính từ vị trí thứ 26, tính và so sánh với 81h 00405D33 |. B9 711C4100 MOV ECX,POPUP__1.00411C71 ;___ASCII "00000010100100001111111100110010000101000000100000001000000101001 1111100101QUYPC" 00405D38 |. 33C0 XOR EAX,EAX 00405D3A |. BE 08000000 MOV ESI,8 00405D3F |> 8A11 /MOV DL,BYTE PTR DS:[ECX] 00405D41 |. 03C0 |ADD EAX,EAX 00405D43 |. 41 |INC ECX 00405D44 |. 80FA 31 |CMP DL,31 00405D47 |. 75 01 |JNZ SHORT POPUP__1.00405D4A 00405D49 |. 40 |INC EAX 00405D4A |> 4E |DEC ESI 00405D4B |.^75 F2 \JNZ SHORT POPUP__1.00405D3F 00405D4D |. 3D 81000000 CMP EAX,81 00405D52 0F85 C1010000 JNZ POPUP__1.00405F19 - Lấy 30 kt tại vt thứ 34 và 5 kt đầu của chuỗi ta nhập. 00405D58 |. 6A 1E PUSH 1E 00405D5A |. 68 791C4100 PUSH POPUP__1.00411C79 ;___ASCII "10010000111111110011001000010100000010000000100000010100111111001 01QUYPC" 00405D5F |. E8 0CBEFFFF CALL POPUP__1.00401B70 00405D64 |. 6A 05 PUSH 5 00405D66 |. 68 BC1C4100 PUSH POPUP__1.00411CBC ;___ASCII "QUYPC" 00405D6B |. 8BF0 MOV ESI,EAX 00405D6D |. E8 8EC3FFFF CALL POPUP__1.00402100 00405D72 |. 25 FFFF0000 AND EAX,0FFFF 00405D77 |. 83C4 10 ADD ESP,10 00405D7A |. 8BD0 MOV EDX,EAX 00405D7C |. 8D8C24 2801000> LEA ECX,DWORD PTR SS:[ESP+128] 00405D83 |. 81E2 FF3F0000 AND EDX,3FFF 00405D89 |. 6A 00 PUSH 0 00405D8B |. C1E2 10 SHL EDX,10 00405D8E |. 03D0 ADD EDX,EAX 00405D90 |. 6A 0A PUSH 0A ; /Arg3 = 0000000A 00405D92 |. 33D6 XOR EDX,ESI ; | 00405D94 |. 51 PUSH ECX ; |Arg2 00405D95 |. 52 PUSH EDX ; |Arg1 00405D96 |. E8 15190000 CALL POPUP__1.004076B0 ; \POPUP__1.004076B0 00405D9B |. 83C4 0C ADD ESP,0C 00405D9E |. 50 PUSH EAX 00405D9F |. E8 5CC3FFFF CALL POPUP__1.00402100 . 00 405 CD1 |> B9 581C 4 10 0 MOV ECX,POPUP_ _1. 00 411 C58 ;____ASCII " ;0 011 01 1 0 0 10 111 01 0 01 0 01 0 100 000 0 01 0 10 0 10 00 011 111 111 0 011 0 0 10 00 0 10 100 00 0 01 0 00 000 01 0 00 00 0 10 10 011 111 10 0 10 1QUYPC" 00 405 CD6. sánh với 81h 00 405 D33 |. B9 711 C 4 10 0 MOV ECX,POPUP_ _1. 00 411 C 71 ;___ASCII " ;00 000 01 0 10 0 10 00 011 111 111 0 011 0 0 10 00 0 10 100 000 01 0 00 000 01 0 00 00 0 10 10 01 111 1 10 01 0 1QUYPC" 00 405 D38 |. 33C0 XOR. " ; 10 01 0 00 01 1 111 111 0 011 0 0 10 00 0 10 100 000 01 0 00 000 01 0 00 00 0 10 10 011 111 10 01 01 QUYPC" 00 405 D5F |. E8 0CBEFFFF CALL POPUP_ _1. 00 401 B 70 00 405 D64 |. 6A 05 PUSH 5 00 405 D66 |. 68 BC1C 4 10 0 PUSH POPUP_ _1. 00 411 CBC ;___ASCII