.text:0040139d push 0 ; hwnd
.text:0040139f call messageboxa
.text:004013a4 jmp short loc_4013b9
.text:004013a6 ; ----------------------------------------------------------------------------
.text:004013a6
.text:004013a6 correct_key: ; code xref: sub_401109+216j
.text:004013a6 push 0 ; utype
.text:004013a8 push offset agoodcracker ; lpcaption
.text:004013ad push offset aserialiscorrec ; lptext
.text:004013b2 push 0 ; hwnd
.text:004013b4 call messageboxa
.text:004013b9
.text:004013b9 loc_4013b9: ; code xref: sub_401109+137j
.text:004013b9 ; sub_401109+25cj ...
.text:004013b9 jmp short loc_4013d0
总结一下算法为:
只用注册名的前五位参与运算。共分为三个部分
第一部分:
count1=5
取用户名的每一位nameval1
nameval1 异或29h加上循环值count1
运算后的值小于41h或大于5ah则nameval1=52h + count1
count1-1,直到count1为0结束第一部分key1
第二部分:
count2=5
取用户名的每一位nameval2
nameval2异或27加上循环值加上1
运算后的值如果小于41h或大于5ah则nameval2=4dh+count2
count2=count2-1直到count2为0结束第二部分key2
第三部分:
count3=0
tmpkey=key1+key2
取tmpkey的每一位keyval
keyval加上5
运算后的值如果大于5ah则keyval=keyval-0d
keyval异或0ch
如果异或后的值小于41则keyval=4b加上count3
如果异或后的值大于5ah则keyval=4bh减去count3
循环10次,得出正确注册码。
附件里有asm和 vb版的注册机j
greetz:
fly.jingulong,yock,tdasm.david.hexer,hmimys,ahao.ufo(brother).alan(sister).all of my friends and you!
by loveboom[dfcg][fcg][us]
email:loveboom#163.com
date:2005-6-12 13:49