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和用某些栈回溯工具。