Mat*_*ner 9 c python linux function-interposition interposing
open()
在前几次调用之后,使用函数插入for Python似乎不起作用.我怀疑Python正在进行某种初始化,或者某些东西暂时绕过我的功能.
这里的open
电话很明显:
$ cat a
hi
$ LD_PRELOAD=./libinterpose_python.so cat a
sandbox_init()
open()
hi
Run Code Online (Sandbox Code Playgroud)
在Python初始化过程中它会发生一次:
$ LD_PRELOAD=./libinterpose_python.so python
sandbox_init()
Python 2.7.2 (default, Jun 12 2011, 20:20:34)
[GCC 4.6.1] on linux2
Type "help", "copyright", "credits" or "license" for more information.
open()
>>>
sandbox_fini()
Run Code Online (Sandbox Code Playgroud)
在这里根本没有发生,并且没有错误表明文件句柄已删除写权限:
$ LD_PRELOAD=./libinterpose_python.so python3 -c 'b = open("a", "w"); b.write("hi\n"); b.flush()'
sandbox_init()
sandbox_fini()
Run Code Online (Sandbox Code Playgroud)