0167:004BACDE MOV EAX,[EBP-0C]
EAX中是我的用户名
0167:004BACE1 CALL 00403E38
0167:004BACE6 MOV EDI,EAX
0167:004BACE8 TEST EDI,EDI
0167:004BACEA JNG 004BAD24
0167:004BACEC MOV EBX,01
这个1后来要用到
0167:004BACF1 LEA EAX,[EBP-10]
0167:004BACF4 PUSH EAX
0167:004BACF5 MOV ECX,01
0167:004BACFA MOV EDX,EBX
0167:004BACFC MOV EAX,[EBP-0C]
0167:004BACFF CALL 00404040
0167:004BAD04 MOV EAX,[EBP-10]
0167:004BAD07 CALL 00403FFC
0167:004BAD0C MOV AL,[EAX]
将用户名的第一个字符放入AL
0167:004BAD0E LEA EDX,[EBX+17]
EDX=1+23=24
0167:004BAD11 IMUL EDX,ESI
此时ESI=0,EDX=0
0167:004BAD14 AND EAX,FF
0167:004BAD19 IMUL EAX,EAX,BYTE +17 AL乘以23(即第一个字符乘以23)
0167:004BAD1C ADD EDX,EAX
EDX=EDX+EAX
0167:004BAD1E MOV ESI,EDX
ESI=EDX
0167:004BAD20 INC EBX
EBX+1
0167:004BAD21 DEC EDI
EDI-1(EDI是用户名的长度)
0167:004BAD22 JNZ 004BACF1
不为零则跳(即还有用户名字符没有计算)
0167:004BAD24 CMP ESI,[EBP-08]
ESI中是正确的注册码,EBP-8中是你输入的注册码
示例:用户名为123,注册码输入321
计算:真实注册码={[(49x23+24x0)x25+50x23]x26+51x23}=763623
注册机写起来不难~~~~~~~~~~~~~~
- 标 题:OICQ图形留言系统(1千字)
- 作 者:真·伪装者
- 时 间:2001-1-31 3:48:01
- 链 接:http://bbs.pediy.com