现代密码学发展到今天,应该来讲破解密码的可能性已经很低了,而且破解的方法比较单一,因为现在普遍采取不可逆的哈希加密方式(如md5、SHA-1、HMAC-MD5等等),无法通过反向计算破解密码,因此目前有效的密码破解方式仍然是哈希碰撞来暴力破解。

暴力破解的本质就是遍历所有可能,而且我们可优化的地方只能是策略层面的,也就是提高遍历所有情况的效率。不过今天我们要讲的的不是暴力破解,我们接下来要说的是跟C语言学习有关的一个密码破解的案例,一定程度上也提供了一种密码破解策略,大家请先看代码:

1

密码破解C语言案例

2

破解案例分析

上面的代码其实很简单,提示用户输入密码,读入字符数组,通过比较函数验证密码,正确的话输出破解成功,错误提示密码错误,密码为abc。当然这个案例有很多地方比较理想化,省略了很多东西,但我们想讲的是这种破解思想。

从代码中可以看出通过if语句即为破解成功,也就是打印出密码破解成功即可。讲到这里,其实我们大家有一个思维误区,就是认为密码破解就是要找出原始密码才算成功,其实不是这样的。

if(0==strcmp("abc",password)) {      flag=1;//关键在于让flag变为非零值,密码abc只是为flag重新赋值提供条件  }

我们换个角度来思考,在这个例子中,要想通过if语句,也就是说验证密码得成功,需要把flag重新赋值进而通过if语句的判断条件,问题就在这里,我们的最终目的是通过if判断语句,也就是说判断条件得为真,而上面输入密码等一些列过程最终就是让if判断语句为真,也就说我们可以抛弃密码这个概念,只要让if判断条件为真,即可破解成功,能否想到这一步很重要!!!

接下来我们的工作就是想方设法让if判断条件为真了,也就是给flag重新赋一个非零值,但可操作的只能是用户输入,这似乎有点难度。其实这里就用到了平时我们要极力避免的bug——栈溢出。大家这样想,我们没办法直接修改flag的值,但可以肯定的是, flag和输入的密码都位于同一个内存区域,而存储密码的数组总是有限的,是否可以通过输入足够长的密码来使数组数据溢出到存储变量flag的内存位置来改变flag的值?答案是可以的。大家看图:

3

总结反思

破解上述密码的关键在于利用数据溢出这一漏洞。如果用户输入一个足够造成缓存溢出并且重写“flag”变量默认值所存在位置的内存的长“密码”,即使这个密码无法通过验证,flag验证位也变成了非零,虽然上面的密码并不等于正确密码abc,但我们仍然可以通过缓存溢出绕开密码安全保护

想要成为一个优秀的、有能力程序员,做软件开发的话,就来学习C/C++吧,而且学习编程的话有一个学习的氛围跟交流圈子特别重要!这里我推荐一个C语言C++交流扣裙,--先八七零九;后63251,不管你是大牛还是小白,大家都一起成长进步。

当然上面的例子有很多理想化的地方,但是到现在每年因为数据溢出漏洞造成损失还很大。以上只是密码破解领域的一种策略,开头就说了真正的密码破解远没有这么简单,但我们主要想讲的是这种问题转化的思维,它在计算机领域的应用是很多的,希望这种思想能给大家的学习生活帮上一点忙,就到这吧,谢谢各位!

C语言密码破解案例,精彩啊!相关推荐

  1. C语言密码破解!远没有你想的那么简单!

    导语 各位,大家看到标题先别着急,我先大伙聊聊密码破解的事,后面会有C语言的破解案例. 现代密码学发展到今天,应该来讲破解密码的可能性已经很低了,而且破解的方法比较单一,因为现在普遍采取不可逆的哈希加 ...

  2. Rar加密文件破解案例

    Rar加密文件破解案例 Simeon 本文已投51cto网站 通过本案例可以学习到: (1)了解破解rar加密文件方面的相关知识 (2)使用工具软件Advanced RAR Password Reco ...

  3. Foxmail6密码获取案例

    Foxmail6密码获取案例 Simeon 以前曾经写过一篇Foxmail5.0邮件账号以及密码获取的文章,对于Foxmail5.0中邮件账号密码获取相对较简单,可以通过星号密码查看器即可查看保留在F ...

  4. Vista登录密码破解

    Vista登录密码破解 今天 退域后,忘记本机密码,打给ITG, 说要重装,不甘心,找了篇文章,阅读之,果然修改完毕.省我2个workday. 哈哈,和大家一起分享一下. Vista登录密码破解并不多 ...

  5. 【WiFi密码破解详细图文教程】ZOL仅此一份 详细介绍从CDlinux U盘启动到设置扫描破解

    From: http://softbbs.zol.com.cn/1/32_7991.html 每天都能看到有不少网友在回复论坛之前发布的一篇破解WiFi密码的帖子,并伴随各种疑问.今天流云就为大家准备 ...

  6. 【WiFi密码破解详细图文教程】ZOL仅此一份 详细介绍从CDlinux U盘启动到设置扫描破解-破解软件论坛-ZOL中关村在线...

    [WiFi密码破解详细图文教程]ZOL仅此一份 详细介绍从CDlinux U盘启动到设置扫描破解-破解软件论坛-ZOL中关村在线 好了,先说下提前要准备的东东吧: 1.U盘一枚,最小1G空间.需进行格 ...

  7. win7登录密码破解工具

    http://bbs.360.cn/4004079/252123738.html win7登录密码破解工具(开机绕过登录密码) 软件分类:系统工具 运行环境:Win2000/WinXP/Win2003 ...

  8. Windows Server 2008密码破解

    Windows Server 2008密码破解 ant 案例背景: 1.Windows Server 2008 R2的DD镜像文件一个,大小:1TB,文件名:1.001 2.用户名.密码未知. 案例目 ...

  9. kali密码破解笔记

    密码破解 思路 目标系统实施了强安全措施 ·安装了所有补丁 ·无任何已知漏洞 ·无应用层漏洞 ·攻击面最小化 社会工程学 获取目标系统用户身份 ·非授权用户不受信,认证用户可以访问守信资源 ·已有用户 ...

最新文章

  1. bert-as-service使用
  2. Spring Boot一键换肤,so easy!
  3. 快手小葫芦网红收入大数据_KS第一个粉丝量破亿账号出现,竟是他!送辛巴上央视的网红被曝光!方丈曝出被封杀网红身份信息!球球自爆发家史,偷卖赵本山老师鞋子!...
  4. linux qt libusb,Ubuntu15下Qt+libusb开发
  5. $_POST[] name
  6. 解决 RaspberryPi 树莓派 NTP服务异常 无法自动同步时间
  7. mysql java safe model_被 MySQL sql_mode 深深伤害( 中 )
  8. HTML5之本地存储localstorage
  9. 【干货】基于注意力机制的seq2seq网络
  10. (一)VirtualBox安装增强功能
  11. 高考数学必背公式整理[衡水中学高中数学组]
  12. vue:高德地图的使用
  13. 07_Python3.6+selenium2.53.6自动化测试_通过id定位百度输入框
  14. 在线制图工具团队版介绍
  15. 低端交换机环路检测专题
  16. iOS14 YYAnimatedImageView图片不显示,多数用在YYLabel的富文本中添加的图片
  17. 机器学习-周志华-课后习题答案-线性模型
  18. 测试新人如何编写测试用例?一文带你写一个合格的测试用例
  19. 6个免费PPT模板网站,简直不要太好用
  20. pyside6 - 简单了解

热门文章

  1. 深扒人脸识别60年技术发展史
  2. Win7codecs解码包实现.avi等视频文件播放
  3. 做闲鱼两年了,bug不少
  4. 学生和老师匹配java_结对编程作业——毕设导师智能匹配
  5. 在线玩家人数上限实时监测(Photon)
  6. 【金猿产品展】SenseCore商汤AI大装置——推动物理世界的全面数字化转型
  7. 算法学习——递推之水手分椰子
  8. 默安科技入选2021年网络安全优秀企业“云安全十强”
  9. 播放器php调用不显示不出来,php – Jwplayer:加载播放器时出错:找不到可播放的来源...
  10. 计算机专业小学期实验心得,小实验作文心得最新5篇