标签:全新 iOS MOV 指令 2021 篡改 AX 签名
iOS逆向安防学习
随着苹果对iOS系统多年的研发,iOS上的安全防护机制也是越来越多,越来越复杂。这对于刚接触iOS安全的研究人员来说非常不友好,往往不知从何入手。因此,为了让大家能够更加系统性的了解iOS上的安全机制,大家对下方大纲入手,希望能够给大家的学习以及研究带来一定的帮助。
下方学习大纲大家可以参考学习《iOS应用逆向与安全》专栏的索引。
逆向初探
汇编语言
DATA SEGMENT ;数据段开始 …… ;伪指令,定义数据段变量 DATA ENDS ;数据段结束 EXTRA SEGMENT ;扩展段开始 …… ;伪指令,定义扩展段变量 EXTRA ENDS ;扩展段结束 STACK SEGMENT ;堆栈段开始 …… ;伪指令,定义数据段变量 STACK ENDS ;堆栈段结束 MAC1 MACRO ;宏指令定义开始 …… ;伪指令或者指令,宏定义体 ENDM ;宏指令定义结束 CODE SEGMENT ;代码段开始 ASSUME CS:CODE,DS:DATA,ES:EXTRA,SS:STACK START: ;主程序起始地址定义 MOV AX,DATA ;寄存器初始化 MOV DS,AX MOV AX,EXTRA MOV ES,AX MOV AX,STACK MOV SS,AX …… ;指令 CALL SUB1 ;调用子程序 ……; ;指令 MAC1 ;调用宏指令 …… ;指令 MOV AH,4CH ;返回DOS INT 21H SUB1 PROC ;子程序定义开始 …… RET ;返回主程序 SUB1 ENDP ;子程序定义结束 CODE ENDS ;代码段结束 END START ;结束汇编
签名与重签名
- 完全重签名
证书,mobileprovision、Bundle ID 三者信息对应一致,这种重签名方式基本上与直接对代码进行签名的效果是一样的;
优点:
有效期长、稳定性高;
缺点:
维护成本较高,每一个重签名的ipa都必须修改Bundle ID 并且匹配对应的签名证书和mobileprovision描述文件;
适用范围:
对签名稳定性有要求;
- 不完全重签名
只保证证书和mobileprovision对应一致,至于这两者与原ipa的Bundle ID 等信息是否一致则不考虑;
优点:
看起来较方便维护;
缺点:
实际上并没有对原ipa的签名进行完全替换,很容易重签名失败,稳定性不高,很可能发生签名失效,需要重新签名,慎用!
适用范围:
稳定性要求不高;
视频详解
HOOK与注入
- 软件加密技术不断更新迭代,***双方水平不断提升,单纯的静态级别的安全对抗已很少出现,分析人员面对得更多的是高强度的代码加密技术和程序防篡改技术,在此背景下,新的软件分析技术 —— Hook 与注入应运而生
- 反编译 APK、修改或添加代码后将 APK 重新打包,都会改变原文件的散列值和签名信息,软件防篡改技术即通过在软件运行时检查原文件的散列值和签名等手段判断程序是否遭到破坏。Hook 技术也叫“钩子技术”,原理是先将要修改的函数“钩住”,然后用自定义的函数将其替换,让程序在运行时执行自定义的函数,达到动态修改软件的目的。以 Hook 防篡改技术为例,防篡改系统在检测程序的散列值和签名时,会调用系统 API 读取 APK 签名信息,使用 Hook 技术,可“钩住”这些系统 API,直接返回原程序的签名信息,从而有效“欺骗”防篡改系统,解决代码重新打包后的签名检查问题。如此就涉及俩技术点:如何实施“钩住”这个动作;如何编写自定义的函数
关注公众号:iOS进阶宝典
标签:全新,iOS,MOV,指令,2021,篡改,AX,签名 来源: https://blog.51cto.com/u_15010671/2778067
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。