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

敏感逻辑的保护方案

作者: 无沣 | 来源:发表于2017-05-06 15:28 被阅读25次

Objective-C 代码容易被 hook,暴露信息太赤裸裸,为了安全,改用 C 来写吧!

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

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

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

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

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

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

@interface XXUtil : NSObject

+ (BOOL)isVerified;

+ (BOOL)isNeedSomething;

+ (void)resetPassword:(NSString *)password;

@end

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

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

把函数名隐藏在结构体里,以函数指针成员的形式存储。 这样做的好处是,编译后,只留了下地址,去掉了名字和参数表,提高了逆向成本和攻击门槛。

XXUtil.h  #importtypedef 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

最后,根据 Xcode 的报错指引,把以前这样的调用 [XXUtil isVerified];

对应改成: XXUtil->isVerified();

就可以了。

是的,绝不费一点脑子。

相关文章

  • 敏感逻辑的保护方案

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

  • ios敏感逻辑的保护方案

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

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

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

  • 数据安全之钥匙串加密

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

  • 谁来保护我的敏感

    我看见人们走在路上,每个人都面目平静。 犀牛?探花昨晚本来约了大壮一起撸串,后来大壮太忙,没撸成,他就只好灰溜溜地...

  • 保护自己的逻辑

    假如你在森林里遇到老虎,你想都不会想,肯定撒腿就跑。而刚学会走的小孩看到了可能会去触摸。可见,这种简单的自我...

  • 基于Hutool-DFA实现内容敏感词过滤

    一、需求背景 项目中需要对敏感词做一个过滤,首先有几个方案可以选择: A方案:直接将敏感词组织成String后,利...

  • 自旋锁队列CLH Lock简介

    “加锁”是保护共享资源逻辑一致性的通用方案:在并发环境下,通过锁使得在某个时刻只有一个线程或进程可以访问该资源(以...

  • 《拥有一个你说了算的人生》第五章思维读书笔记

    我们的心有三层:保护层、感受层和真我。最外一层里保护层,保护层就是自己固有的一套心理逻辑,这些心理逻辑我们...

  • 敏感的我勇于自我保护

    “你想的太多了” “阳光一点,积极一点吧” “不要把自己关起来,你应该出去走走” “不要想不开,更应该爱自己” “...

网友评论

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

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