美文网首页
ios敏感逻辑的保护方案

ios敏感逻辑的保护方案

作者: 东了个尼 | 来源:发表于2020-12-29 14:50 被阅读0次

本文转载自(https://blog.csdn.net/yiyaaixuexi/article/details/29210413)
Objective-C代码容易被hook,暴露信息太赤裸裸,为了安全,改用C来写吧!

image

当然不是全部代码都要C来写,我指的是敏感业务逻辑代码。

本文就介绍一种低学习成本的,简易的,Objective-C逻辑代码重写为C代码的办法。

也许,程序中存在一个类似这样的类:

@interface XXUtil : NSObject + (BOOL)isVerified;+ (BOOL)isNeedSomething;+ (void)resetPassword:(NSString *)password; @end

被class-dump出来后,利用Cycript很容易实现攻击,容易被hook,存在很大的安全隐患。

image

想改,但是不想大改程序结构,肿么办呢?

把函数名隐藏在结构体里,以函数指针成员的形式存储。

这样做的好处是,编译后,只留了下地址,去掉了名字和参数表,提高了逆向成本和攻击门槛。

改写的程序如下:

//XXUtil.h#import <Foundation/Foundation.h> typedef struct _util {    BOOL (*isVerified)(void);    BOOL (*isNeedSomething)(void);    void (*resetPassword)(NSString *password);}XXUtil_t ; #define XXUtil ([_XXUtil sharedUtil]) @interface _XXUtil : NSObject + (XXUtil_t *)sharedUtil;@end
//XXUtil.m#import "XXUtil.h" static BOOL _isVerified(void){    //bala bala ...    return YES;} static BOOL _isNeedSomething(void){    //bala bala ...    return YES;} static void _resetPassword(NSString *password){    //bala bala ...} static XXUtil_t * util = NULL;@implementation _XXUtil +(XXUtil_t *)sharedUtil{    static dispatch_once_t onceToken;    dispatch_once(&onceToken, ^{        util = malloc(sizeof(XXUtil_t));        util->isVerified = _isVerified;        util->isNeedSomething = _isNeedSomething;        util->resetPassword = _resetPassword;    });    return util;} + (void)destroy{    util ? free(util): 0;    util = NULL;}@end
image

最后,根据Xcode的报错指引,把以前这样的调用

[XXUtil isVerified];

对应改成:

XXUtil->isVerified();

就可以了。

是的,绝不费一点脑子。

相关文章

  • ios敏感逻辑的保护方案

    本文转载自(https://blog.csdn.net/yiyaaixuexi/article/details/2...

  • 敏感逻辑的保护方案

    Objective-C 代码容易被 hook,暴露信息太赤裸裸,为了安全,改用 C 来写吧! 当然不是全部代码都要...

  • 0x24 敏感逻辑的保护方案

    注:原文---念茜的博客 Objective-C代码容易被hook,暴露信息太赤裸裸,为了安全,改用C来写吧! 当...

  • 数据安全之钥匙串加密

    简介:钥匙串(Keychain)iOS系统自带的一套敏感信息保存方案。保存钥匙串的内容相当于系统对其做了保护,在设...

  • iOS 性能优化

    参考文章 微信读书 iOS 性能优化总结 iOS性能优化 iOS 启动连续闪退保护方案 iOS代码性能优化《阶级篇...

  • iOS崩溃保护方案

    前言 软件在运行时遇到不能理解的异常时会中断执行,iOS系统下给出的解决方案是强制结束应用并回到桌面,该方案不仅丢...

  • iOS相关的技术文章

    优秀源码:1、iOS 启动连续闪退保护方案 --> GYBootingProtection2、利用 CocoaL...

  • 博文

    iOS微信特殊字符保护方案微信团队分享:MMKV--基于 mmap 的 iOS 高性能通用 key-value 组件

  • 一些iOS技术博客

    微信读书团队博客[http://wereadteam.github.io/] iOS 启动连续闪退保护方案[htt...

  • 《iOS调试专用》自定义崩溃日志的采集与统计

    点击下载demo 核心代码如下: 发送实例: 进阶篇 参考文章:iOS 启动连续闪退保护方案https://wer...

网友评论

      本文标题:ios敏感逻辑的保护方案

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