首页
社区
课程
招聘
crackme初學者練習用
发表于: 2013-7-21 20:58 10442

crackme初學者練習用

2013-7-21 20:58
10442
無殼.

無校驗..

無反調適..

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

上传的附件:
收藏
免费 0
支持
分享
最新回复 (10)
雪    币: 859
活跃值: (309)
能力值: ( LV11,RANK:180 )
在线值:
发帖
回帖
粉丝
2
五花无壳无anti...
2013-7-21 21:09
0
雪    币: 175
活跃值: (40)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
3

将两个72改成77就行
上传的附件:
2013-7-26 19:17
0
雪    币: 8
活跃值: (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
[QUOTE=MPL;1203190]
将两个72改成77就行[/QUOTE]

这是?剧透?
2013-7-26 21:38
0
雪    币: 222
活跃值: (241)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
yys
5
适合初学者的东西。谢谢
2013-7-27 09:03
0
雪    币: 11
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
[QUOTE=MPL;1203190]
将两个72改成77就行[/QUOTE]

invoke        GetDlgItem,hDlg,IDC_Edit1
invoke        GetWindowTextLength,eax
.if        (eax < 8 || eax > 16)
        call MessageErr
        jmp        next
.endif
mov        namelen,eax
invoke        GetDlgItem,hDlg,IDC_Edit2
invoke        GetWindowTextLength,eax
.if        (eax < 8 || eax > 16)
        call MessageErr
        jmp        next
.endif

那裡的源碼只不過取得字串長度,
改這樣???
何解??
2013-7-28 00:24
0
雪    币: 1392
活跃值: (5182)
能力值: ( LV13,RANK:240 )
在线值:
发帖
回帖
粉丝
7
看繁體字好不習慣的說。。。。
2013-7-28 06:36
0
雪    币: 38
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
确实只是字符串长度比较而已,个人但是这么改什么都不输入确实能成功。个人觉得这应该是楼主注册码算法的漏洞,空值可以成功,但是随便输入似乎一样不成功。
2013-8-1 18:40
0
雪    币: 11
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
沒注意到修改字符串長度比較會造成這問題,
這確實是未注意到的BUG。
不打算修改了,
看看有沒有人不用這漏洞把它爆破了。
2013-8-1 18:58
0
雪    币: 38
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
我有另一个破解方法:
把 00406138  改成nop
把 00401272  改成jmp short 00401298

首先,我是初学者,这个程序是我的第一个crack(疑似)成功作品。你的算法我实在不知道在哪里看,通过ollydbg粗糙分析了你的代码(而且挺长时间的),代码拷贝到了一开始用virtualalloc开的内存中,然后在判断时调转到这段代码执行,由于这段代码是动态生成(或者说会有个东西一直更新它,初步猜测应该是那几个Timer),每次修改地址为00BXXXXX(忘了),都会在下一次按check时被搞回来。大胆猜测这段代码应该在程序中有一个位置是作为源来拷贝的,所以就找到了00406138,把它改掉。
回来的时候发现还有一个地方老是会跳转到失败的那个对话框,中间那句话00401276无论是改成je还是jnz似乎都不行。索性把他前面的一个语句00401272的jmp short 00401293 改成了 jmp short 00401298。

经过修改之后,只要输入的字符在给定的范围内就会直接成功(似乎是name在8到16位并且password在8到16位就可以了)。

图:
上传的附件:
2013-8-1 21:16
0
雪    币: 37
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
假设输入的密码长度10,那么前5个字母中第一个字母不能出现两次,名字也是这个规则,名字那你改过了,密码这我补充一下,004012AB修改一下,这是修改后的代码
004012AB     /EB 24         jmp 004012D6
这样输入密码前面几位也可以相同了,可以输入aaaaaaaa试试。

到现在为止,输入的name和password都还要求是8-16位的。为了去掉这个限制,可以再修改四行代码,分别如下

修改地址                    修改后
00401351      83F8 00       cmp eax,0x0
00401356      83F8 7F       cmp eax,0x7F
00401380      83F8 00       cmp eax,0x0
00401385      83F8 7F       cmp eax,0x7F
修改的意思是,只要你输入的内容大于0个字符,小于 0x7F个字符就可以。
2013-8-2 10:51
0
游客
登录 | 注册 方可回帖
返回
//