2017 年 10 月 24 日,极棒上海站迎来了几位黑客演说家,他们来自腾讯安全玄武实验室、阿里安全 IoT 安全研究团队、看雪论坛、上海交通大学以及南京大学,分享了各自在安全研究过程中的奇葩经历、揭秘劲爆的技术干货。
本文分享来自看雪论坛 iOS 版主 roysue,其著《iOS黑客养成笔记:数据挖掘与提权基础》 今年12月上市,另一本书《越狱!越狱!》明年六月份上市。
从小酷爱计算机的 roysue 大学毕业于商学院,直至最近才下定决心——追随自己的心之所向。已经接近三十而立的年龄,却遇上人生最大的转折,来自现实世界的压力,与内心深处对梦想的追求,究竟能不能够共存?
让 roysue 用实际行动告诉你——唯有爱与梦想不可辜负!
苹果,大家都知道的,一般是行业标杆、模仿的对象。作为逆向苹果的我们觉得谢君同学(黑无人机)非常幸福,可以直接拆掉直 dump,这在苹果上就是天方夜谭,到 A5 就无法实现了。但这并不是说,从无人机到苹果就不一样了,其实是非常相似的。
今天我主题并不是把苹果拆掉,然后从应用层到内核,我今天主题是如何成为谢君同学这样的大牛,也就是一个学习过程的分享。这里就我个人的学习经历,跟大家稍微做一下分享,会提到一些在我个人学习成长之路上发现需要注意的细节,以及在学习的道路上需要掌握的技巧。
百分之百兴趣取向
首先是百分之百兴趣所向。如果这个事情你没有兴趣就不要做了,如果这个事情你真不想做就不要做,如果这个事情不想做你做了也没有意义,而且每一分每一秒过得都非常煎熬。如果有了兴趣可以一直非常投入,在这个状态下研究很久,把里面的原理和条例理解得非常透彻,可以不吃不喝一整天扑在上面,这样就是最理想的状态。
“野狗式”程序员
真正进入状态的程序员是怎么样的?
一个持续投入有兴趣的过程是什么样的,你来了兴趣眼睛是发光的,没有体验过的人永远不知道,只有体验过的人才知道。你在这里干了大半天,或者说十几个小时了,那个状态是非常让人刻骨铭心的。
不要等条件成熟再去做,真正有兴趣的话你想做的事情可以立刻做到的,想研究的东西是等不了的。比如说苹果发来一个漏洞,发过一个新的越狱之类的研究方案,刚刚出来的时候你根本抑制不了情绪的。
真正不要多说什么,就是“干”。
因为毕竟大家参加工作了,已经进入实战这么久,就是资料全部铺开进行研究,进入忘我的境界就可以了。真正的研究人员的日常状态是什么样的,基本上半夜 3、4 点睡,在座的都有过,比如谢同学来说,通宵其实很正常的。
有一个想法突然爆发的时候,“有一些想法”并不是说你研究的时候马上就会有,一些地方会卡住很久,甚至卡住一个星期。突然灵感来的时候,这个固件拿不下来的时候,固件有一个地方出厂的时候没有给你权限,在苹果上也是一样的,越狱过程中有一些点不是容易找到的,这种情况类似就是它会代码注视取消掉就又可以连上。
有些地方,有可能你自己搞的时候没有搞懂,听演讲的时候也会知道一些流程,可能一下灵感就来了,类似的地方没打通,可能一下子就睡觉一下坐起来了这个地方没有搞定,赶紧起来继续做。
基本上我觉得没有什么技术方案,我觉得没有什么完美的一个系统,没有一个完美的!苹果也好,一些无人机也好,不管它多完美,总归有一个地方打破它的所有防御,随意的完全可以控制无人机,只要人不死就有出头日,苹果做的再好也被破解了,并不是没有办法的,只不过我们由于商业的原因没有公布而已,只是肯定可以做到。看到一些大牛前面路上的成长的经历,看到他们努力,我们也努力。
案例/项目学习法
还有就是一定要结合现实,结合这个案例点和面结合,先把面铺开,然后每一点深入,原理是共同的,学习的过程也是这样的过程,重点是要从点、面结合。然后,对于一些已经有希望、有一些结果、可以形成汇报或者分享的案例,这种回报激励在学习过程中也是非常重要的,如果没有激励可能你开始的兴趣,我做一个月没有什么意思就扔到一边了,而且会觉得沮丧。激励很重要,有一点回报就可以。
要注重积累,可以从点出发,不能说明天就要把 iOS 11 给越狱了,要逐步结合学习各种案例和情况,这个点开始一点点扩大。学习一两年肯定可以看到自己身上从量变到质变的变化,用马克思主义量变到质变的关系来看,从质变再到新的量变,一定要快速学习,快速实现,快速总结,快速收益,先定一个小目标就可以了,一定要正像的回馈和回报,这样有一个一步一步开始的成长过程。
注重分享以及与大部队为伍
然后就是注重分享,一个因为可以有回报,以高标准要求自己,要做就要做到优秀,做好,做到别人认可你,注重分享的时候你可以得到精神的回报,也会一些很小的项目,毕竟总会有一些年轻的小项目,会落到个人头上完成。
记得保持那个势头,保持势头的过程中,还要不断的回馈自己,这样才可以不断的进步,才会有新的动力和新的想法,不断的向上。在研究的过程中,可以不断的做项目,然后不断的分享和大家分享,然后不断的正像激励就会成为谢同学的这样的大牛。
技术的本质
我个人理解所谓的技术就是解决问题的能力,比如说阿里领导给谢同学提一个需求你把这个无人机破解掉,它学的所有东西就是为了解决这个东西,行就是行,不行就是不行。对于领导来讲干还是不干,能做到还是做不到,如果你做不到,一次两次还可以,次数多了就要被降级。或者我们平时生活中主要内容,还有生活工作就是解决这个问题,你能你就上,不行可能就要马上换人,就这么简单的事情。
做的技术太简单了,面对机器不是人,要么一天你可以破解掉,要么一个月,总之有这个实力。把不行变成行,到最后怎样都行,到最后随便怎样都可以,这才叫做掌握了这门技术。还是谢同学,现在不管接什么品牌的无人机项目,给他一个月,他都能破解掉。这就是技术的本质。