【目 标】:diablo2002’s crackme1
【工 具】:ida
【任 务】:算法分析
【操作平台】:win2003
【作 者】: loveboom[dfcg][fcg][us]
【相关链接】: ......
【简要说明】: 一个非常简单的crackme入门级的,以前没有试过用ida分析东西,今天开始试着用ida分析。
【工 具】:ida
【任 务】:算法分析
【操作平台】:win2003
【作 者】: loveboom[dfcg][fcg][us]
【相关链接】: ......
【简要说明】: 一个非常简单的crackme入门级的,以前没有试过用ida分析东西,今天开始试着用ida分析。
【详细过程】:
该crackme是masm32写的,所以非常直观的找到关键处,直接静态分析就可以写出注册机的,分析如下:
.text:00401227 jnz loc_4013bb
.text:0040122d mov eax, [ebp+wparam] ; case eax==wm_command
.text:00401230 cmp ax, 3
.text:00401234 jnz loc_4013d0
.text:0040123a shr eax, 10h
.text:0040123d or ax, ax
.text:00401240 jnz loc_4013b9
.text:00401246 xor eax, eax ; 准备获取用户名
.text:00401248 push 28h ; nmaxcount
.text:0040124a push offset name_szbuffer ; lpstring
.text:0040124f push 2 ; niddlgitem
.text:00401251 push [ebp+hwnd] ; hdlg
.text:00401254 call getdlgitemtexta
.text:00401259 test al, al
.text:0040125b jz name_isempty ; 比较用户名是长是否为0
.text:00401261 cmp al, 20h ; 用户名长度是否大于20h
.text:00401263 jg name_tolong
.text:00401269 cmp al, 5 ; 比较用户名长度是否小于5
.text:0040126b jl name_istoshort
.text:00401271 lea ebx, ds:40318ch ; 取出保存用户名的地址到ebx中
.text:00401277 xor ecx, ecx