软件安全试验2

这篇博客主要探讨了软件安全中的堆栈溢出问题,通过分析stackvar和stackoverrun两种情况,揭示了如何利用堆栈信息改变程序流程。作者使用OD调试器,通过跟踪函数调用和汇编指令,展示了如何构造特定的字符串以改变eax寄存器的值,从而实现密码验证的绕过。同时,还介绍了覆盖返回地址的方法,包括使用call esp技巧来调用目标函数,并讨论了在不同环境下如何生成16进制ASCII码。
摘要由CSDN通过智能技术生成

这篇日志里,只分析了stackoverrun和stackvar,另外一个overflowet由于相似性就不再写了,如果你不知道怎样输入对应16进制的ascii码,可以直接拉到最后看最后一点

我又改了改,实际上对不对还是不太确定,因为堆栈那边的东西没吃懂。。。。

stackvar 篇

首先我们需要找到程序的具体比较函数的入口点。我们在OD里按F8,发现到00401724的call边走不下去了,随便输入hxndg,然后就直接弹出“incorrect password”可见读入我们的注册码并进行比较的过程就发生在这个call里,F7跟入。

跳到了这里,看到下面的main了吧。

继续F7我们跳转到了下面的地址

 

 

 

 

 

 

开头的一堆push ebp什么的指令可以忽略掉,因为那个和“我们这儿”并不是十分有关。

现在让我们看下一张图,下面就是main函数对应的汇编指令


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值