最近分析某幸app的时候,发现lib***DD.so做了点小防护,section全部解析出错。
看来对section做了手脚,导致没有解析到。
- 用010editor打开此so,发现其section的偏移地址有点问题
- 0x3A338代表了section的偏移地址,
- 0x6表示有6的节区,0x5表示第5个节区为字符节区。
跳转到0x3A338看看,发现确实只有.dynamic,那肯定section的偏移地址被修改。6个节区肯定也是假的。
往上看,在地址0x39F1C,发现这里才是正确section的偏移地址。
修改header,将e_shoff_SECTION_HEADER_OFFSET_IN_FILE修改成0x39F1C。
接下来算下正确的节区个数,算出来是25个,加上节区头部,那就是26个。那就好办了。继续修改header头,将节区大小,及字符节区25回填回去。
-
按F5,刷新010的模版,发现节区全部解析出来了。
完工 。 。