首页
社区
课程
招聘
[原创][原创]小弟写的一个crackme求指点,谢谢大家能来看
发表于: 2015-8-14 19:03 10465

[原创][原创]小弟写的一个crackme求指点,谢谢大家能来看

2015-8-14 19:03
10465
这是小弟写的第一个crackme,仅支持输入数字。。。输入username和passwor以后会提示success或者lose字样。做了一点防爆破,希望看到的各位有时间的话能来指点指点,
部分username和password供参考
0-------6 1------7 456------62
最后,不论各位有没有时间指点,能来看这个帖子小弟就感激不尽了

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

上传的附件:
收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 204
活跃值: (911)
能力值: (RANK:1324 )
在线值:
发帖
回帖
粉丝
2
算法是:((username+5)%400)+1)%400=password%400
比如:username=999999;password=5;
这个CRACKME有一个缺陷,当输入的(password%400)>=100时,程序不会显示lose字样,反而是产生异常就终止了。
看了下内存发现:跳转指令只占用了400个内存。作者应该没考虑到每个地址占4个字节。要把1600字节的内存都初始化才对。。
2015-8-14 23:24
0
雪    币: 12502
活跃值: (3058)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
3
谢谢jackandkx大哥,我也把我的思路说一下吧。我是先有两个函数,一个注册成功的函数,一个是注册失败的函数。然后定义了一个结构体类型,里面存放400个函数指针,其中399个是指向lose函数的(也可以指向其他失败函数),正确的注册函数只有1个。程序运行时先填充好400个函数指针,都指向失败的函数,然后scanf输入用户名,此时计算出来一个key(1=<key<=400),然后把之前的结构体类型的第key个函数填充成成功的函数。然后scanf要求输入密码,根据密码得出一个index,然后执行第index位置的函数。这样的话好像是做到了防止修改一个跳转字节的爆破
jackandkx大哥谢谢你
2015-8-15 15:06
0
雪    币: 41
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
我也下载学习下
2015-8-16 11:48
0
雪    币: 12502
活跃值: (3058)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
5
谢谢,欢迎来指点
2015-8-16 14:05
0
雪    币: 2
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
新手前来学习
2015-8-16 14:07
0
游客
登录 | 注册 方可回帖
返回
//