个人一些肤浅的认知。。。。
一、首先,啥个是逆向?
举个栗子0.0, 我们小时候好奇心很强,经常把玩具拆开想看一看它的内部结构,获取它的工作原理。其实这个过程就是逆向!
二、学习逆向工程可以从事哪些方向的工作?
(不同方向侧重点不同,看一下招聘要求就知道要学啥了)
病毒分析
漏洞分析
逆向开发
外挂开发(不只是游戏才有外挂哟~,闷声发大财,哈哈哈哈)
…………逆向可以看作一项基本技能,是修炼其他武功秘籍的前提。
三、怎么学?
逆向入门难,深入更难。要有毅力,勿浮躁,保持持久的热情~~~
第一步,打好编程基础,不会正向开发,学习逆向只会事倍功半。练习编程时就要不断调试,查看反汇编,掌握变量内存布局和常见汇编指令。(这一步应该掌握编程语法、结构,看得懂汇编) 推荐《C++反汇编与逆向分析技术揭秘》
第二步,学好操作系统,对程序如何运行,程序在硬盘中存储的文件格式,以及程序运行时在内存中是什么样的,这些都应有清晰的认识。推荐《程序员的自我修养--链接、装载与库》
第三步,实战提升。空说不练假把式,刷ctf,病毒分析,软件破解,写注册机。查缺补漏。win32,mfc,qt,脱壳、修复,注入、hook,去混淆,加解密,…… 编程语言,逆向技术,保护技术, 你会遇到很多坑,消除恐惧最好办法就是面对它,加油~ OLG
第四步,OLG
第五步,OLG
……
四、现状
需求远小于其他计算机行业,技术要求高,有经验要求,薪资中上水平。(大学生一定把握机会,努力学习,对比下校招和社招的要求吧!!!)
一定慎重选择,初级水平就业有困难!!!
ps:假如你坚持学习了两年,结果工作并不如你所想,到那时你会如何选择呢? just like me now
(逆向当个爱好是真的酷!!!)