• 标 题:为了庆祝论坛重新开张,献上一份厚礼,DBPE 注册码判断核心 (840字)
  • 作 者:IceWorld
  • 时 间:2000-7-7 1:34:55
  • 链 接:http://bbs.pediy.com

DBPE 注册码判断核心
作者:IceWorld
网址:http://iceworld.126.com/
注意:装载请注明出处

            MOV EAX,1
            XOR EBX,EBX
            MOV ESI,4086EE
            ADD ESI,EBP

A_1:        MOV BL,[ESI]            取经过换算的注册码
            CMP BL,00                到末尾了吗?
            JZ A_2
            MUL EBX
            INC ESI
            JMP A_1

A_2:        XOR EAX,[EBP+40A01F]
            XOR EAX,[EBP+4084CF]
            XCHG AH,AL
            MOV EBX,EAX              这时EBX为正确的注册码
            MOV ESI,408702
            ADD ESI,EBP
            CALL Check_Serial        判断注册码正确与否
            CMP EBX,EAX
            JZ Serial_OK            如果正确则AX=1

            MOV AX,0                如果错误则AX=0
            RET

Serial_OK:  MOV AX,1
            RET

  • 标 题:GOOD~~~~ (964字)
  • 作 者:D.Boy
  • 时 间:2000-7-7 12:32:05

不知道IceWorld对付的是哪一版本呢? 1.2版本的得到算法代码不难,如果是
1.5的话实在佩服! :)    1.5在前面部分的算法和1.2有些不同!

文章中有点地方有误:

A_1:        MOV BL,[ESI]            取经过换算的注册码
            CMP BL,00                到末尾了吗?
            JZ A_2
            MUL EBX
            INC ESI
            JMP A_1
这是对输入的名字进行换算,得CRC到EAX


A_2:        XOR EAX,[EBP+40A01F]       
            XOR EAX,[EBP+4084CF]
xor register key和硬件代码。


            XCHG AH,AL
            MOV EBX,EAX              这时EBX为正确的注册码

            MOV ESI,408702
            ADD ESI,EBP
            CALL Check_Serial        判断注册码正确与否
这个CALL是Str to int,把输入号放到EAX.


            CMP EBX,EAX
            JZ Serial_OK            如果正确则AX=1

            MOV AX,0                如果错误则AX=0
            RET


                欢迎大家去K幻影,感谢大家对幻影有兴趣。 ^_^