吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 4790|回复: 52
收起左侧

[分享] 记录个堆栈图,逆向的朋友应该能看的懂滴

  [复制链接]
sijor 发表于 2020-7-24 19:54
自己试着画了大神海哥教的堆栈图,瞬间就明白了,什么是缓冲区溢出,领悟代码真正的底层原理,所以在这里做个记录,和在学习逆向的朋友一起研究,大神路过勿喷,向海哥致敬!
源码在这里:
#include <stdio.h>

void plus()
{
        while(1)
        {
                printf("执行了!!\n");
        }
       
}

int fun()
{
        int rarry[9];
        rarry[10] = (int) &plus;
        return 0;
}

void main()
{
        fun();
        getchar();
        return;
}

堆栈图

堆栈图

免费评分

参与人数 4吾爱币 +2 热心值 +4 收起 理由
wuliwuli + 1 谢谢@Thanks!
Curry霄 + 1 谢谢@Thanks!
LOLQAQ + 1 + 1 我很赞同!
caketi + 1 + 1 我很赞同!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

351 发表于 2020-7-25 08:43
感谢分享,这个图加源码一看就懂了。
张傻子 发表于 2020-7-25 13:22
Akasoent 发表于 2020-7-25 13:03
现在连C语言都看不懂了。。。。。
  rarry[10] = (int) &plus;
前面是数组越界,后面的原函数返回为空, ...

这个的意思应该是rarry[9]的地方是定义的数组的边界,rarry[10]的地方放那个函数的地址!
__不说 发表于 2020-7-28 09:13
sijor 发表于 2020-7-25 20:21
再看看是不是源码打错了,相信在大家的编译器里执行也是没问题的

他可能是用的64位的编译器,指针占8字节,但是int占4字节就会报错,换成32位的编译器应该就没问题了
az12az 发表于 2020-7-24 19:59
感谢楼主分享。
896719161 发表于 2020-7-24 20:01
感谢楼主分享
马猴煮酒 发表于 2020-7-24 20:05
感谢楼主分享
zhaodan21 发表于 2020-7-24 20:07
感谢楼主分享!
ychiou 发表于 2020-7-24 20:08
不懂~~~~~~~~~~~~
xiaoyudian 发表于 2020-7-24 20:15
谢谢分享
萧诸 发表于 2020-7-24 20:36
感谢楼主分享
luohongsheng 发表于 2020-7-24 20:47
谢谢分享
xctdxctd 发表于 2020-7-24 20:48
感谢楼主分享!学习了~!
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-16 12:59

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表