第4个学习笔记~注册机研究中~以后补上 0045004C 55 PUSH EBP 0045004D 8BEC MOV EBP,ESP 0045004F 83C4 DC ADD ESP,-24 00450052 33C9 XOR ECX,ECX 00450054 894D F8 MOV DWORD PTR SS:[EBP-8],ECX 00450057 894D F4 MOV DWORD PTR SS:[EBP-C],ECX 0045005A 8955 E0 MOV DWORD PTR SS:[EBP-20],EDX 0045005D 8945 FC MOV DWORD PTR SS:[EBP-4],EAX 00450060 33C0 XOR EAX,EAX 00450062 55 PUSH EBP 00450063 68 8D014500 PUSH KeyGenMe.0045018D 00450068 64:FF30 PUSH DWORD PTR FS:[EAX] 0045006B 64:8920 MOV DWORD PTR FS:[EAX],ESP 0045006E 8D55 F8 LEA EDX,DWORD PTR SS:[EBP-8] 00450071 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4] 00450074 8B80 00030000 MOV EAX,DWORD PTR DS:[EAX+300] 0045007A E8 D9F2FDFF CALL KeyGenMe.0042F358 0045007F 8B45 F8 MOV EAX,DWORD PTR SS:[EBP-8] 00450082 E8 4940FBFF CALL KeyGenMe.004040D0 ; 取用户名位数 00450087 8945 F0 MOV DWORD PTR SS:[EBP-10],EAX 0045008A 837D F0 02 CMP DWORD PTR SS:[EBP-10],2 ; 用户名位数与2比较 0045008E 0F8C DE000000 JL KeyGenMe.00450172 00450094 8D55 F4 LEA EDX,DWORD PTR SS:[EBP-C] 00450097 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4] 0045009A 8B80 08030000 MOV EAX,DWORD PTR DS:[EAX+308] 004500A0 E8 B3F2FDFF CALL KeyGenMe.0042F358 ; 取试验码位数 004500A5 8B45 F4 MOV EAX,DWORD PTR SS:[EBP-C] 004500A8 E8 2340FBFF CALL KeyGenMe.004040D0 004500AD 8945 EC MOV DWORD PTR SS:[EBP-14],EAX 004500B0 837D EC 0A CMP DWORD PTR SS:[EBP-14],0A ; 试验码与10比较 004500B4 0F85 B8000000 JNZ KeyGenMe.00450172 004500BA 8B45 EC MOV EAX,DWORD PTR SS:[EBP-14] 004500BD 85C0 TEST EAX,EAX 004500BF 7E 34 JLE SHORT KeyGenMe.004500F5 004500C1 8945 E4 MOV DWORD PTR SS:[EBP-1C],EAX 004500C4 C745 E8 0100000>MOV DWORD PTR SS:[EBP-18],1 004500CB 8B45 F4 /MOV EAX,DWORD PTR SS:[EBP-C] 004500CE 8B55 E8 |MOV EDX,DWORD PTR SS:[EBP-18] 004500D1 807C10 FF 30 |CMP BYTE PTR DS:[EAX+EDX-1],30 ; 判断是否是数字? 004500D6 0F82 96000000 |JB KeyGenMe.00450172 004500DC 8B45 F4 |MOV EAX,DWORD PTR SS:[EBP-C] 004500DF 8B55 E8 |MOV EDX,DWORD PTR SS:[EBP-18] 004500E2 807C10 FF 39 |CMP BYTE PTR DS:[EAX+EDX-1],39 ; 判断是否是数字? 004500E7 0F87 85000000 |JA KeyGenMe.00450172 004500ED FF45 E8 |INC DWORD PTR SS:[EBP-18] 004500F0 FF4D E4 |DEC DWORD PTR SS:[EBP-1C] 004500F3 ^ 75 D6 \JNZ SHORT KeyGenMe.004500CB 004500F5 8B45 F4 MOV EAX,DWORD PTR SS:[EBP-C] 004500F8 0FB600 MOVZX EAX,BYTE PTR DS:[EAX] ; 取注册码第1 004500FB 8B55 F4 MOV EDX,DWORD PTR SS:[EBP-C] 004500FE 0FB652 05 MOVZX EDX,BYTE PTR DS:[EDX+5] ; 取注册码第6个 00450102 03C2 ADD EAX,EDX ; 试验码第1和6相加 00450104 83F8 6D CMP EAX,6D ; 和与6D比较 00450107 75 69 JNZ SHORT KeyGenMe.00450172 ; 不等就死 00450109 8B45 F4 MOV EAX,DWORD PTR SS:[EBP-C] 0045010C 0FB640 01 MOVZX EAX,BYTE PTR DS:[EAX+1] 取第2个 00450110 8B55 F4 MOV EDX,DWORD PTR SS:[EBP-C] 00450113 0FB652 06 MOVZX EDX,BYTE PTR DS:[EDX+6] ; 取第7个 00450117 03C2 ADD EAX,EDX ; 第2与第7相加 00450119 > 83F8 67 CMP EAX,67 0045011C 75 54 JNZ SHORT KeyGenMe.00450172 ; 不等就死 0045011E 8B45 F4 MOV EAX,DWORD PTR SS:[EBP-C] 00450121 0FB640 02 MOVZX EAX,BYTE PTR DS:[EAX+2] ; 取第3个 00450125 8B55 F4 MOV EDX,DWORD PTR SS:[EBP-C] 00450128 0FB652 07 MOVZX EDX,BYTE PTR DS:[EDX+7] ; 取第8个 0045012C 03C2 ADD EAX,EDX ; 第2和第8相加 0045012E 83F8 69 CMP EAX,69 ; 和与69 00450131 75 3F JNZ SHORT KeyGenMe.00450172 00450133 8B45 F4 MOV EAX,DWORD PTR SS:[EBP-C] 00450136 0FB640 03 MOVZX EAX,BYTE PTR DS:[EAX+3] ; 取第4 0045013A 8B55 F4 MOV EDX,DWORD PTR SS:[EBP-C] 0045013D 0FB652 08 MOVZX EDX,BYTE PTR DS:[EDX+8] ; 取第9 00450141 03C2 ADD EAX,EDX 00450143 83F8 70 CMP EAX,70 ; 与70比较 00450146 75 2A JNZ SHORT KeyGenMe.00450172 00450148 8B45 F4 MOV EAX,DWORD PTR SS:[EBP-C] 0045014B 0FB640 04 MOVZX EAX,BYTE PTR DS:[EAX+4] ; 取第5位 0045014F 8B55 F4 MOV EDX,DWORD PTR SS:[EBP-C] 00450152 0FB652 09 MOVZX EDX,BYTE PTR DS:[EDX+9] ; 取第10位 00450156 F7EA IMUL EDX ; 第5位与第10位相乘 00450158 3D 8C0A0000 CMP EAX,0A8C ; 乘积与0A8C比较 0045015D 75 13 JNZ SHORT KeyGenMe.00450172 0045015F 6A 40 PUSH 40 00450161 68 98014500 PUSH KeyGenMe.00450198 ; Congratulations 00450166 68 A8014500 PUSH KeyGenMe.004501A8 ; Good job,man! 0045016B 6A 00 PUSH 0 0045016D E8 2E63FBFF CALL <JMP.&user32.MessageBoxA> 00450172 33C0 XOR EAX,EAX
算法总结:1,用户名不小于2,试验码必须为0~10的数字 2,ord(edit2.text[1])+ord(edit2.text[6])=$6D ord(edit2.text[2])+ord(edit2.text[7])=$67 ord(edit2.text[3])+ord(edit2.text[8])=$69 ord(edit2.text[4])+ ord(edit2.text[9])=$70 ord(edit2.text[5])* ord(edit2.text[10])=$0A8C
上一页 1 2 3 4 5 6 下一页 |