执行此软体後会要求注册,选择 Register Me Now 後填入 Name 及 Registration Code (我是用 Register 及 3939889 (有没有似曾相识的感觉呢 :))不要按 ok 键,先按 ctrl + d 键把 Soft-ICE 叫出来後键入 bpx hmemcpy 准备拦截. 使用 x 指令继续执行程式,按下 ok 键後会触发刚才的断点,用 bd 指令先把它 disable 後执行数次 p ret 回到 Guitar Pro 的领空下. :u cs:4336d9 004336D9 CALL 0041F3F8 004336DE POP ESI <== 由 Kernal 回来 004336DF POP EBX 004336E0 RET 004336E1 LEA EAX,[EAX+00] 004336E4 PUSH ESI 004336E5 MOV ESI,EAX 004336E7 MOV EAX,ESI 大约经过 5 个 ret 後可看到以下程式码 :u cs:441c15 00441C15 CALL 0041D190 00441C1A CMP DWORD PTR [EBP-04],00 00441C1E JNZ 00441D91 00441C24 MOV EAX,[0047FBF4] 00441C29 CMP BYTE PTR [EAX],00 00441C2C JZ 00441D41 trace 一下就到达了 CS:441D91 00441D91 CALL 00441868 00441D96 TEST AL,AL 00441D98 JZ 00441F15 nnn... call 441868 後会检查 al 若 al 为 0 的话则跑的远远的, 有点可疑...追进去看看... 00441868 PUSH EBP 00441869 MOV EBP,ESP 0044186B ADD ESP,-40 0044186E PUSH EBX 0044186F PUSH ESI . . . 004418AB CALL 0041D190 004418B0 MOV EAX,[EBP-04] 用 d eax 看一下 eax 指的位址是什麽东东??? 呵呵...就是注册时填的注册码了...再往下看一下... 004418B3 CALL 00403BD4 004418B8 MOV [EBP-0C],EAX 004418BB MOV ESI,00441A0C 004418C0 LEA EDI,[EBP-2C] 004418C3 MOV ECX,00000004 004418C8 REPZ MOVSD 现在看一下 es:edi 是啥东东???十五个 'A'?再往下看看... 004418CA MOV ESI,00000001 004418CF LEA EAX,[EBP-2B] 004418D2 MOV [EBP-1C],EAX 004418D5 XOR EAX,EAX . . 计算注册码的 Code . 004419BA LEA EAX,[EBP-40] 004419BD LEA EDX,[EBP-2C] 004419C0 CALL 00403B78 004419C5 MOV EAX,[EBP-40] 004419C8 MOV EDX,[EBP-08] 现在检查一下 eax 及 edx 分别指向什麽吧...一个是注册码 ;一个就是我们刚才输入的注册码了...赶快抄下来试试看能不能注册 罗...YA...大功告成...休息罗... 004419CB CALL 00403CE4 004419D0 JZ 004419D6 整理: Name: Register Registration Code: BBCDDCDDEEFFGGG --- 人生不如意事十常八九 ... ICQ UIN: 3045127