感谢1212!!! (1千字)
当我遇到实时比较的程序时总感到无处下手。首先感谢楼上的1212大侠。
闲话不说,let's go!
bpx 442c78
g
016F:00442A93 MOV ECX,[EBP-04] //这里开始由用户名生成一个数A
016F:00442A96 MOVZX ECX,BYTE [ECX+EAX-01]
016F:00442A9B MOV ESI,[EBP-04]
016F:00442A9E MOVZX ESI,BYTE [ESI+EAX]
016F:00442AA2 IMUL ECX,ESI
016F:00442AA5 IMUL ECX,EAX
016F:00442AA8 ADD EBX,ECX
016F:00442AAA INC EAX
016F:00442AAB DEC EDX
016F:00442AAC JNZ 00442A93 //不跳,完成用户名处理
016F:00442AAE MOV EAX,[EBP-08]
016F:00442AB1 CALL 00407670 //这里由注册码生成一个数B
016F:00442AB6 SUB EBX,EAX //A-B
016F:00442AB8 CMP EBX,029A //A-B=29a
016F:00442ABE JNZ 00442AC4 //跳就死
016F:00442AC0 MOV BL,01
----------------------------------------------------------
//注册码的处理部分
016F:004029AA SUB BL,30
016F:004029AD CMP BL,09
016F:004029B0 JA 004029DE
016F:004029B2 CMP EAX,EDI
016F:004029B4 JA 004029DE
016F:004029B6 LEA EAX,[EAX+EAX*4] //eax=eax+eax*4
016F:004029B9 ADD EAX,EAX
016F:004029BB ADD EAX,EBX
016F:004029BD MOV BL,[ESI]
016F:004029BF INC ESI
016F:004029C0 TEST BL,BL
016F:004029C2 JNZ 004029AA
------------------------------------------------------------
还有一点
016F:00442A5A XOR EAX,EAX
016F:00442A5C PUSH EBP
016F:00442A5D PUSH DWORD 00442AE5
016F:00442A62 PUSH DWORD [FS:EAX]
016F:00442A65 MOV [FS:EAX],ESP
016F:00442A68 MOV EAX,[EBP-04]
016F:00442A6B CALL 00403A34
016F:00442A70 CMP EAX,BYTE +05 //用户名是否大于5位
016F:00442A73 JNG 00442AC8 //少于则死
016F:00442A75 MOV EAX,[EBP-04]
整理:
name :THK123
sn: 49763
THK
