iOS工程加固

本文介绍了iOS应用在交付时可能面临的安全风险,包括程序被恶意调试和代码被恶意注入,并提供了相应的修复建议。对于调试风险,推荐集成反调试保护;对于注入风险,建议使用防注入/防HOOK技术。同时,针对缺少代码加密的问题,文章详细介绍了如何使用代码混淆技术进行保护,包括配置脚本、混淆方法名等步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

文章搬运来源:https://juejin.cn/post/6931178491991818254
作者:KFC是做基的

对iOS开发感兴趣,可以看一下作者的iOS交流群:812157648,大家可以在里面吹水、交流相关方面的知识,群里还有我整理的有关于面试的一些资料,欢迎大家加群,大家一起开车

前言

企业级App在交付给客户时(尤其是国企)通常会进行一项步骤:等保测评
那么除了一些第三方的付费加固方案,我们开发者自己还能做哪些操作呢 ?
接下来,我将摘取我们iOS应用安全风险评估报告中的几个高风险进行操作。

程序被恶意调试风险

风险描述

攻击者可以利用GDB、IDA、Ptrace等调试器跟踪运行的目标程序,查看、修改内存中的代码和数据,甚至分析/篡改程序的业务逻辑,对客户关键数据或者服务器进行恶意攻击,例如修改客户端业务操作的数据,比如转账账号、金额等,导致用户的损失。

修复建议

【开发者修复】集成Native层的反调试保护功能,避免应用被Xcode、IDA等工具调试,进而保护业务安全。

修复操作

反调试

#import <UIKit/UIKit.h>
#import "AppDelegate.h"
#import <dlfcn.h>
#import <sys/types.h>

typedef int (*ptrace_ptr_t)(int _request, pid_t _pid, caddr_t _addr ,int _data);
#if !defined(PT_DENT_ATTACH)
#define PT_DENT_ATTACH 31
#endif

void disable_gdb() {
    void * handle = dlopen(0, RTLD_GLOBAL|RTLD_NOW);
    ptrace_ptr_t ptrace_ptr = dlsym(handle, "ptrace");
    ptrace_ptr(PT_DENT_ATTACH, 0, 0, 0);
    dlclose(handle);
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值