前言
作为一个曾经从事过C、C++、C#、Java开发的野生程序员,在经过几年软件开发工作后,准备转行开始从事安全相关领域。具体来说就是逆向工程师,之前也做过一些相关工作,但基本是网络安全领域,考虑到逆向工程师的范围很广,需要学习掌握的内容又特别多,鉴于还是一名初窥门径的学徒,先选定Windows方向开始自己的摸索,后续有更多精力了也会对其他方向展开学习,希望借助网络平台把自己的学习历程记录下来,也是对自己的一种督促,当然也希望在这个过程中结实更多的业界朋友,多交流,开阔自己的视野。这段时间在网上找了很多学习逆向工程的资源和经验分享,在这里跟大家总结一下。
知识梳理
语言基础
具备一定的编程能力,C、C++、Python等任何一种,不要求精通,但需具备写一个小工具的能力,要具备正向编程的思维模式,同时需要熟悉X86/X64系列汇编语言,脚本语言里推荐学习Python,熟悉Python常用的逆向工程库,此处推荐书籍《C++ Primer Plus》、王爽《汇编语言》和《Python灰帽子》。
系统原理
对Windows操作系统原理要深入理解,对系统的底层架构、Windows API、数据结构、安全机制、Bitlocker加密技术、常用的注入、钩子技术还有系统的异常处理机制等有较为深入理解,此处推荐书籍《深入理解计算机系统》、《Windows核心编程》。
常用工具
工欲善其事必先利其器,Windows系统逆向要熟悉常用的分析工具,比如IDA、Windbg、Ollydbg、Immunity Debugger、Bindiff、WinHex等,实际工具太多,此处不再一一列举,都说逆向是一个实践重于理论的过程,后续也将针对上述经典逆向工具谈谈具体学习心得。
逆向原理
熟悉常见的加解密算法,对常见的加壳和脱壳的原理、基础知识储备要够,熟悉反调试技巧,能够快速识别常见加解密算法特征,对一些系统以及常见应用,比如浏览器、Office、flash等软件的常见漏洞有一定了解,利用Metasploit生成样本来进行漏洞重现,后续也会针对各类型常见漏洞进行总结,此处推荐书籍《加密与解密》。
学习资源
站在巨人的肩膀上才会走的更远,要多关注国内外的安全社区、微博、微信公众号和大牛,收集国内外与安全相关的站点、峰会、漏洞平台信息,比如:国内的看雪论坛、吾爱破解、Freebuf、安全客、T00ls、腾讯安全玄武实验室、先知社区、纳威安全导航、SecWiki-安全维基,国外的Hack Forums、0x00sec、The Hack Today、Infosecurity Magazine、Threatpost、The Hacker News、exploit-db、CVE、Protekresearchlab等等。
行动起来
以上把我收集的关于学习Windows逆向的资源与学习方向大致总结了一下,千里之行始于足下,虽然有些编程基础,但真正认真读完一本书还没有,这里将尽快把《C++ Primer Plus》、王爽《汇编语言》认真读一遍,同时也会在这个过程中找一些比较简单的Windows逆向的实例与大家学习分享,不知道具体需要多长时间,但后续会严格按照既定学习路线,一步一个脚印的学下去,也希望在这个过程中能得到大家的督促,多与大家交流,可以在微信公众号中搜索:安全fun。
转载声明:如果希望转载请邮件至[email protected],转载时请保留原作者(安全fun)及出处信息,转载文章禁止声明原创,更多合作也可邮件至[email protected]。
免责声明:本账号所涉及内容仅供安全研究与教学使用,如出现其他风险,后果自负。
来源:freebuf.com 2021-02-23 14:13:49 by: 安全fun号
请登录后发表评论
注册