LLDB 解密-砸壳 Framework

2018-10-28  本文已影响12人  carpond

准备工作

找出程序的可执行文件路径

列出所有的 Frameworks

把所需要解密的库,复制出来

获取可执行文件的头部信息

图1.png

获取64位的加密信息(arm64)

LLDB 附加

获取解密的目标文件加载模块的基地址

图3.png

获取解密后的二进制数据

图4.png

~/Desktop/dumpoutput 是保存到本地计算机的目标可执行文件,这个文件包含的是解密后的数据

修复文件

因为 dump 出来的文件都没有 Mach-O 文件头,所以要先把 dump 出来的数据写会原来加密的文件,以替换原来加密的部分.

图5.png

20086784是20070400+16384的计算结果.20070400是之前获取的 arm64架构的偏移值 offset,16384 是加密数据的 crypoff, 二者相加,得到了写入加密数据在文件中的偏移值

替换之后,使用 lipo 从 FAT 文件中提取 arm64 架构的文件,然后将 arm64_tmp 拖到 MachOView 中,修改 cryptid 的值为00000000,然后就完成了 framework 的解密.

图6.png 图7.png

查看64位的加密信息

图8.png

完成

部分 framework, 通过 image li 查不到基地址,解密的方式待续!

上一篇 下一篇

猜你喜欢

热点阅读