由于许可证问题,很少有库无法静态链接.
那么是否可以通过LD_PRELOAD环境变量或通过/etc/ld.so.preload配置来阻止/检测预加载的库?
可以通过getenv()检测前一个.但我不知道另一种方法.
我想可能有一般的方法来做,是吗?
Emp*_*ian 10
是否可以通过LD_PRELOAD环境变量或通过/etc/ld.so.preload配置来阻止/检测预加载的库?
您似乎正在尝试实施某种反黑客保护措施.如果是这样,那么研究现有的防裂技术是值得的.这本书描述了一些.
请注意,除了和之外,还有许多其他技术可以将"外部"代码注入到您的应用程序中.立即想到的一对是:在调试器下运行,并重命名/替换.LD_PRELOAD/etc/ld.so.preloadLD_AUDITlibc.so
你几乎没有希望阻止一个中等复杂的攻击者.在Linux上,我可以构建自己的libc.so.6,我可以重命名LD_PRELOAD为其他东西.我还可以构建自己的内核,并将其自动注入myhack.so到您的进程中,而不会产生任何用户空间可见效果.或者我可以简单地让系统调用在您的应用程序执行时执行其他操作.
...... LD_PRELOAD ...可以通过检测到
getenv()
这将阻止最不复杂的攻击者,原因有两个:
getenv(),并且可以隐藏LD_PRELOAD在您的应用程序中,并且LD_PRELOAD在进程启动只有事宜.在该过程开始之后,预加载的库可以LD_PRELOAD在您的应用程序有机会检查之前轻松地从环境中删除.| 归档时间: |
|
| 查看次数: |
3422 次 |
| 最近记录: |