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