脱壳

作者: coder_feng | 来源:发表于2019-09-23 18:07 被阅读0次

为什么需要脱壳?是因为我们在上传app到苹果商店的时候AppStore已经是帮我们加壳的了,如下图:

加壳

什么又是加壳?

利用特殊的算法,对可执行文件的编码进行改变(比如压缩,加密),以达到保护代码的目的

加壳

什么又是脱壳?

摘掉壳程序,将未加密的可执行文件还原出来,有些人也称为砸壳,脱壳只要有两种方法:硬脱壳,动态脱壳

脱壳

iOS中的脱壳工具

iOS中有很多好用的脱壳工具

Clutch

dumpdecrypted

AppCrackr、Crackulous

如何验证可执行文件是否已经脱壳

查看Load Commands -> LC_ENCRYPTION_INFO -> Crypt ID的值,0代表未加密

通过otool命令行也可以:otool -l 可执行文件路径 | grep crypt

Clutch配置

下载最新的Release版本

建议去掉版本号,改名为Clutch,将Clutch文件拷贝到iPhone/usr/bin 目录中

Cluth

如果在iPhone上执行Clutch指令时候,权限不够,赋予可执行的权限

赋予权限

Clutch使用

列出已安装的APP:Clutch -i

clutch -i

输入APP序号或者Bundle Id进行脱壳操作:Clutch -d App 序号或者Bundled

脱壳

脱壳成功后会生成过一个ipa文件

脱壳成功

dumpdecrypted

下载源代码目录执行make指令进行编译,获得dylib动态库文件

make

将dylib文件拷贝到iPhone上(如果是root用户,建议放var/root目录),然后终端进入dylib所在的目录,使用环境变量DYLD_INSERT_LIBRARIES将dylib注入到需要脱壳的可执行文件(可执行文件路径可以通过ps -A查看获取)

DYLD_INSERT_LIBRARIES=dumpdecrypted.dylib  可执行文件路径

脱壳

.decrypted 文件就是脱壳后的可执行文件

可执行文件

在使用过程中,可能会遇到如下错误

dumdecrypted细节

原因:对dylib所在的文件夹权限不够

解决方案:将dylib放在用户所在文件夹,比如如果是root用户,将dylib放在/var/root 目录,如果是mobile用户,请将dylib放在/var/mobile目录;如果是mobile用户,请将dylib放在/var/mobile目录

相关文章

  • 【脱壳】软件 - 工具汇总

    【脱壳】软件使用手册 脱壳工具: FDex2_1.1 微脱壳_1.0.0 易开发_1.0.4 Xposed环境: ...

  • 【脱壳】软件 - 工具汇总

    【脱壳】软件使用手册 脱壳工具: FDex2_1.1 微脱壳_1.0.0 易开发_1.0.4 Xposed环境: ...

  • apk脱壳反编译

    脱壳参考:Android APK脱壳--腾讯乐固、360加固一键脱壳 - 简书 (jianshu.com)[htt...

  • 六 iOS逆向 - 脱壳

    加壳脱壳基本概念 使用dumpdecrypted工具进行iOSApp脱壳 一 加壳脱壳基本概念 一 什么是加壳? ...

  • ios脱壳

    什么是脱壳?摘掉壳程序,将未加密的可执行文件还原出来(有些人也称为“砸壳”) 脱壳主要有2种方法:硬脱壳、动态脱壳...

  • iOS逆向工程之给App脱壳

    iOS逆向工程之给App脱壳 iOS逆向工程之给App脱壳

  • 湖湘杯2019 RE wp(未完)

    菜鸟请大佬指导 0x01 arguement 1.脱壳 检查壳,有壳脱壳,不脱壳的话,IDA打开后你看到的就会是 ...

  • 看电影看出漂亮打功

    相信大家都看过《金蝉脱壳1》和《金蝉脱壳2》,不知《金蝉脱壳了-恶魔车站》大家有无看过,同样是西尔维斯...

  • 加壳脱壳

    脱壳存根(stub) 脱壳存根执行了以下三个步骤: (1)将原始程序脱壳到内存中 (2)解析原始可执行文件的所有导...

  • 网络安全CTF之最新网鼎杯解题思路

    一、脱壳 PEID查不出来,用了die,显示是UPX3.96的壳,用了脱壳机,脱不了,只能手动脱壳,拖入x64db...

网友评论

      本文标题:脱壳

      本文链接:https://www.haomeiwen.com/subject/rzofdctx.html