关注 异步图书,置顶公众号
每天与你分享 IT好书 技术干货 职场知识
参与文末话题讨论,每日赠送异步图书
——异步小编
棣琦(本名张萌萌),曾梦想成为一名高级口译,却阴差阳错成了一个爱写代码的程序员。在IT江湖升级打怪的过程中,为了不断提高自己的技能,看书是少不了的;而要想成为高级玩家,看英文书自然也是必须。她说:“一个很偶然的机会,我接触到了《Linux二进制分析》的英文版。第一遍翻看时略显吃力,毕竟书中讲述的许多概念都是作者的原创,网上几无相关资料。但是这些稀缺的内容对于深入理解二进制分析却非常重要,译者由此尝到了知识的甜头。本着“独乐乐不如众乐乐”和“知识分享”的目的,《Linux二进制分析》的翻译之路就这样顺理成章地开始了。”
异步社区:请向异步社区的读者介绍一下自己?
棣琦:大家好,我是棣琦,是《Linux二进制分析》的译者。其实我一直以来的愿望是做高级口译的,可是大学选专业的时候,因为某些原因选了计算机,于是就在写代码的道路上越走越远了~哈哈~可其实人生的选择是很多的,我可以基于我自己本身的英语基础,翻译些计算机专业相关的英文文献,无论是对我自己而言,还是对大家而言,是一件双赢的事,何乐而不为呢。
异步社区:您在百度工作多久了?正在做哪些工作和项目?
棣琦:我其实很早就加入百度了,实习了两年,正式工作一年半了。这是一家我实习跳槽很多次之后最终选择正式工作的地方。主要是Java开发,目前做的项目与物联网技术相关。
异步社区:工作中要想成为高级玩家,有哪些必须经历的路要走?
棣琦:我个人觉得很重要的有三点。第一是经验的积累,第二是要保持开发的心态,随时给自己充电,第三就是多思考。我其实也算个职场新人,在工作中,请教过一些前辈,我发现前辈们给的建议有一个共性,那就是先积累,将掌握的东西结构化,形成自己的东西。在积累、整理的过程中,知其然、知其所以然,就慢慢内化成自己的东西了。还有就是现在知识更新这么快,一定要多学习吧。再就是,多思考,脑子越用越灵,哈哈~我目前还不是高级玩家,我也还有很长的路要走,但是每个人都一定要有属于自己的大方向。
异步社区:是怎么关注到《Linux二进制分析》这本书的?翻译过程中遇到过哪些难题?
棣琦:我曾经是“Linux中国”开源社区的翻译志愿者,也做过linux中国的新闻编辑,是Linux中国的创始人王兴宇大哥觉得我技术背景不错,翻译的文章质量还行,就跟我聊了一下,问我有没有翻译的兴趣。翻译一本书,刚好是我2016年定的目标,真的是机缘巧合,我就特别珍惜这个机会。我自己不是安全技术领域的,刚开始有一点畏惧感,会自我怀疑,我可以么,不过不挑战一下怎么知道呢~哈哈~我非常喜欢挑战和突破。试译了两章,发给主编看一下,觉得还可以,那就继续翻译下去了。
翻译过程中遇到的难题,那真是一言难尽。在正式开始这本书的翻译之前,我做了很多的准备工作,恶补了一些反编译相关的一些基础知识,《程序员的自我修养》这本书翻了几遍,网上也查了非常多的资料。万事开头难吧,一旦开始了,感觉也还好。其实前面两章是最艰辛的,一方面对一些术语,都要查很多的资料一一确认,另一方面还要把原书中作者的代码去跑一下看看有没有bug,并且在最开始翻译时,还没有磨炼出自己的风格,所以行文有点晦涩,读者读到第三章应该会觉得顺畅很多。有时候原作者的表达不是太清楚,有一些偏口语化的句子,我想很久都没有get到点,也很苦恼~还有就是,我在翻译这本书的时候,刚刚正式步入职场,有时候时间安排不是很合理,工作时间我会安心工作,所以翻译的事情我都放到晚上进行了,经常会到凌晨一两点。所以我感觉在翻译这本书的那一年,老了三岁的样子,哈哈~~这些都是翻译过程中碰到的一些问题,不过遇到坎儿不怕,总会有办法越过去的,就是这么乐观。
异步社区:作为《Linux二进制分析》一书的译者,针对不同读者的学习需求,说说您对学习本书的看法?
棣琦:其实本书的实操性还挺强的。要学习这本书,首先要对链接、装载和库等这些基本概念有一定了解,要有一定的编码基础,当然这都不是最重要的,最重要的是兴趣。有兴趣了,就会想跟着书中作者的思路去实践一下书里面的代码,比如怎么将一段代码注入到程序里面,如何去追踪一个进程,书上的内容只是一个引子,通过书中提到的一些东西,读者自己去进行更深入的研究和探讨,才是本书真正的价值所在。比如,原书的作者自己写了一个ftrace,用于追踪可执行文件的函数调用,那有兴趣的读者也可以自己造个轮子去进行动态分析,很容易就入门了。我这里也不是鼓励大家造轮子,如果有现成的轮子可以用当然很好,只是举个例子。
异步社区:对于行业内不断出现的技术演变和新技术,应抱有怎样的态度?从目前形势来看,行业预期走向会是什么样?
棣琦:我个人认为,就保持一个开放的心态吧,总会有不断出现的技术演变和新技术。所谓这个世界唯一不变的就是变化。embrace the change. 但其实总会有不变的东西,这个不变的东西,才是核心的竞争力。你的学习能力,你思考问题的方式,这都是别人拿不走的。当然啦,人要不断进行认知升级。会有很多人反馈,说在这样的时代,特别容易焦虑,尤其是中年危机这种偶尔蹦出来的新闻,让大家都惶惶不安。但其实没有必要焦虑,只要有自己坚定的方向,keep moving on。
我个人在IT行业的资历尚浅,还不敢妄言行业的形势和走向。不过AI是目前的一个潮流,是大势所趋,我目前在做的项目也跟AI相关。我个人对AI的发展持非常乐观的心态,也希望这个趋势会一直持续下去,更希望AI能够对人类的生活带来福祉。
异步社区:对于软件逆向工程这门手艺来说,您认为最难的是什么?
棣琦:对我来说最难的是克服技术畏惧感。可能每个人的畏惧点不一样,说到难,无非是因为畏惧感。但是你要知道,技术畏惧感或者任何的畏惧感,都会成为以后发展的瓶颈,所以要去克服。对于任何事情而言,一旦动手去做了,遇到问题就去网上搜,或者向同行的前辈请教,总会有办法搞定的。
异步社区:Linux 下的软件为什么很多需要编译,而不是直接发布二进制代码?
棣琦:因为不同的linux发行版乃至不同的版本库不同,而应用程序也往往会依赖很多别的库,发布源码比较省事。并且linux下也有使用源码编译然后使用这个传统,这就让人比较放心,不用担心你编译好的二进制代码里面是不是注入了什么恶意代码。其实很多程序员图省事,直接把源码给出来就好了,源码是最直接的产出,二进制代码还要去编译。
异步社区:您曾说:“要想成为一名真正的黑客,不仅要会编写程序,还需要解析程序,对已有的二进制文件进行反编译,洞悉程序的工作原理”为什么会有这样的想法?
棣琦:在我看来,这个是作为黑客的一个基本素质吧,知其然知其所以然,才能游刃有余得做你想做的事情啊,嘿嘿,就是你想做的事情,这里不是鼓励大家去黑人家的网站~其实要成为安全领域的专家,在做安全防攻时,你懂一些底层的东西,定位问题会快很多,很容易就能找到切入点。
异步社区:最后,对于刚刚步入Linux领域的新人,有一些什么样的建议和经验分享?
棣琦:建议多在Linux中国开源社区逛逛,多多参与开源社区的活动吧~这里有很多的前辈,可以给你很多指导。
【美】Ryan O'Neill(瑞安 奥尼尔)著
本书是目前为止唯一一本剖析Linux ELF工作机制的图书,本书讲解了Linux ELF二进制格式的内部工作机制,用于检测和分析UNIX病毒的技术,处理二进制加固和软件防篡改的方法,对可执行文件和进程内存打补丁,绕过恶意软件中使用的防调试技术,执行高级的二进制取证分析,使用C语言来设计ELF相关的工具,以及在内存上运行ptrace。
今日话题
说说你2018年的成长目标?截止时间3月28日17时,留言+转发本活动到朋友圈,小编将选出1名读者赠送异步新书一本。(注:本活动仅在微信异步图书公众号参与)
长按二维码,可以关注我们哟
每天与你分享IT好文。
在“异步图书”后台回复“关注”,即可免费获得2000门在线视频课程;推荐朋友关注根据提示获取赠书链接,免费得异步图书一本。赶紧来参加哦!