链接:百度云盘 密码:jl7w
最近一直在学习PE 本来还想写一个简单的加密壳 但是感觉自己水平还差点 所以 打算和我一个小伙伴一起合作 等到开学如果能够写出来 会把源码粘出来 分享给大家
我这里和大家声明一下 我这个是文件 是来自吾爱破解的creakme 160 导航链接 帖子里面有更厉害的思路
本帖是编号为65的creakme
本来不是很想再做一些简单的creakme 但是感觉现在基础还是有点差 打算先做一些基础的 再去做一些难的 我们先来看一下这个程序
这个看起来好像一般般 但是如果随便输入 然后点开 按钮 发现 没有什么反应 应该是输入正确的 才会出现窗口 然后我们拖入od 先来看看字符串
然后这个就很清楚了 我们只需要点开看看往上找判断的部分就可以了
我发现了这个 并注释了
00401344 |. E8 F3010000 call <jmp.&USER32.GetDlgItemTextA> ; \GetDlgItemTextA
00401349 |. 09C0 or eax,eax 输入的内容
0040134B |. 74 32 je short figugegl.0040137F
0040134D |. 31FF xor edi,edi
0040134F |. EB 15 jmp short figugegl.00401366
00401351 |> 0FBE443D D6 /movsx eax,byte ptr ss:[ebp+edi-0x2A] eax是注册码
00401356 |. 0FBE543D EB |movsx edx,byte ptr ss:[ebp+edi-0x15] edx是name
0040135B |. 29FA |sub edx,edi edi是索引值 初始值为0
0040135D |. 39D0 |cmp eax,edx 然后比较两者的值
0040135F |. 74 04 |je short figugegl.00401365
00401361 |. 31C0 |xor eax,eax eax=0
00401363 |. EB 1A |jmp short figugegl.0040137F 不成功直接失败
00401365 |> 47 |inc edi edi+1
00401366 |> 39F7 cmp edi,esi esi为name的长度
00401368 |.^ 7C E7 \jl short figugegl.00401351
0040136A |. 6A 00 push 0x0 ; /Style = MB_OK|MB_APPLMODAL
0040136C |. 68 48204000 push figugegl.00402048 ; |Title = "Success"
00401371 |. 68 50204000 push figugegl.00402050 ; |Text = "Congratulations - you did it!"
00401376 |. 53 push ebx ; |hOwner = 00060824 ('-={ figugegl }=- Crackme #1',class='#32770')
00401377 |. E8 E4010000 call <jmp.&USER32.MessageBoxA> ; \MessageBoxA
0040137C |. 31C0 xor eax,eax
那么我们就可以写出这个算法 还是用python写吧
name=input()
strr=input()
for i,line in enumerate(name):
if(ord(line)-i!=ord(strr[i])):
break
else:
print("注册成功!")
大概就是这个意思吧