iOS安全攻防(二十四):敏感邏輯的保護方案(1)

來源:互聯網
上載者:User

iOS安全攻防(二十四):敏感邏輯的保護方案(1)



Objective-C代碼容易被hook,暴露資訊太赤裸裸,為了安全,改用C來寫吧!





當然不是全部代碼都要C來寫,我指的是敏感商務邏輯代碼。

本文就介紹一種低學習成本的,簡易的,Objective-C邏輯代碼重寫為C代碼的辦法。


也許,程式中存在一個類似這樣的類:

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


被class-dump出來後,利用Cycript很容易實現攻擊,容易被hook,存在很大的安全隱患。

想改,但是不想大改程式結構,腫麼辦呢?





把函數名隱藏在結構體裡,以函數指標成員的形式儲存。

這樣做的好處是,編譯後,只留了下地址,去掉了名字和參數表,提高了逆向成本和攻擊門檻。



改寫的程式如下:

//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



 最後,根據Xcode的報錯指引,把以前這樣的調用

[XXUtil isVerified];

對應改成:

XXUtil->isVerified();

就可以了。


是的,絕不費一點腦子。




聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.