2015总结

| 分类 others  | 标签 [总结] 

2016年的1月1日马上就要到来了,过去的几年每当到这个时候就会看到各种年底总结新年寄望。看着他们的一篇篇总结与新一年的奋斗目标,心里也说不出什么感觉。写出新的一年奋斗目标的那些同学现在已经当上CEO,迎娶了白富美,走上人生巅峰了吧。鉴于此,我也要为了同样的目标对今年做个总结,为明年树立个目标。

2015.4拿到毕业证正式入职鹅厂,这不知不觉就过完了9个月,到了年末。入职后在原来团队待了2个来月就到了新的团队,不过在新团队氛围还是挺不错的。在今年主要是熟悉业务逻辑,了解老的代码,然后做新需求,小组内做了3次分享,但是都是kpi之外的,根据当时的需要自愿分享的。

一个是关于iOS的私有API的分享,关于私有API在去年的时候就开始研究了,不过当时由于对一些底层知识如Mach-O了解不多,没能深入的把工具做好,只是当时就针对特定APP进行了扫描,而且结果也不是很理想,现在也底层知识有了相对比较全面的了解了,又没有时间去搞这一块了,这次分享也基本是把之前做的一些研究给小组同学普及了一下,进行过越狱开发的基本也都有所涉及。说到私有API,就得提下越狱开发,今年7月左右买了逆向开发的第二版书,计算全面地学习下逆向工程的,可是今年过完了书也没有完全看完,逆向过的应用也只有几款,而且都是简单的功能(去广告)逆向,再复杂点的就没有搞了,这些没有完成的目标都是由于自己的拖延导致的,2016年克服的第一大问题就是拖延。逆向的知识还是要继续学习的,尝试逆向更复杂的功能。刚开始学习的时候就想着最后能否自己写个抢红包插件,看来今年要呵呵了。。。虽然网上有人写了Android版本的,但是iOS的木有啊,自己动手,丰衣足食。还是要学习。关于逆向,今年下半年了解了很多逆向相关的工具,有些开源的也要去研究学习下,如MobileSubstrate这个最基本的,Cycript。代码还是要多看,多写。

第二个就是学习了下JSPatch的实现,然后与小组成员一起分享学习了下。JSPatch是一个动态替换应用内方法的框架。代码1400多行,不多,从最初的方案到现在的方案,作者也是花了很多功夫,踩了不少坑的。实现原理充分利用了Objective-C的Runtime特性,对于学习理解Runtime也是很有帮助的。JSPatch实现的出发点很好,利用JavaScriptCore.framework这个iOS系统本身提供的库,不像那些使用Wax框架的还是自己添加解析器,管理运行环境等。JSPatch让我有了一个想法,就是在越狱开发上基于JSPatch可以搭建一个工具平台,因为它本身就是用来动态替换App内的方法的,越狱写的Tweak也是同样的来替换原来的方法,但是需要编译安装,如果通过JavaScript来实现就不需要提前编译,这样的工具与越狱平台上的Flex非常像,但是对于Flex的实现原理还没有研究,也不太清楚它下载的那些插件是什么格式的。但是如果基于JSPatch,插件必定是用JS写的。该想法目前还没有付诸实施。希望2016能够实现此想法。

鉴于上面说的两点,私有API和越狱开发是分不开的,越狱开发特别是针对系统应用来开发Tweak,肯定要搞清楚系统的API,这里就不泛大量私有API。而对于第三方应用进行越狱开发,也要对于应用的类有所了解才行,但是随着iOS系统的升级,苹果也一直在修复系统漏洞,加强系统安全,有时dump应用的头文件已经不那么好使了。但是,应用要运行起来必须要加载到内存中必须要解密后才可以正常运行,因此通过动态方法可以比较容易得到应用内的类,就像RuntimeBrowser提供的功能一样,我们可以对它进行改造,做成一个动态库,每当应用运行起来后就可以dump内部的类,根据RuntimeBroser的做法,可进一步做出类的关系图,将继承关系,协议的Confirm关系通过图的形式表现出来,就可以清晰的表示出来了。更完美的是可以进行模糊查找某些类的关系图。

第三个就是关于Protobuf的分享,虽然之前一直在用,但是一直没有研究它的工作原理,为什么会这么优秀。通过本次分享对它的格式及原理都有了了解。而且在查资料的过程中也发现了很多基于pb的其他的优秀工具,可见pb的工作原理是非常优秀的。下一步还要更多研究下相关内容,希望能把代码完整的看一遍。

上面三点是主要做的一些事情,其他的时间就要还是在做需求相关的工作,接触消息相关逻辑,期间也做了第一款动画效果,也花费了些时间去学习了解,说到这里还有两个话题需要分享,一个是消息逻辑,另一个是动画相关知识分享。

走入社会也要不断学习呀,今年买了几本书,但是都还没有看完,其中有几本是非技术相关的,《沟通的艺术》、《学会提问》、《人性的弱点》都只是翻了一部分,技术书倒是读了一些,主要是iOS相关的,因为苹果去年也发布了新的编程语言Swift,虽然去年抽空学习了下,由于工作中主要还是Objective-C,长时间不用也就淡忘了,今年都发布2.0了,又重新学习了下,对比起来代码真的少好多,希望在新的一年里也能用Swift来写款小软件吧。技术书方面希望接下来能把那几本经典的都再读一遍,《iOS X Pushing The Limit6,7》,iOS的设计模式,官方文档多读,非技术书方面希望把今年没读完的先读完,然后再读些心理学方面的东西。

本来写这篇年末总结的时候是想着一气呵成的,竟然又拖拖拉拉的3天假期才写完,而且前后衔接不连贯,先这样吧,第一次写这样的总结,越写越流利的(自我安慰下~)。


上一篇     下一篇