安全二进制学习
逆向相关
简单的elf注入方式
- 最简单,但是限制最多,直接硬编码hard code
- LD_PRELOAD修改共享库,注意LD_PRELOAD只能使用绝对路径,且不能注入静态链接的函数
- 实现的历程实际上是个hook过去代码的地址,然后调用load dlsym函数,获取指向共享库函数的指针,做一些检查再把流程传递回原本的流程。从而能够方便的注入(hook)代码
- 高级技巧
- elfinject技术,注入代码节,覆盖原有的代码,并且修改entrypoint
- 注入代码节,但是不修改entrypoint,然后
- 或者手动修改entrypoint
- 或者劫持构造函数和析构函数,得返回具体初始化的地址的硬编码
- 劫持plt
- 劫持got
结尾
唉,尴尬