说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

专访沙梓社:做个“Think Different”的技术牛人

HTML文档下载 WORD文档下载 PDF文档下载
他既是个技术狂,又是个懂得生活的人;他也是iOS越狱社区骨灰级活跃份子,对苹果的研究痴迷到连女朋友都没有的地步;本期采访的嘉宾就是《iOS应用逆向工程》的图书作者沙梓社,请他分享iOS开发的经验之道。

有这么一个人,他既是个技术狂,又是个懂得生活的人;他也是iOS越狱社区骨灰级活跃份子,对苹果的研究痴迷到连女朋友都没有的地步;他为人低调,就连照片都不愿提供,本期笔者要采访的就是这位神秘的技术牛人,他就是《iOS应用逆向工程》的图书作者沙梓社,请他分享iOS开发的经验之道。


CSDN:首先请介绍下自已。

沙梓社:大家好,我是沙梓社,是一个目前技术重心放在iOS上的非典型技术男。

CSDN:你是从什么时候开始接触iOS开发的?《iOS应用逆向工程》这本书以iOS应用逆向工程实战为主,什么是逆向工程?它与普通的iOSApp开发书籍有什么区别?第一版和第二版侧重点分别是什么?

沙梓社:我是从2010年iPhone4面世前开始接触iOS开发的,在学习的起步阶段见证了iPhone4这款神机在全球的爆红。

给你水、面粉、糖、芝麻,让你做烧饼,这是正向工程;给你一个烧饼,让你分析出它是由多少水、多少面粉、多少糖、多少芝麻组成的,这是逆向工程。也就是说,根据图纸制作实物的这个过程是正向工程,而根据实物倒推图纸的这个过程则是逆向工程。

普通的iOS App开发书籍全都可以划归到正向工程这个范畴里,跟逆向工程是两个不同的方向。我们都把自己的舞台设定在iOS中,正向工程是跳芭蕾,逆向工程是唱京剧,虽然我们分属两个艺术类别,但对于台下的观众来说,都是美的享受;君子和而不同。

第一版的侧重点是“术”,主要是介绍了工具和理论在逆向工程实战中的应用,类似于杨过早期对独孤求败前辈所创玄铁剑法的运用;第二版的侧重点是“道”,在第一版的基础上提炼出了一套原创iOS逆向工程方法论,有点杨过后期自创黯然销魂掌的感觉。第二版与第一版的架构几乎一样,但足足多出了120页,是我一年多以来在各种平台上跟读者频繁交流的心得提纯;第一版到第二版的进化,也体现了我本人对iOS理解的不断加深,是一个求索的过程。

CSDN:你怎么会想到写这样一本书呢?这本书的思路是怎样的?对读者而言如何学习这本书,您有哪些建议呢?

沙梓社:从我学习iOS逆向工程到有能力撰写这样一本书的整整4年里,虽然iOS火得一塌糊涂,App开发书籍多如牛毛,参差不齐,但这个地球上竟然还不存在既公开,又同时能系统、全面、面向菜鸟、手把手带你入门的逆向教程。既然需求存在却不被满足,那么做这件事就有意义。所以在航哥的邀请下,我参与撰写了这样一本书。如果马后炮地看这本书的诞生与发展,我就是做了一件大公司们都不愿意做,但切中一个小众群体痛点的事,从而避其锋芒、韬光养晦,最终破土萌芽。这个过程与创业并无二致,想想还挺带感的。

有四类读者人群会对这本书感兴趣:

  1. iOS发烧友;
  2. 高级iOS开发者。在掌握了App开发后对iOS的理解有更深的诉求;
  3. 架构师。通过逆向那些经典的App并学习它们的架构方式,是提高自己架构能力最高效的途径之一;
  4. 在其他操作系统中从事逆向工程,同时对iOS感兴趣的逆向工程师。

这本书由4部分构成,分别是概念、工具、理论和实战。这4部分遵循抽象、具体、抽象、具体的模式,从苹果避而不谈的iOS文件系统结构、文件类型和权限等基本概念入手,逐一介绍class-dump、Theos、Cycript、Reveal、IDA和LLDB等常用逆向工具,再分别从高层语言Objective-C和底层语言ARM汇编的角度切入,总结提炼出一套原创iOS逆向工程方法论,点出全书核心。最后以4个原创实战案例收尾,从易到难地串联全书的内容,循序渐进地描绘逆向的套路。

我的建议是从头至尾顺序精读本书,如果有问题就来我们的论坛bbs.iosre.com上提问,看累了就到我们的Q群251453531上聊天。

CSDN:在《iOS应用逆向工程》一书中提到从UI观察切入代码分析的iOS应用逆向工程方法论,这其中到涉及应用开发的设计、技术、安全等多方面。请问你是如何掌握这么多不同领域的知识,并能总结成书的?

沙梓社:我是把别人喝咖啡的功夫都用在工作上——鲁迅。

这些其实都是逆向工程领域必备的知识,是我4年间通过牺牲睡觉时间、吃饭时间、发呆时间、玩耍时间、恋爱时间换来的;虽然少了很多这样的乐趣,但是平添了更多别样的精彩。

CSDN:逆向工程开发需要的知识是多维度的,你有什么其他书籍或学习材料推荐吗?

沙梓社:如果从广义的计算机逆向工程角度来说,我推荐TiGa的IDA系列教程、Lena151的逆向工程教程、Peter’s GDB Tutorial;如果只是iOS逆向工程,那么一本《iOS应用逆向工程》就够了(再说也没有第二本了)。先看前3个,再看后1个,看之前即使是零基础,但如果能边看边做,理解消化,看之后你就已经是准高手了;接下来与高手之间的差距,就要靠日复一日的实战磨练来慢慢消除了。

CSDN:第一版和第二版面世相差时间不到1年,你如何在进度压力下,享受写书带来的快乐?

沙梓社:我不怕疼痛,只要能够痛并快乐着,我就快乐;我也不惧压力,只要能够留下些什么,那就值得。

CSDN:在你开发的众多应用中,比如SMSNinja、LowPowerBanner、DimInCall,能否以某个为例,谈谈其成功的关键。

最成功的应该是LowPowerBanner,睡一觉下载量就超过3万次了;我在iOS6后停止更新,直到两年后的今天还会收到用户希望它“复活”的邮件。还是马后炮地看,归根结底是因为我做了一件当时的高手们不屑于做,但切中一个小众群体痛点的事,跟本书的诞生一脉相承、妙不可言。

CSDN:App Store为个人开发者提供了很好的机遇。在你看来,要成为优秀的应用开发人员,需要具备哪些素质呢?

沙梓社:如果这个“优秀”的标准是从技术角度来评判的,保留一颗热爱技术的平常心是必备的,其他都是次要的。技术的发展日新月异,只有热爱技术才能不畏疲倦、紧跟时代;技术的钻研永无止境,只有摆正心态才能处变不惊、修成正果

如果这个“优秀”的标准是从商业角度来评判的,那么不可或缺的则是开放的心态。许多技术高手认为谈商业是对技术的玷污,我却不以为然;技术是为人类服务的,而商业存活的前提就是它可以为人类提供令人满意的服务。在我看来,大多数技术是由商业推动发展的,美国就是最好的例子。而技术只是组成商业服务的一个部分,其他的诸如设计、推广、销售等部分都缺一不可。如果要成为这个标准下的“优秀”开发者,就需要在编写代码之外跳出技术的框框,去了解商业服务的整个闭环,甚至亲身参与其中。如果非要把自己锁定在技术这条单行道上孤注一掷,那么到最后死路一条的概率就会非常非常大。

如果把语境放在两会上李克强总理提出的“互联网+”概念,那么“优秀”的标准毫无疑问是属于后者的。如果你是个跃跃欲试,想要创业的典型技术人员,或许就有必要重新思考“优秀”的定义了。

CSDN:你现在主要使用哪种语言?为什么?哪里吸引了你?

沙梓社:我现在写程序主要用的是C和Objective-C,在逆向中还会阅读大量的ARM汇编;至于为什么用它们,是因为苹果只提供给了我屈指可数的几个选择,根本轮不到我来选……最吸引我的恐怕就是Objective-C语言的runtime特性了,它是所有tweak能够存在的根本原因,也是我在逆向工程中下功夫最多的地方。

CSDN:我知道你是一位崇尚自由、热爱旅游同时又热爱技术的人,你现在还经常出去旅游吗?你一天的工作节凑是怎样的?很多人称你为iOS越狱社区骨灰级活跃份子,对苹果的研究痴迷到连女朋友都没有的地步。对此,你怎么看?

沙梓社:因为对于行将而立的男性而言,时间的珍贵程度毋庸多言,所以现在旅游比较少,而是一心扑在了事业上。

我每天花在事业上的时间大约在11~12小时,主要是坐在电脑前处理各项工作;其余的时间主要花在确保自己能健康活下去的事情上。

那是我对自己的评价,还比较保守;别人没有这么悲观,而是说我顶多会孤独一生罢了。开玩笑的,只是缘分还没到而已。

CSDN:有没有什么话想对iOS开发者说。

沙梓社:站在技术人员的角度来说,我们这个群体的特点跟电脑程序非常类似:逻辑性强,但脑子轴,不爱变通;有付出就必须有看得见的回报。很多人问我,看你这书有什么用?我没法给出一个确定的答案,比如看完这书你的工资会涨600块钱,或者老板给你晋升一级。

但是乔布斯曾说,要“ThinkDifferent”;逆向工程对于正向工程来说,正是一种直截了当的“ThinkDifferent”。这本书或许不能马上给你带来物质上的丰厚回报,但却是“ThinkDifferent”抽象口号的一个具体实现,而且这个实现得到了国际的认可(目前已有美国和韩国的出版社想要引进本书),又落在了我们熟悉的领域,应该是一次很理想的、接地气的“ThinkDifferent”的机会。乔布斯在辍学后旁听的书法课,跟当时的乔布斯八竿子打不着,却对Mac的成功起到了至关重要的作用;从这个角度来说,这本书并不单单是一本技术书籍,我更希望它能激发广大iOS开发者的逆向思维,碰撞出一些另类的火花。这只是一隅之见,无论如何,祝愿大家都能有锦绣的前程和开心的生活。谢谢!


CSDN现开启图书作者专访栏目,欢迎推荐采访人或自荐,来分享你的成长经历和相关技术,相关信息请发送邮件至:xiamz#csdn.net(#换成@)。更多精彩内容,请点击社区之星或搜索关键字图书作者查看。

聚焦企业号、服务号典型案例 微信开发者大会深圳站正式开启 Objective-C之父Brad Cox访谈:我的编程之路 【先锋】完成B轮融资的TalkingData新商业模式:平台理念+跨界分析+技术开源 1/10计算资源,1/3耗时,Spark颠覆MapReduce保持的排序记录 Cookie已死,看Facebook、Google、Apple如何追踪用户 想用主板自带的hithpoint372/374芯片建立一个0+1的radi请问有什么要注意的? 各位高手请帮忙!! 基础题,马上给分! 公布操作IIS的源码 *****请问如何移除IE Webcontrols toolbar下的某个按钮? access中查询文本字段时若按字母顺序排序,是如何排的? SELECT field INTO variable怎么用的,顺便散分 诚征优秀鬼故事10篇,要完整而且足够长,每个给100分!另外开贴给分,有效期三天。要求鬼故事贴的标题已“鬼故事:”开头 我好急!大虾救我! 三国演义是一部结构宏伟而 together a take let's pic Let's take a photo now 同义 Don`t move.Let me take a this's a picture有这么写的吗 let's see this picture of 根据《三国演义》这部作品,说明历史著作和历史小说的 根据《三国演义》这部作品,你能说出历史著作和历史小 三国历史小说我想看一本关于三国历史的小说,除了三国 人品爆发!美国男子中611万后仅隔两日本“菜鸟”教师多:不会点火柴不敢拿土耳其欧亚海底铁路隧道仅运营第一天突甬台温高速一客车冲落路基 1死5伤日本一女大学生因在公园拍摄成人视频被月光博客和卢松松博客:谁会是没落的贵iPhone 6能比主流Androi传错失德佩后,红军瞄准奥巴梅扬四类股周五爆发将更猛!看你中奖了吗?菲亚特FCC4概念车巴西Sao Pa我的校花未婚妻我的绝美女神娇妻天剑真言英雄联盟之最强外挂灵武争锋堂里古村旅游夜游船旅游南沙海滨公园旅游南沙天后宫旅游小吴哥旅游
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘