仓酷云

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

[学习教程] IOS设计iOS平安攻防(二十二):static和被裁的标记表仓酷云

[复制链接]
再现理想 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:32:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
关于iOS开发的学习打个比方就像把汽车分解最底层的原料有塑料钢铁再用这些底层的工具造出来发动机座椅最后再加上写螺丝胶水等把汽车就拼起来了iOS基本都是英文的资料为了不让打击者理清本人程序的敏感营业逻辑,因而我们千方百计进步逆向门坎。
本文就先容一个进攻技能————使用static关头字裁失落函数标记。
道理

假如函数属性为static,那末编译时该函数标记就会被剖析为local标记。
在公布release程序时(用Xcode打包编译二进制)默许会strip裁失落这些函数标记,无疑给逆向者加年夜了事情难度。
考证

写个demo考证一下上述实际,以一段创立Button的代码为例,对应增补一个static版本。

  • idcreateBtn()
  • {
  • UIButton*btn=[[UIButtonalloc]initWithFrame:CGRectZero];
  • [btnsetFrame:CGRectMake(200,100,100,100)];
  • [btnsetBackgroundColor:[UIColorredColor]];
  • btn.layer.cornerRadius=7.0f;
  • btn.layer.masksToBounds=YES;
  • returnbtn;
  • }

  • staticidstatic_createBtn()
  • {
  • UIButton*btn=[[UIButtonalloc]initWithFrame:CGRectZero];
  • [btnsetFrame:CGRectMake(50,100,100,100)];
  • [btnsetBackgroundColor:[UIColorblueColor]];
  • btn.layer.cornerRadius=7.0f;
  • btn.layer.masksToBounds=YES;
  • returnbtn;
  • }
再来看一下反编的了局,关于createBtn()办法,我们能够失掉它的伪代码:

<br>
函数名固然改头换面,可是基础操纵仍是明晰的。

关于static_createBtn()办法呢,我们已没法看到它任何直不雅的有代价信息了。


范围

固然这类办法也有范围性。正如你所晓得的,static函数,只在本文件可见。

冲破范围

怎样让其余文件也能调到本文件的static办法呢?
在本文件制作一个布局体,布局体里包括函数指针。把static函数的函数指针都赋在这个布局体里,再把这个布局体抛进来。
如许做的优点是,既埋没了函数代码也丰厚了挪用体例。

多线程问题还有胶水代码的问题建立一个基于CoreData的工程你会看到他自动创建3个类的对象NSManagedObjectModel管理数据的存储结构文件扩展名是xcdatamodeldNSPersistentStoreCoordinator用来管理底层数据的存储用官方的话说CoreDataisnotarelationaldatabaseorarelationaldatabasemanagementsystem(RDBMS)
海妖 该用户已被删除
沙发
发表于 2015-1-21 09:50:01 | 只看该作者
AD: iPhone文件系统NSFileManager讲解是本文要介绍的内容,主要是通过iphone文件系统来学习NSFileManager的使用方法,具体内容来看本文详解。
只想知道 该用户已被删除
板凳
发表于 2015-1-21 18:23:13 来自手机 | 只看该作者
众多研发人员积极参与到iOS平台的开发中来也就不足为奇了。
小魔女 该用户已被删除
地板
发表于 2015-1-30 21:43:57 | 只看该作者
有办法利用自己手头的电脑立刻开始这个美妙旅程的。
愤怒的大鸟 该用户已被删除
5#
发表于 2015-2-8 09:28:49 | 只看该作者
看完这个你就可以有多种选择来踏入做应用的阶段
老尸 该用户已被删除
6#
发表于 2015-2-22 20:12:55 | 只看该作者
以上可以同时进行,学习过程中尽量不要纠结细节和底层,要知道ios是封闭的、OC是高级语言,我们不可能过多地去了解它的原理,至少在新手阶段没有必要。用迭代的方式更新你的知识,而不是死抠一个知识点。
再见西城 该用户已被删除
7#
发表于 2015-2-26 10:36:59 | 只看该作者
好处就是运行速度会变快,ios6针对系统的优化进一步加强了,很多网友测试ios6,第一感觉就是速度快,而且ios69会有一些新功能,新浪微博,facetime支持3G网等等。。弊端就是,现在的ios6只能算是正式版本的第一个版本,bug很多,不少人刷完ios6都出现了很多毛病,开不开机,缺少图标等等。。最好现在不要升级,等官网放出下一个版本的时候,再选择升级。。。
乐观 该用户已被删除
8#
发表于 2015-2-27 22:31:42 | 只看该作者
还有开发工具是用Xcode,是在Mac系统的,你多摸索一下就可以开发简单的应用了,建议你买一本iphone开发秘籍第二版看看,希望可以帮到你,谢谢。
小妖女 该用户已被删除
9#
发表于 2015-3-1 14:12:08 | 只看该作者
开始的时候甚至想放弃,不过想想自己的未来,只能咬牙坚持,课下就不停的缠着老师。放学就补基础,这些基础的东西没有速成的,只有刻苦努力。我是后来发现的,转变自己的心态,不要读书看资料当成一种痛苦
再现理想 该用户已被删除
10#
 楼主| 发表于 2015-3-6 00:39:57 | 只看该作者
好处就是运行速度会变快,ios6针对系统的优化进一步加强了,很多网友测试ios6,第一感觉就是速度快,而且ios69会有一些新功能,新浪微博,facetime支持3G网等等。。弊端就是,现在的ios6只能算是正式版本的第一个版本,bug很多,不少人刷完ios6都出现了很多毛病,开不开机,缺少图标等等。。最好现在不要升级,等官网放出下一个版本的时候,再选择升级。。。
不帅 该用户已被删除
11#
发表于 2015-3-11 11:32:35 | 只看该作者
其实在培训的过程中,学习到最多的就是查资料的方式,当时感觉老师好坑,什么都不告诉我们,让我们自己去查,但是现在觉得还是要自己解决问题,这样才能理解的更加深入。
冷月葬花魂 该用户已被删除
12#
发表于 2015-3-17 00:11:17 | 只看该作者
到大三时,学院与我去培训的机构成立了实习基地,并让我们寒假去实习了一段时间,感觉还不错,于是在大四的时候去培训了
灵魂腐蚀 该用户已被删除
13#
发表于 2015-3-23 08:51:24 | 只看该作者
iPhone文件系统NSFileManager讲解是本文要介绍的内容,主要是通过iphone文件系统来学习NSFileManager的使用方法,具体内容来看本文详解。
山那边是海 该用户已被删除
14#
发表于 2015-3-24 15:46:03 | 只看该作者
AD: iPhone文件系统NSFileManager讲解是本文要介绍的内容,主要是通过iphone文件系统来学习NSFileManager的使用方法,具体内容来看本文详解。
若相依 该用户已被删除
15#
发表于 2015-4-6 19:08:56 | 只看该作者
培训时可以选择安卓,iOS,Java,因为实习的时候我选了安卓,当时实习时间只有三周,学的晕头转向,而java我也没学过,iOS的基础是C语言,这个大学里还是学过的,于是选择了iOS。
分手快乐 该用户已被删除
16#
发表于 2015-4-16 22:35:26 | 只看该作者
学习ios没什么捷径,关键在于多动手敲,曾看到前辈开玩笑说怎么快速学会某技术,答案是:“提高打字速度,快点写代码就能快点学会了”。
莫相离 该用户已被删除
17#
发表于 2015-6-5 20:05:55 | 只看该作者
这个办法就是在WindowsXP或Win7的电脑上,使用vmware虚拟机来搭建一个真实的Mac OS X环境。
柔情似水 该用户已被删除
18#
发表于 2015-6-22 00:03:26 | 只看该作者
要学会通过各种方法将面前的事情变成自己感兴趣的,那专研起来就不会是无聊和折磨了。
精灵巫婆 该用户已被删除
19#
发表于 2015-6-29 11:49:05 | 只看该作者
开始的时候甚至想放弃,不过想想自己的未来,只能咬牙坚持,课下就不停的缠着老师。放学就补基础,这些基础的东西没有速成的,只有刻苦努力。我是后来发现的,转变自己的心态,不要读书看资料当成一种痛苦
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-12-29 09:20

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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