----------------------------------------------------------2017.4.5更新------------------------------------------------------
工作太忙很久没看邮件了,今天发现老坟被挖了,在此更新一下。
楼主目前仍然从事iOS安全研究相关的工作,马上就要工作快一年了。
研究生做的事情只是一块敲门砖,工作之后无时无刻都在学习新的东西,希望现在正处于学生阶段的朋友踏踏实实地做好手里的每一件事情,把自己的基础夯实,以后找工作的时候,无论iOS或者其他技术怎么变,相信你们都能够得心应手。
最后,需要加好友的直接加我qq吧,568151929,论坛的私信我基本没怎么看。
看到师兄师姐们都已经拿到心仪的offer,实在让人羡慕嫉妒恨。这段时间自己也非常困惑,虽然研究生期间也还算努力,并且也做了不少东西,但总觉得不踏实,也不知道以后的方向,希望能在这儿得到一些建议。首先介绍一下自己,本人是北京一所码农学校信息安全研究生,目前研二。先说一下这一年到底做了什么吧,也好让各位大大们根据我的情况给出建议。
2013.03
经过一年的努力最终来到了理想的实验室,由于不是科班出身,于是被安排了iOS这块边缘领域,因为当时整个实验室还没人做这个,老师可能觉得可有可无吧,索性让一个啥也不会的人来做,做不出来也没啥损失。
当时让我做的是一个iOS平台上的抓包软件,各位大大可能觉得很简单啦,但当时对一个连c语言都止步于指针之前的人来说可谓是不可能完成的任务。首先,由于实验室不重视iOS,给了我一个dell电脑,让我装黑苹果。那过程可真是折磨人啊,难怪现在大家都说“装黑苹果所花去的时间和精力都可以拿去赚钱买一台mac了”。经过三天的折腾,是的,三天,可算在一台屌丝机上运行起来了高冷的苹果系统。接下来的时间开始自学oc,iphone开发,学得刚好凑合,并利用libpcap库最终开发出了一个特别简单的抓包应用。
期间了遇到了很多问题,比如:root权限的获取,不得不吐槽一下,当时关于iOS越狱开发的东西实在太少了,而且大部分还是英文,对于我们这种四级狗来说,绝对是摧残,不过也得硬着头皮,开着有道,边看边查,(这一年倒是英语能力提高不少,在今年6月的六级考试中,获得了450+的分数,本人还是很欣慰啦)。不得不得说的是,这期间,还认识了最重要的他,他才貌双全,待人谦和,谈吐高雅,见识广泛,秉持着“授人以渔”的指导理念一直帮助着我。没错,他就是我们的群主,论坛的创建者,书的作者之一——大名狗剩(不上图了,怕太多人过于迷恋)。很庆幸能够得到他的帮助,可以说没有他,也就没有之后我做的那些东西。
2013.06
毕业设计顺利通过,并得到了师兄们的认可(老师压根就没看,次奥),多谢师兄们在老师面前的美言,使得实验室开始稍微重视了这块,于是接下来让我调研iOS平台上的自动化模拟点击功能,同样google了大量资料并在stackoverflow上操着一坨Chinglish提问,最后使用GS库实现了模拟点击的功能(但是还是针对的iOS6,在7上已经不能使用GS库来实现了模拟点击了,一般都是使用的一个韩国人开发的Simulate库)。调研完成之后,接着让我完成点击脚本录制工具的编写。这个工具可谓是一个里程碑,因为它正式把我带入了tweak的开发的大门。当时我问大名,有没有什么办法获得点击的控件的坐标,当时他给我说了一个词“mobilesubstrate”。(这尼玛是啥!!)。不过想到大名授人以渔的指导方式,没敢接着问他,开始自己google,花了一周的时间去搭建越狱开发环境,当时使用的是iOSOpenDev,觉得很方便(不过现在我还是theos用的比较多)。写了经典的“hello tweak”之后,稍微有点明白了tweak的编写套路,定位类-找到方法-编写tweak测试。
写出了这个工具之后,当时记得第一个想法就是写一个自动玩“滑雪大冒险”的工具,哈哈哈~
2013.07~2013.08
这个“暑假”又陆续调研并实现了“后台发送短信、彩信,捕获发送的结果,后台截图,利用opencv进行图片相似度对比,利用sb启动另一个程序,安装、卸载应用等等”。相当充实的一个“假期”。8月底的时候,正式接手一个项目,才知道之前做的所有调研都是给这个项目准备的,目的是开发一个包含所有上述功能的应用,上个月才刚刚结项,甲方那边也很满意。
2013.09
在一次实验室的例会上,一个师兄展示了他开发的安卓动态检测系统,可真是闪瞎了我的眼,可以监控短信,电话记录,url,蓝牙等,当时我就有了开发一个iOS平台上的动态检测的想法。利用两个月的闲杂时间,最后开发了一个tweak,捕获终端上的所有敏感行为,当时结果展示还只是在命令行里用tail来看的,后来被老师无意中看到了这个东西,于是就呵呵了,瞬间就成为实验室的东西了,并催促我在PC端开发一个展示界面。经过两周在Mac上开发了一个展示界面(两周时间再去学其他语言太不靠谱了,今年3月份吧,去了一个沙龙,认识了航哥,书的第二个作者,当时他在沙龙上介绍了他正在编写的一个手机上的检测工具,最后是通过web界面来展示的,当时无比崇拜啊,后来自己也尝试着打算吧这些捕获到的敏感数据放入数据库中,并通过web展示,不过一直没时间弄,也就不了了之了。)。后来又在这套检测系统中加入了通讯录,相册访问等敏感行为的捕获。
2013.10
利用ASIHttpRequest开源框架给上述提到的第一个项目中的应用加入了http通信的功能,使得能够与服务器交互。还有就是一些根据多变的需求不断的改进。这个时候呢,老师以为我iOS这块掌握的很透彻了,让我给他做一个课件,专门讲iOS安全的。这可真是难倒我了,他给了我一本书,就是那本黑客手册,对于一个连虚拟内存是啥都不知道的人来说这尼玛哪看得懂。只好上网找一些国外大会上别人讲过的一些ppt,翻译一下凑出了两节课的课件。(这事一直持续到了今年3月份才弄完)也没啥收获,就知道了几个概念,安全机制啥的,深层次的还是没懂。
2013.11-2014.3
期间除了做项目之外,开始看一些书和博客,比如:《Hacking and Securing iOS Application》,尝试着修改自己喜欢玩的一些游戏,比如寒假期间玩的一款凤凰战机(怀疑雷霆战机就是抄袭的这个),因为只会hook,所以能做到的就只是修改了里面的金币。
2014.4
利用闲暇时间,开始在cydia上开发tweak,其中开发了,ScreenShotshare与iScreenShot(这完全是为了方便自己,本人经常抓拍一下同学的囧样发到微信或qq上),之后又开发了一款自动化点击工具-FingerRobot,并还特意为它制作了视频,哈哈哈,也就图个经历(也没人给我donate啥的)两款tweak都突破了5000的下载量(大牛别喷,让我继续醉下去)。
2014.5~至今
这段时间主要是动态检测系统的维护,以及第一个项目的iOS7移植(好麻烦的说,模拟点击,IPC好多东西都变了)。也协助其他项目写过一个应用提取工具,iOS安全隐患检测的demo(不说也罢,第一个就是利用的libmobiledevice找的代码,第二个就仅仅是检测了设备中的位置隐私泄露隐患功能)。这时候我已经感觉到自己搞来搞去好像也就这点东西,hook,hook,hook,所谓的逆向,也只是简单的用classdump和ida找到可疑的函数,然后继续hook。没怎么动态调试,看不懂汇编,这让我对自己的能力很是怀疑,担心自己以后的竞争力不足。期间了也参加了不少沙龙和syscan大会(感谢DQ430的赠票与热情款待),其中还在CNCERT举行的沙龙上当过主讲人(老师出差去了,就派我去了)。那次沙龙上,认识很对技术大牛,尤其是某个大神,告诉他我情况之后他向我推荐了《Mac OS X and iOS Internal》,好厚的一本书,买不起,电子版下载pad里看,看着特别吃力,不过也比黑客手册好点。目前过完了这本书的第一部分,也只是明白了几个概念,mach-o的格式稍微明白一点,最近在纠结是接着看下去还是先把基础知识补一补。
以上就是我的所有情况,说实验很担心明年的就业,我本人是想去杭州阿里搞安全(有内推最好了,要是有,我研二直接去实习,哈哈),上一届有几个师兄也去了,但是前几天看了看面试题,我去,没一个是自己涉及到了,全是真正的信息安全问题,而我感觉我们干的就是一般的开发工作。希望大神能够给点建议和方向,并且也想知道安全部分到底做些什么,现在我应该准备什么。最后感谢此论坛,感谢逆向群,感谢帮助过我的每一位。