正常的检测点 (2千字)
:0046F6A7 0FB638 movzx edi, byte ptr [eax] ; eax->用户名:0046F6AA 0FAFFE imul edi, esi
:0046F6AD 03CF add ecx, edi
:0046F6AF 46 inc esi
:0046F6B0 40 inc eax
:0046F6B1 4A dec edx
:0046F6B2 75F3 jne 0046F6A7
; 上面这段代码将用户名进行累加:第1字符*1+第2字符*2+第3字符*3+......并存入ECX中。
:0046F6B4 8BC1 mov eax, ecx
:0046F6B6 B9E8030000 mov ecx, 000003E8
:0046F6BB 99 cdq
:0046F6BC F7F9 idiv ecx
:0046F6BE 8955C8 mov dword ptr [ebp-38], edx
:0046F6C1 DB45C8 fild dword ptr [ebp-38]
:0046F6C4 DB2D44FF4600 fld tbyte ptr [0046FF44]
:0046F6CA DEC9 fmulp st(1), st(0)
:0046F6CC D80550FF4600 fadd dword ptr [0046FF50]
:0046F6D2 DD5DF0 fstp qword ptr [ebp-10]
:0046F6D5 9B wait
:0046F6D6 A13C1A4900 mov eax, dword ptr [00491A3C]
:0046F6DB 35010C0000 xor eax, 00000C01
:0046F6E0 8945C8 mov dword ptr [ebp-38], eax
:0046F6E3 DB45C8 fild dword ptr [ebp-38]
:0046F6E6 DB2D54FF4600 fld tbyte ptr [0046FF54]
:0046F6EC DEC9 fmulp st(1), st(0)
:0046F6EE DD5DE8 fstp qword ptr [ebp-18]
:0046F6F1 9B wait
:0046F6F2 DD45E8 fld qword ptr [ebp-18]
:0046F6F5 E8CE31F9FF call 004028C8
:0046F6FA DD45F0 fld qword ptr [ebp-10]
:0046F6FD DC4DE8 fmul qword ptr [ebp-18]
:0046F700 DEE9 fsubp st(1), st(0)
:0046F702 DD5DF8 fstp qword ptr [ebp-08]
:0046F705 9B wait
:0046F706 DD45F8 fld qword ptr [ebp-08]
:0046F709 D9E1 fabs
:0046F70B DB2D44FF4600 fld tbyte ptr [0046FF44]
:0046F711 DED9 fcompp
:0046F713 DFE0 fstsw ax
:0046F715 9E sahf
:0046F716 7607 jbe 0046F71F ; 这里就是关键的检测点,不跳即可成功注册!
:0046F718 C605D8C2470001 mov byte ptr [0047C2D8], 01 ; 即将内存[0047C2D8]处置为1
; 上面这段代码有许多浮点运行指令,看不懂。哪位看得懂的,给解释一下。
:0046F71F B201 mov dl, 01
:0046F721 A1342C4400 mov eax, dword ptr [00442C34]
:0046F726 E8813EFDFF call 004435AC
:0046F72B A3580B4900 mov dword ptr [00490B58], eax
:0046F730 6A08 push 00000008
:0046F732 B9E0010000 mov ecx, 000001E0
:0046F737 BA80020000 mov edx, 00000280
:0046F73C A1580B4900 mov eax, dword ptr [00490B58]
:0046F741 E8D64DFDFF call 0044451C
:0046F746 B201 mov dl, 01
说明:0046F716 jbe 0046F71F处即为关键检测点,不跳即可成功注册。
