如何解决在自定义地址启动/执行具有初始堆栈的进程
我想在 linux 上更改程序的起始堆栈地址。
我检查了一些内核源代码,发现了
extern void start_thread(struct pt_regs *regs,unsigned long new_ip,unsigned long new_sp);
但我没有找到从外部(内核)影响它的方法。
理想情况下,我的操作系统 (debian) 的一些配置将是完美的。但我不知道该怎么做...
我知道一些与堆栈相关的函数,如 setrlimit() 和 ulimit(),但这并不能解决问题。
gdb 可能有一些这样的功能吗? (如果程序在gdb里面运行就没有问题。)
既然是自己写的程序,我也想过在程序启动的时候做一个大的malloc,把esp/ebp改成指向它。但这并不理想。
如果有人知道 Linux 进程创建的一些黑暗特性就好了!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。