iOS逆向工程--微信消息防撤回

什么是逆向工程

是一种产品设计技术再现过程,即对一项目标产品进行逆向分析及研究,从而演绎并得出该产品的处理流程、组织结构、功能特性及技术规格等设计要素。

简而言之,通过反编译等途径获取app的源码结构,进行分析或修改等从而达到某种目的。

应用场景

安全相关

  • 评定安全等级
  • 逆向恶意软件
  • 检查软件后门
  • 去除软件使用限制

开发相关

  • 逆向系统API
  • 借鉴别人的软件

步骤

1. 敲壳

上传到App Store的app都会经过苹果的一系列复杂的加密,不能直接对下载的文件进行解析,需要绕过app文件的加密机制。

iOS APP的签名原理

iOS APP签名原理

iOS开发者账号类别

个人开发者 公司开发者 企业开发者
账号申请速度快,无需公司注册信息 账号申请速度慢,需要公司注册信息 账号申请速度慢,需要公司注册信息
产品可以上架APP到App Store 产品可以上架到App Store 开发的app可以不经过苹果审核,直接分发给用户安装使用,不能上架App Store
产品开发者信息显示为个人信息,对公司和开发团队起不到宣传作用 iTunes里可以查到公司信息及相关产品,宣传效果不错 通过官网、PP助手等三方渠道分发软件
无法创建团队,添加团队成员至开发者账号 可以创建团队,邀请成员共同管理账号信息 可以创建团队,邀请成员共同管理账号信息
99$/year 99$/year 299$/year

敲壳步骤

  • 在mac终端上通过ssh进入iPhone控制台
用`OpenSSH`通过ssh链接到iPhone控制台
  • 查找到要砸壳软件的目录

iOS中的文件夹是封闭的,程序运行在系统文件夹,是不能被查看到的

用`Cycript`查找到砸壳软件的文件目录
  • 将可执行文件导出到电脑上

iOS 软件在运行时是解密的
Mach-O文件包含了程序的基本信息和源码

dumpdecrypted可以在应用在运行时将Mac OSiOS中的可执行文件Mach-O文件导出,Mach-O文件包含了软件的头文件和具体的执行代码。

2. 反编译

获取软件头文件

以OC语言开发的iOS程序,代码结构分为声明文件(头文件)和执行文件

使用class-dump命令可以对出砸壳出的解密文件进行解析,得到软件代码结构中的头文件,从而能了解到代码的结构框架和对外声明的方法。

还原源代码

以伪代码的形式最大程度的还原源代码

3. 修改源码

4. 重签名

iOS App在安装到手机的时候会进行证书签名认证

在之前的操作过程中,app的加密已经被破坏,这时候再重新打包是不能成功安装到手机中的,需要对app使用新的开发者证书重新签名。
这种重签名的机制被广泛应用于各大APP助手平台以及破解软件中

5.打包

软件开发过程中,在打包时会将对软件包进行签名

你可能感兴趣的:(iOS逆向工程--微信消息防撤回)