iOS逆向工具10-lldb脱壳

一.脱壳原理

当appStore的app载入到内存的时候,是已经脱过壳的二进制数据,所以我们可以把内存中的二进制数据替换掉原始mach-o文件的数据,达到脱壳的目的.

  • 注:苹果的加密算法,使得加密前和加密后的数据大小是一致的.

二.使用lldb脱壳抖音

  1. 抖音的bundleID:com.ss.iphone.ugc.Aweme
    包名:Aweme
  2. 使用usb连接手机,终端输入scp -P 2222 root@localhost:/var/containers/Bundle/Application/62C2A04A-A391-4310-877E-E89E4621EF59/Aweme.app/Aweme ~/Desktop
  3. otool -l Aweme |grep cry查看mach-o信息
   cryptoff 16384
    cryptsize 53739520
      cryptid 1
  1. 打开xcode, debug->attach by name,附加到抖音上
  2. lldb中image list -o -f | grep Aweme拿到偏移量
[  0] 0x000000000491c000 /var/containers/Bundle/Application/62C2A04A-A391-4310-877E-E89E4621EF59/Aweme.app/Aweme(0x000000010491c000)
  1. memory read --force --outfile ~/Desktop/out.bin --binary --count 53739520 0x0000000100d0c000+0x4000

0x4000 就是otool工具cryptoff 16384的头信息所占的大小

  1. 终端输入dd seek=16384 bs=1 conv=notrunc if=./out.bin of=./Aweme
  • dd : linux自带的写入工具
  • seek : 从哪里开始
  • bs : 写入的方式
  • conv : 保留没有被替换的数据
  • if : 输入文件
  • of : 被写入的文件
  1. 将重写后的mach-o文件拖入到machoview中,将cryptid改为0并保存
修改0x00000为0x000001
  1. 使用class-dump导出头信息,脱壳成功.

你可能感兴趣的:(iOS逆向工具10-lldb脱壳)