dump网易加固的libUE4.so
0x0 前言
刚好最近有空,顺便再记录一下之前一次dump莉莉丝的farlight84 libUE4遇到的问题,他本来用的tx的安全,后面不知道为啥换成网易的。
0x1 dump libUE4.so
他这个so本身也是有加密的,需要dump加载解密后的libUE4.so,首先用ue4dumper尝试dump一下,结果发现提示不是elf文件。

他这个提示头错误不是elf文件,那可能就是elf头有问题,试试手动给他dump下来,首先找PID
1 | ps -ef|grep farlight84 |

找到pid之后,用这个命令找到libUE4.so的起始地址和结束地址
1 | cat /proc/25093/maps|grep libUE4 |

用这个命令dump内存 skip=开始内存地址(10进制) count=dump内存大小(10进制)
1 | dd if=/proc/25093/mem of=/data/local/tmp/libUE4.so skip=502757203968 bs=1 count=371871744 |

ok,现在已经成功dump了内存了,那么接下来看看他这个到底是个什么东西。
0x2 分析dump后的libUE4.so
拖进010editor看看,果然不太对劲,elf头被修改了,怪不得

上面这个是dump后的libUE4头,下面这个是原版的libUE4头

那么很简单,直接给他替换过去就行。
0x3 修复dump后的libUE4.so
这里用sofixer去修复, https://github.com/F8LEFT/SoFixer

修复后的so ida能正常识别了

0x4 小结
至此,dump libUE4的流程就结束了,后面dumpSDK那些没什么额外的处理。其实后面继续逆向的时候发现,他这种处理方式会导致某些工具因为识别不到elf头,找不到libUE4,例如ce和用某些栈回溯工具。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 黑岩的小屋!
评论