首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何插入可执行外壳代码?

如何插入可执行外壳代码?
EN

Security用户
提问于 2019-01-12 21:49:56
回答 1查看 303关注 0票数 1

外壳代码(有效载荷)是如何添加到可执行文件的?假设它是近源的。

那么黑客是如何得到它的地址的呢?当他们覆盖回信地址时他们需要这个..。

在对上述情况作出澄清后,我们希望举例说明ASLR如何帮助防止这种情况。

此问题适用于本机代码。

EN

回答 1

Security用户

发布于 2019-01-13 11:44:15

我推荐阅读Aleph的为了好玩和利润而捣毁这堆东西,其中包括一些如何实现它的示例。

那么黑客是如何得到它的地址的呢?

通过使用调试器和程序的反汇编,检查程序集指令。如所引用的文章中所提到的,值得注意的特别事情之一是堆栈指针

CPU有将值推送到堆栈并从堆栈中弹出它们的特殊指令。每次推送将值存储在堆栈指针的当前位置,并减少堆栈指针。pop检索堆栈指针所指向的值,然后增加堆栈指针(不要因向堆栈添加值而减少堆栈指针,而移除值则会增加该值这一事实而感到困惑。

如果未启用布局随机化,则堆栈指针是可预测的,这意味着黑客可以知道如何溢出缓冲区或在何处注入外壳代码。事实上,要回答问题的ASLR部分,可以在如何找到溢出错误的堆栈指针?中看到一个如何有用的示例。

外壳代码(有效载荷)是如何添加到可执行文件的?

来自不可信的输入。这方面的一个例子是通过命令行参数。它可以与其他的功用相结合。

票数 2
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/201368

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档