为什么黑客可以通过一点点程序未处理好的内存空间就可以执行任意程序?

2023-02-07 14:43:06 +08:00
 bl
1107 次点击
所在节点    问与答
9 条回复
Jooooooooo
2023-02-07 14:49:30 +08:00
可以研究下机器是怎么调用方法

比如调用之前会把当前执行那一行的地址保存下来, 如果用溢出之类的方法篡改这个地址就可以执行别的东西了
kxuanobj
2023-02-07 15:46:11 +08:00
能放得下一个 loader 就行了。靠这个 loader 继续加载更多信息。

x86 的 BIOS 只给了 510 个字节,就可以把整个操作系统跑起来。
bl
2023-02-07 15:48:43 +08:00
@Jooooooooo 执行的东西是怎么传上去的,起初只有一点点内存空间
bl
2023-02-07 15:49:35 +08:00
@kxuanobj 加载的东西,存哪里?还是说,有一点点内存空间就可以使用整个硬盘?
Jooooooooo
2023-02-07 15:57:13 +08:00
@bl 比如啊, 你写一个加法, a+b 要存到一个 32 位的地址里, 但是你构造一个超出长度的返回结果, 不光是把这 32 位占用了, 把旁边的 32 位也用加法的结果覆盖了, 这样你就访问到了本来不应该访问的地址. (当然这只是举个例子
kxuanobj
2023-02-07 16:34:00 +08:00
@bl 拿到任意代码执行权,就啥都能做了。

比如直接系统调用 /bin/bash 。用 /dev/tcp 打个管道。啥都能扔到系统里跑。
lambdaq
2023-02-07 16:43:43 +08:00
这就要聊到冯诺依曼架构的问题了。2333
shawnsh
2023-02-08 09:13:33 +08:00
没什么高级的东西,跟编程没啥关系,都是一些技巧
bl
2023-02-08 11:20:45 +08:00
@shawnsh 怎么可能和编程没有关系,需要找到漏洞再利用漏洞。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/913937

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX