1
Jooooooooo 2023-02-07 14:49:30 +08:00
可以研究下机器是怎么调用方法
比如调用之前会把当前执行那一行的地址保存下来, 如果用溢出之类的方法篡改这个地址就可以执行别的东西了 |
2
kxuanobj 2023-02-07 15:46:11 +08:00
能放得下一个 loader 就行了。靠这个 loader 继续加载更多信息。
x86 的 BIOS 只给了 510 个字节,就可以把整个操作系统跑起来。 |
3
bl OP @Jooooooooo 执行的东西是怎么传上去的,起初只有一点点内存空间
|
5
Jooooooooo 2023-02-07 15:57:13 +08:00
@bl 比如啊, 你写一个加法, a+b 要存到一个 32 位的地址里, 但是你构造一个超出长度的返回结果, 不光是把这 32 位占用了, 把旁边的 32 位也用加法的结果覆盖了, 这样你就访问到了本来不应该访问的地址. (当然这只是举个例子
|
6
kxuanobj 2023-02-07 16:34:00 +08:00
|
7
lambdaq 2023-02-07 16:43:43 +08:00
这就要聊到冯诺依曼架构的问题了。2333
|
8
shawnsh 2023-02-08 09:13:33 +08:00 via Android
没什么高级的东西,跟编程没啥关系,都是一些技巧
|