gpt4 book ai didi

c - memcpy 段错误,这段代码有什么问题?

转载 作者:太空宇宙 更新时间:2023-11-04 02:56:50 25 4
gpt4 key购买 nike

我的软件是一个网络爬虫,当我从 http 响应中获取主体时,它会破解。

resp->body = Malloc(content_len);
memcpy(resp->body, body_start, content_len); //THIS IS THE FAULTY LINE

malloc是malloc的包装函数,所以resp->body不为NULL,content_len是以body_start开头的内存区域的长度,但是它的内容是"PK\003\004\024","\003"是ETX(end of text),"\004"是EOT(end of transmission),"\024"是device control 4,真不知道这些奇怪的字符是什么意思,为什么会破解?

最佳答案

正文是 ZIP 编码的,来自 ZIP wikipedia page ;

Magic number
none, though PK\003\004, PK\005\006 (empty archive), or PK\007\008 (spanned archive) are common.

在阅读之前,您需要检查标题并解压缩正文。

至于段错误,memcpy 的 3 个参数中的任何一个都可能是罪魁祸首,需要显示其初始化的代码才能发现确切的问题。如果您在代码的未显示部分的正文中使用任何字符串函数 (strlen/strcpy),它们可能会像这样用二进制输入中断。

关于c - memcpy 段错误,这段代码有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16313546/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com