Linux gdb 破解软件密码

9 篇文章 0 订阅

备注

完整的程序的示例代码在

https://github.com/SimpleSoft-2020/gdbdebug/

这儿有一个完整的破解视频在这儿

https://edu.csdn.net/course/detail/28981

********************************************************************************************************

 

这儿有一个小程序,运行的时候需要输入密码,如果密码输入错误,不能运行,如图所示:

如果密码输入成功,则会显示一个红色的桃心,如图所示。

假设我们不知道这个软件的密码,那我们就可以通过gdb调试的方式来获取这个软件的密码是什么

下面是详细步骤:

启动调试

执行命令 gdb ./crack-section

输入r命令,直接运行,如图所示:

中断,查看调用栈

在输入密码的地方,然后按住ctrl+c,中断下来。

执行命令:bt,查看调用栈情况

切换帧

执行命令 f 6切换到6号帧

打开反汇编窗口

输入layout asm命令,打开反汇编窗口

设置断点

在0x5555555554be地址处,设置断点

命中断点

输入c继续运行,然后随便输入一个密码,比如asd

然后在断点处中断下来。

查看密码信息

在命令窗口中输入命令:

x /s $rdi

x /s $rsi

其中寄存器$rdi中存储的就是我们输入的asd经过加密后字符串

$rsi中存储的就是内置的密码,也是经过简单加密后的结果

求解密码

只要我们推出asd到WiZ的关系,我们就知道了"I_cfb[Ie\\j"对应的原始字符串是什么

asd到WiZ,就是每个字符-10,所以"I_cfb[Ie\\j"对应的原始字符串就是每个字符+10

所以就得到了密码字符串为SimpleSoft

备注

完整的程序的示例代码在

https://github.com/SimpleSoft-2020/gdbdebug/

完整的破解视频在这儿

https://edu.csdn.net/course/detail/28981

********************************************************************************************************

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Simple-Soft

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值