OICQ圖形留言系統(1千字)

看雪資料發表於2015-11-15

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
序號產生器寫起來不難~~~~~~~~~~~~~~

相關文章