我目前正在使用ELF注入器,并且我的方法是标准的:找到代码洞穴(足够长的0序列),用我要执行的指令重写它,然后跳回到原始程序的开始以按以下方式执行通常会。
为了在代码洞中实际执行代码,我尝试了两种不同的方法,这两种方法都会产生sigsegv。
第一个是将入口点更改为代码洞的开始。第二个是“窃取”原始代码中的一些第一条指令,并跳转到我的代码洞穴中,然后在执行注入的代码后,我将首先执行被盗的指令,然后跳转到最后一条被盗的指令之后的指令。原始程序。
我还更改了代码洞穴所在的部分的访问标志。
以下是在gdb中调试程序的屏幕截图:
这是代码洞穴所在部分的标志:
[19] 0x555555556058->0x555555556160 at 0x00002058: .eh_frame ALLOC LOAD READONLY CODE HAS_CONTENTS
编辑:这是Valgrind的输出,因此问题实际上出在权限上。如何允许执行本节中的代码?
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句