逆向小白成长录
前言
作为一个曾经从事过C、C++、C#、Java开发的野生程序员,在经过几年软件开发工作后,准备转行开始从事安全相关领域。具体来说就是逆向工程师,之前也做过一些相关工作,但基本是网络安全领域,考虑到逆向工程师的范围很广,需要学习掌握的内容又特别多,鉴于还是一名初窥门径的学徒,先选定Windows方向开始自己的摸索,后续有更多精力了也会对其他方向展开学习,希望借助网络平台把自己的学习历程记录下来,也是对自己的一种督促,当然也希望在这个过程中结实更多的业界朋友,多交流,开阔自己的视野。这段时间在网上找了很多学习逆向工程的资源和经验分享,在这里跟大家总结一下。
知识梳理
语言基础
具备一定的编程能力,C、C++、Python等任何一种,不要求精通,但需具备写一个小工具的能力,要具备正向编程的思维模式,同时需要熟悉X86/X64系列汇编语言,脚本语言里推荐学习Python,熟悉Python常用的逆向工程库,此处推荐书籍《C++ Primer Plus》、王爽《汇编语言》和《Python灰帽子》。
系统原理
对Windows操作系统原理要深入理解,对系统的底层架构、Windows API、数据结构、安全机制、Bitlocker加密技术、常用的注入、钩子技术还有系统的异常处理机制等有较为深入理解,此处推荐书籍《深入理解计算机系统》、《Windows核心编程》。