仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2372|回复: 19
打印 上一主题 下一主题

[学习教程] IOS设计iOS平安攻防(二十四):敏感逻辑的回护计划(1)仓酷云

[复制链接]
小魔女 该用户已被删除
跳转到指定楼层
#
发表于 2015-1-18 11:30:22 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
打开.xib的文件打开的就是IBIB和代码交互用的是IBActionIBOutlet这些标记这些标记追踪到他们的定义其实对编译器来说什么都不表示Objective-C代码简单被hook,表露信息太光秃秃,为了平安,改用C来写吧!

<br>
固然不是全体代码都要C来写,我指的是敏感营业逻辑代码。
本文就先容一种低进修本钱的,浅易的,Objective-C逻辑代码重写为C代码的举措。
大概,程序中存在一个相似如许的类:

  • @interfaceXXUtil:NSObject

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

  • @end
被class-dump出来后,使用Cycript很简单完成打击,简单被hook,存在很年夜的平安隐患。

<br>想改,可是不想年夜改程序布局,肿么办呢?
把函数名埋没在布局体里,以函数指针成员的情势存储。
如许做的优点是,编译后,只留了下地点,往失落了名字和参数表,进步了逆向本钱和打击门坎。
改写的程序以下:

  • //XXUtil.h
  • #import<Foundation/Foundation.h>

  • typedefstruct_util{
  • BOOL(*isVerified)(void);
  • BOOL(*isNeedSomething)(void);
  • void(*resetPassword)(NSString*password);
  • }XXUtil_t;

  • #defineXXUtil([_XXUtilsharedUtil])

  • @interface_XXUtil:NSObject

  • +(XXUtil_t*)sharedUtil;
  • @end

  • //XXUtil.m
  • #import"XXUtil.h"

  • staticBOOL_isVerified(void)
  • {
  • //balabala...
  • returnYES;
  • }

  • staticBOOL_isNeedSomething(void)
  • {
  • //balabala...
  • returnYES;
  • }

  • staticvoid_resetPassword(NSString*password)
  • {
  • //balabala...
  • }

  • staticXXUtil_t*util=NULL;
  • @implementation_XXUtil

  • +(XXUtil_t*)sharedUtil
  • {
  • staticdispatch_once_tonceToken;
  • dispatch_once(&onceToken,^{
  • util=malloc(sizeof(XXUtil_t));
  • util->isVerified=_isVerified;
  • util->isNeedSomething=_isNeedSomething;
  • util->resetPassword=_resetPassword;
  • });
  • returnutil;
  • }

  • +(void)destroy
  • {
  • util?free(util):0;
  • util=NULL;
  • }
  • @end

<br>最初,依据Xcode的报错指引,把之前如许的挪用

  • [XXUtilisVerified];
对应改成:

  • XXUtil->isVerified();
就能够了。
是的,毫不费一点头脑。

继承自相应的不可变类比如NSMutableArray继承自NSArray他们都添加了可以改变对象内容的方法比如-(void)addObject:(id)anObject添加对象-(void)removeObject:(id)anObject删除对象上面只是一个大概的总结
灵魂腐蚀 该用户已被删除
19#
发表于 2015-5-2 04:52:35 | 只看该作者
要学会通过各种方法将面前的事情变成自己感兴趣的,那专研起来就不会是无聊和折磨了。
愤怒的大鸟 该用户已被删除
18#
发表于 2015-4-30 19:28:38 | 只看该作者
培训时可以选择安卓,iOS,Java,因为实习的时候我选了安卓,当时实习时间只有三周,学的晕头转向,而java我也没学过,iOS的基础是C语言,这个大学里还是学过的,于是选择了iOS。
不帅 该用户已被删除
17#
发表于 2015-4-27 17:33:03 | 只看该作者
最后在做项目的时候一定要认真对待,毕竟这个直接和你的就业挂钩,这也是锻炼你实际操作的能力。
小妖女 该用户已被删除
16#
发表于 2015-4-27 08:54:47 | 只看该作者
看《iPhone 4与iPad开发基础教程》,跟着一步步来
金色的骷髅 该用户已被删除
15#
发表于 2015-4-16 06:26:53 | 只看该作者
每个行业都一样,想要一天学有所成是不可能的,一定要做好努力的准备,做ios不是简单的学会oc语言。不怕多走弯路,就怕不肯动手。
小女巫 该用户已被删除
14#
发表于 2015-4-10 05:42:46 | 只看该作者
以上可以同时进行,学习过程中尽量不要纠结细节和底层,要知道ios是封闭的、OC是高级语言,我们不可能过多地去了解它的原理,至少在新手阶段没有必要。用迭代的方式更新你的知识,而不是死抠一个知识点。
飘灵儿 该用户已被删除
13#
发表于 2015-4-4 16:38:11 | 只看该作者
自从苹果公司开放iOS SDK以来,大量的国内外的软件开发者将关注的目光聚集在苹果的iOS平台上。由于iPhone和iPad自一出现就给人带来了颠覆性的感觉
admin 该用户已被删除
12#
发表于 2015-3-30 17:11:10 | 只看该作者
特别是在校的学生,都存在一个小小的尴尬——虽然学习iOS开发的热情高涨,但由于没有多余的银子购买昂贵的Mac电脑而踟蹰不前。其实,针对初学者,如果想进入iOS开发的天地
再现理想 该用户已被删除
11#
发表于 2015-3-25 17:12:30 | 只看该作者
到大三时,学院与我去培训的机构成立了实习基地,并让我们寒假去实习了一段时间,感觉还不错,于是在大四的时候去培训了
山那边是海 该用户已被删除
10#
发表于 2015-3-20 11:02:34 | 只看该作者
特别是在校的学生,都存在一个小小的尴尬——虽然学习iOS开发的热情高涨,但由于没有多余的银子购买昂贵的Mac电脑而踟蹰不前。其实,针对初学者,如果想进入iOS开发的天地
若相依 该用户已被删除
9#
发表于 2015-3-14 00:25:28 | 只看该作者
边吃零食边看Stanford的视频教程
莫相离 该用户已被删除
8#
发表于 2015-3-7 01:34:22 | 只看该作者
AD: iPhone文件系统NSFileManager讲解是本文要介绍的内容,主要是通过iphone文件系统来学习NSFileManager的使用方法,具体内容来看本文详解。
精灵巫婆 该用户已被删除
7#
发表于 2015-3-3 11:27:17 | 只看该作者
看《iPhone 4与iPad开发基础教程》,跟着一步步来
变相怪杰 该用户已被删除
6#
发表于 2015-2-12 11:06:27 | 只看该作者
我也从简单的状态栏适配开始,先研究了下关于状态栏的适配,特总结如下,供广大网友一起讨论交流。
再见西城 该用户已被删除
5#
发表于 2015-2-5 15:16:05 | 只看该作者
这个办法就是在WindowsXP或Win7的电脑上,使用vmware虚拟机来搭建一个真实的Mac OS X环境。
飘飘悠悠 该用户已被删除
地板
发表于 2015-2-4 13:27:44 | 只看该作者
好处就是运行速度会变快,ios6针对系统的优化进一步加强了,很多网友测试ios6,第一感觉就是速度快,而且ios69会有一些新功能,新浪微博,facetime支持3G网等等。。弊端就是,现在的ios6只能算是正式版本的第一个版本,bug很多,不少人刷完ios6都出现了很多毛病,开不开机,缺少图标等等。。最好现在不要升级,等官网放出下一个版本的时候,再选择升级。。。
活着的死人 该用户已被删除
板凳
发表于 2015-2-2 06:44:15 | 只看该作者
近期由于IOS7的发布,所以应用的适配潮可谓是都搞的锣鼓喧天,甚是热闹,因此呢,因适配IOS7而产生的问题也是铺天盖地的卷来,
分手快乐 该用户已被删除
沙发
发表于 2015-1-24 15:49:52 | 只看该作者
在此,某不才愿将安装成功的Mac OS X系统的vmware虚拟机向有志学习iOS开发的各位学友们免费开放出来,经测试,可以在WindowsXP/Win7系统上完美运行,即便你的机器只有2GB内存。
只想知道 该用户已被删除
楼主
发表于 2015-1-21 08:52:23 | 只看该作者
有办法利用自己手头的电脑立刻开始这个美妙旅程的。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 00:04

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表