本帖最后由 jbczzz 于 2024-10-9 13:45 编辑
0x0 前言
刚好最近有空,顺便再记录一下之前一次dump莉莉丝的farlight84 libUE4遇到的问题,他本来用的tx的安全,后面不知道为啥换成网易的。
0x1 dump libUE4.so
他这个so本身也是有加密的,需要dump加载解密后的libUE4.so,首先用ue4dumper尝试dump一下,结果发现提示不是elf文件。
他这个提示头错误不是elf文件,那可能就是elf头有问题,试试手动给他dump下来,首先找PID[Asm] 纯文本查看 复制代码 ps -ef|grep farlight84
找到pid之后,用这个命令找到libUE4.so的起始地址和结束地址[Shell] 纯文本查看 复制代码 cat /proc/25093/maps|grep libUE4
用这个命令dump内存 skip=开始内存地址(10进制) count=dump内存大小(10进制)
[Shell] 纯文本查看 复制代码 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和用某些栈回溯工具。 |