逆向工程入门「建议收藏」

逆向工程入门「建议收藏」本问只是为初入逆向工程大坑的新人们指出方向学习,没有实质性的技术。总的来说,基础才是最重要的。逆向工程入门应该算是所有学习方向中最难的。但是选择了这一方向的请不要放弃,一旦学成,必定会是大神级别的存在。那么,逆向工程的入门需要学习什么?1.c语言学习c语言是逆向工程的基础。如果是学习渗透方向的,也许可以选择python作为自己的第一门编程语言。但是作为逆向工程方向,第一门入门的语言没有选择,只有

大家好,又见面了,我是你们的朋友全栈君。

本问只是为初入逆向工程大坑的新人们指出方向学习,没有实质性的技术。总的来说,基础才是最重要的。

逆向工程入门应该算是所有学习方向中最难的。但是选择了这一方向的请不要放弃,一旦学成,必定会是大神级别的存在。
那么,逆向工程的入门需要学习什么?

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位汇编语言。
32位汇编再进化,如今愈来愈多的软件支持64位的指令集。相信终有一天会代替32位汇编成为主流的汇编语言。
2.arm指令集汇编。
安卓逆向必备,许多的移动产品cpu都是使用arm指令,如果有兴趣可以深入学习
3.还有很多指令集,有兴趣可以自由的学习

其实到了这一步,其实已经可以算作是逆向工程入门了,接下来就是继续向更高的方向前进。
下面的是逆向工程几个方向分支。感兴趣就去学吧

1.window逆向工程

想继续在windows平台下玩耍的话可以选择这个分支。学习软件激活成功教程与加密技巧,游戏外挂以及反外挂的技术。病毒的编写以及分析的技术。其实都是建立在逆向工程技术之上的。
要学windows逆向,首先要对windows的api或者说是系统函数要有详细的了解。推荐两本书:
1.《windows环境下的32位汇编程序设计》(又名《琢石成器》)以汇编语言讲解WindowsApi,必看。
2.**《windows程序设计》**window开发界的圣经,不变的经典。

如果对windows的api有了一定了解之后。可以开始学习windows上逆向工程的更高级技巧了。继续安利两本书:
1.《加密与解密》看雪出品,必属精品。不可多得的逆向精品书
2.《逆向工程核心原理》评价挺不错的书,值得一看
除了看书之外,就是可以找一些ctf或者creakme来练练手了。学到的知识只有通过实践才能够完全掌握。

2.漏洞利用与防御

0day攻击。网络安全领域最可怕,最难以防御,后果最严重的攻击方式。掌握着未被公开的0day漏洞的黑客无疑是黑客中最为顶尖的存在。如果你学习linux,希望成为被人崇拜的2进制大牛,就向着这个方向前进吧。

这个方向资料实在不多,只有一本:《0day安全》依然是看雪出品。因为已经绝版,所以将就看盗版的吧。

3.安卓逆向

随着智能手机的普及,逆向工程也开始进入安卓手机平台。如果希望从事安卓逆向的人,可以学习此方向。
至于学习方法嘛。。。。首先,你要学会安卓开发。其次,你要学会arm指令集。然后开始安卓逆向之路。有一本推荐大家《Android软件安全与逆向分析》还是看雪出品。

相信对于初学者来说,这么多的方向已经看的够让人眼花缭乱的了。不要惊慌,从最初的c语言开始吧。坚持着一步一步向前。你会慢慢发现逆向工程的世界比我写的更加精彩。

本人能力所及范围内就只有这一些了。如果有疏忽以及不正确的地方,欢迎指正

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/150736.html原文链接:https://javaforall.net

(1)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • git下载与安装教程[通俗易懂]

    git下载与安装教程[通俗易懂]1.下载地址官网:https://git-scm.com/download/win2.安装选中文件编辑器选notepad++编辑器记得要先安装好3.测试安装是否成功鼠标右键桌面,显示如图说明安装成功打开gitbaseHere输入git–version可以查看版本4.配置全局用户和邮箱信息1)打开gitbaseHere,输入如下命令,回车即可gitconfig–globaluser.nam…

    2022年6月3日
    32
  • 最大子矩阵和 leetcode_leetcode有效的括号

    最大子矩阵和 leetcode_leetcode有效的括号给你一个二维矩阵 matrix 和一个整数 k ,矩阵大小为 m x n 由非负整数组成。矩阵中坐标 (a, b) 的 值 可由对所有满足 0 <= i <= a < m 且 0 <= j <= b < n 的元素 matrix[i][j](下标从 0 开始计数)执行异或运算得到。请你找出 matrix 的所有坐标中第 k 大的值(k 的值从 1 开始计数)。示例 1:输入:matrix = [[5,2],[1,6]], k = 1输出:7解释:坐标 (0,

    2022年8月11日
    6
  • clion激活码-激活码分享

    (clion激活码)JetBrains旗下有多款编译器工具(如:IntelliJ、WebStorm、PyCharm等)在各编程领域几乎都占据了垄断地位。建立在开源IntelliJ平台之上,过去15年以来,JetBrains一直在不断发展和完善这个平台。这个平台可以针对您的开发工作流进行微调并且能够提供…

    2022年3月26日
    130
  • ubuntu 20.04 lts安装_vmware如何安装

    ubuntu 20.04 lts安装_vmware如何安装ubuntu22.04lts安装步骤

    2025年10月11日
    3
  • Python 学习笔记 – Paramiko 模块

    Python 学习笔记 – Paramiko 模块

    2022年2月22日
    57
  • .net 零拷贝_模拟总线型以太网数据帧发送过程

    .net 零拷贝_模拟总线型以太网数据帧发送过程mmap/munmap接口是用户空间的最常用的一个系统调用接口,无论是在用户程序中分配内存、读写大文件,链接动态库文件,还是多进程间共享内存,都可以看到mmap/munmap的身影。

    2025年12月9日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号