1. Section 段处理
鉴于 shdr 没有被 linker 用于加载,故可以对 Section 段写入无用数据,可以阻碍静态分
析软件的分析。
2. Program 段处理
Program 段中可以对 dynamic 区段进行混淆,添加重复和无效的数据。
3. Demo 演示
混淆方法一:
将 elf header 中的 section 相关参数置 0


修改后 ida 的识别情况:一些函数无法正常识别

混淆方法二:
将 section_header_table 中的 offset 和 addr 置 0



左侧函数列表很多函数没有被正常识别

如果将所有的 addr 和 offset 都清空掉,那么左侧没有函数被识别

混淆方法三:
dynamic 段添加重复和无用数据,如果要还原的话只需要关注最后一段数据,删除掉之
前重名的数据,因为后面的数据会覆盖掉前面的数据。

混淆还原:
方法一:手动将 start 和 end 地址重新赋值
方法二:将 section 段信息清空为 0(最简单,而且具有普适性)



本文探讨了针对ELF文件的三种混淆方法,包括修改section参数、置零section_header_table及dynamic段添加冗余数据,以及两种混淆后的还原方法。通过实际案例展示了IDA软件在面对混淆后的ELF文件时的识别困难。
4455

被折叠的 条评论
为什么被折叠?



