diablo2002’s crackme1算法分析[8]

[入库:2005年8月19日] [更新:2007年3月24日]

本文简介:选择自 bmd2chen 的 blog

.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

本文关键:diablo2002’s crackme1算法分析
  相关方案
Google
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top