砸壳简介

为何砸壳

  • appstore 给应用加密了
  • 砸壳:不知道解密的确切方法,调用苹果的解密程序

砸壳的方式

  • 两种砸壳方式
  • 静态:解密程序调用
  • 动态:app跑到内存,将内存砸壳的二进制文件拷贝出来
  • 砸壳工具,有很多主要介绍dumpdecryptedClutch
dumpdecrypted、Clutch、AppCrackr、frida-ios-dump

砸壳工具

  • 硬件工具:
    iphone 5s
  • 软件工具
    1、clutch
    2、iFunBox
    3、class-dump

砸壳步骤

Cluth砸壳步骤:

  1. 映射手机
  2. 拷贝砸壳工具clutch到手机上:【& scp -P 12345 Clutch-2.0.4 root@localhost:/usr/bin】
  3. 连接 【& sh usblogin.sh】
  4. 查看手机该目录下是否有Clutch-2.0.4:【& cd /usr/bin】【 & ls】
  5. 重命名Clutch-2.0.4 【& mv Clutch-2.0.4 Clutch】【 & ls】
  6. 给执行权限,给完后会变黑:【& chmod +x Clutch】
  7. 查看那些应用没有砸壳:【& Clutch -i】
  8. 进行砸壳:【& Clutch -d XX】 XX为序号或者BundleID
  9. 砸壳完成后,会生成一个ipa包,注意查看路径,可以用iFunBox 进入手机目录查看
  10. 可以直接从iFunBox拖出来到桌面,找到.app,查看包内容,找到可执行文件
  11. 对可执行文件进行查看:【& otool -l XX | grep crypt】,看参数 cryptid 对应的值,0 为已砸壳,1 为未砸壳
  12. 导出应用头文件:【& class-dump -H XX -o ./Headers】

dumpdecrypted

  1. 到【github】下载【dumpdecrypted】
  2. 到【dumpdecrypted】路径下:【& make】, 会生成【dumpdecrypted.dylib】动态库
  3. 拷贝【dumpdecrypted.dylib】到手机:【 &scp -P 12345 dumpdecrypted.dylib root@localhost:~/】
  4. 配置环境变量:
  5. 执行动态库:& DYLD_INSERT_LIBRARIES=XX动态库
  6. 新建一份动态库代码,load方法里面,写一句打印方法
  7. 拷贝文件夹:& scp -r -P 12345 test.framework root@localhost:/usr/bin
  8. & DYLD_INSERT_LIBRARIES=test.framework XX进程路径,即可看到测试打印代码
  9. 拷贝解密后的APP思路:写一个拷贝代码,打包成动态库,依附某一个app,即可拷贝出app解密后的MachO
  10. 【& DYLD_INSERT_LIBRARIES=dumpdecrypted.dylib XX进程路径】
  11. 【& ls】后,可以看到 【XX.decrypted】
  12. 通过iFunBox拷贝出来
  13. 通过命令从手机里面拷贝出来:【& scp -P 12345 root@localhost:~/XX.decrypted ~/Desktop】
  14. 拷贝出app包【& ps -A】【& cd app路径】【& ls】【& cd Frameworks/】

注意点

  • 非完美越狱搞不定

补充

  1. 查看目录【& pwd】
  2. 关于【DYLD:动态连接器】
    a.连接所有的动态库
b.包括【可执行文件:MachO】
  1. 动态库运行的方式:
    a.注入到app
    b.被【DYLD】加载
    c.依附到某个进程上
  2. 查看文件架构【& file test.framework/test】
  3. 查看进程:【& ps -A】
  4. 动态库运行:dyld[动态连接器]
  5. dyld_insert_libraries

你可能感兴趣的:(砸壳简介)