iOS安全攻击和防御(24):敏感的保护方案逻辑(1)

iOS安全攻击和防御(24):敏感的保护方案逻辑(1)

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

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

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

或许,程序中存在一个相似这种类:

@interface XXUtil : NSObject

+ (BOOL)isVerified;
+ (BOOL)isNeedSomething;
+ (void)resetPassword:(NSString *)password;

@end

被class-dump出来后。利用Cycript非常easy实现攻击,easy被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();

就能够了。

是的,绝不费一点脑子。

版权声明:本文博客原创文章,博客,未经同意,不得转载。

时间: 2024-08-11 17:52:27

iOS安全攻击和防御(24):敏感的保护方案逻辑(1)的相关文章

WEB安全实战(三)XSS 攻击的防御

前言 上篇文章中提到了 XSS 攻击,而且,也从几个方面介绍了 XSS 攻击带来的严重影响.那么,这篇文章中,主要是针对 XSS 攻击做一个基本的防御,看看可以通过几种方式来修复这个特别常见的安全漏洞. 由于公司用的是 SpringMVC,因此,这次就主要基于 SpringMVC 来解决这些漏洞.当然,其实这些解决方案都是大同小异,对于什么环境来说根本无所谓.了解了原理,什么环境.什么语言都可以运用自如了.废话就不多说了,直接上解决方案. 解决方案 方案一 方案一主要是利用了 SpringMVC

CSRF攻击与防御(写得非常好)

转载地址:http://www.phpddt.com/reprint/csrf.html        CSRF概念:CSRF跨站点请求伪造(Cross-Site Request Forgery),跟XSS攻击一样,存在巨大的危害性,你可以这样来理解:       攻击者盗用了你的身份,以你的名义发送恶意请求,对服务器来说这个请求是完全合法的,但是却完成了攻击者所期望的一个操作,比如以你的名义发送邮件.发消息,盗取你的账号,添加系统管理员,甚至于购买商品.虚拟货币转账等. 如下:其中Web A为

CSRF——攻击与防御

CSRF——攻击与防御 author: lake2 0x01 什么是CSRF攻击 CSRF是Cross Site Request Forgery的缩写(也缩写为XSRF),直译过来就是跨站请求伪造的意思,也就是在用户会话下对某个CGI做一些GET/POST的事情——这些事情用户未必知道和愿意做,你能够把它想做HTTP会话劫持.    站点是通过cookie来识别用户的,当用户成功进行身份验证之后浏览器就会得到一个标识其身份的cookie,仅仅要不关闭浏览器或者退出登录,以后訪问这个站点会带上这个

iOS安全攻防(二十四):敏感逻辑的保护方案(1)

iOS安全攻防(二十四):敏感逻辑的保护方案(1) Objective-C代码容易被hook,暴露信息太赤裸裸,为了安全,改用C来写吧! 当然不是全部代码都要C来写,我指的是敏感业务逻辑代码. 本文就介绍一种低学习成本的,简易的,Objective-C逻辑代码重写为C代码的办法. 也许,程序中存在一个类似这样的类: @interface XXUtil : NSObject + (BOOL)isVerified; + (BOOL)isNeedSomething; + (void)resetPass

电子书 SQL注入攻击与防御.pdf

SQL注入攻击是一种已经长期存在,但近年来日益增长的安全威胁,<安全技术经典译丛:SQL注入攻击与防御(第2版)>致力于深入探讨SQL注入问题. <安全技术经典译丛:SQL注入攻击与防御(第2版)>前一版荣获2009Bejtlich图书奖,第2版对内容做了全面更新,融入了一些的研究成果,包括如何在移动设备上利用SQL注入漏洞,以及客户端SQL注入等. <安全技术经典译丛:SQL注入攻击与防御(第2版)>由一批SQL注入专家编写,他们对Oracle.SQLServer.M

从零学习安全测试,从XSS漏洞攻击和防御开始

WeTest 导读 本篇包含了XSS漏洞攻击及防御详细介绍,包括漏洞基础.XSS基础.编码基础.XSS Payload.XSS攻击防御. 第一部分:漏洞攻防基础知识   XSS属于漏洞攻防,我们要研究它就要了解这个领域的一些行话,这样才好沟通交流.同时我建立了一个简易的攻击模型用于XSS漏洞学习. 1. 漏洞术语 了解一些简单术语就好. VUL Vulnerability漏洞,指能对系统造成损坏或能借之攻击系统的Bug. POC Proof of Concept,漏洞证明:可以是可以证明漏洞存在

安全性测试入门 (三):CSRF 跨站请求伪造攻击和防御

安全性测试入门 (三):CSRF 跨站请求伪造攻击和防御 本篇继续对于安全性测试话题,结合DVWA进行研习. CSRF(Cross-site request forgery):跨站请求伪造 1. 跨站请求伪造攻击 CSRF则通过伪装成受信任用户的请求来利用受信任的网站,诱使用户使用攻击性网站,从而达到直接劫持用户会话的目的. 由于现在的主流浏览器比如火狐和谷歌,都倾向于使用单个进程来管理用户会话(比如我们在FF和Chrome中,当要访问一个新页面时,通常是通过新增浏览器页面来达到的,而不是新开一

Linux之DNS服务器搭建及常见DNS攻击和防御

DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串.通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析).DNS协议运行在UDP协议之上,使用端口号53. 主机名到IP地址的映射有两种方式: 1)静态映射,每台设备上都配置主机到IP地址的映射,各设备独立维护自己的映射表,而且只供本设备使用: 2)动态映射,建立一套域名解析系统(DNS),只在

C#-黑客-数据库访问-字符串的攻击和防御

C#中用基本的方法对数据库进行增删改查,会被黑客利用,写入其他的代码以实现对数据库的数据进行其他的操作.例如: 对下列数据库的某个信息进行修改操作 修改代码: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Data.SqlClient; namespace 攻击_防御 { class P