本问只是为初入逆向工程大坑的新人们指出方向学习,没有实质性的技术。总的来说,基础才是最重要的。
逆向工程入门应该算是所有学习方向中最难的。但是选择了这一方向的请不要放弃,一旦学成,必定会是大神级别的存在。
那么,逆向工程的入门需要学习什么?
1.c语言
学习c语言是逆向工程的基础。如果是学习渗透方向的,也许可以选择python作为自己的第一门编程语言。但是作为逆向工程方向,第一门入门的语言没有选择,只有c语音。深厚的c语言功底是逆向工程的基础。如果想学习逆向工程,务必要有深厚的c语言功底。逆向工程中c和汇编就是好比是一颗树的根部和树干。没有扎实的基础是无法继续更加深入的学习的。
======> 推荐书籍:《c primer plus》业界经典
2.汇编语言
作为逆向工程的2大基础语言。汇编语言也是一切其他学习的基础。如果你认为已经具有深厚的c语言功底。可以清楚的理解指针的指针,数组指针,指向数组的指针,函数指针等等指针的概念之后,就可以开始学习汇编语言的。汇编语言是一门很非人类的语言,因为汇编语言其实就是非人类的二进制机器语言的另外一种表达形式而已。但是学习逆向工程,你就无法逃避学习汇编语言。
学习汇编语言,其实不只是入门而已。汇编语言是需要不断学习研究的。可以按照一下的路线学习
a.16位汇编。
16位汇编语言可是老古董了。不过作为初始汇编的人来说还是很合适学习的。 =====> 推荐书籍:王爽的《汇编语言》经典必看
b.32位汇编。
intel x86指令集的32位汇编是现在最主流的指令集了。它继承了16位的汇编指令并发展而来,是现在最主流的汇编语言了。 ======> 推荐书籍:钱晓捷的《基于Windows环境的汇编语言程序设计》个人感觉继续学习32位汇编不错的一本书。
32位汇编语言学习完成之后,就已经是算汇编,或者是逆向工程入门了。如果希望继续学习汇编,可以从以下方向中自由选择。
1.64位汇编语言。