欢迎来到HDUISA wiki,如果这是你的第一次到来,请点击此处注册

欢迎大家选择了这个坑,希望你们不要半途而废,中途弃坑。

PS:在文章的最前面插一句话。学好c语言,学好c语言,学好c语言。无论是什么方向,想学什么,学好c语言。

逆向工程介绍

逆向工程,也可以称之为二进制安全。如果选择了这一方向,就请坚持下去,逆向工程的入门应该是所有的学习方向中最困难的。但是一旦学成,必有其牛逼之处。

逆向工程的最根本的目的,其实就是将已经编译完成的程序,通过逆向工程师阅读汇编语言的代码,将其源代码重写出来的过程。理论上讲,无论什么程序在最顶尖的逆向工程师面前都是没有秘密可言的。当然,这是也是所有逆向师的目标。

当然学习逆向工程不只是能够重写出源代码这么简单。逆向工程的应用是非常广泛的。

1.软件破解 很多人对逆向工程的认识便是破解软件。确实,学习逆向工程可以进行软件破解。很多初学者学习逆向工程的目的也是为了去破解软件。逆向工程的其中一个分支便是破解商业软件,或者是编写游戏的外挂之类。我们能够免费的使用一些商业软件都是破解者的功劳。但是我希望将软件破解只是作为一门技术而不是谋生的手段去学习。

2.软件补丁 逆向工程除了可以破解软件之外,其实也可以为软件打补丁。内存补丁技术便是可以在没有源代码,或者是不需要更改本来程序的情况下修补软件的漏洞的技术。通过内存补丁技术,可以将内存非常快速的修复漏洞。

3.漏洞利用与防御 利用一个软件本身所带的漏洞对一台计算机进行攻击,最后控制对方的计算机。这就是网络安全中最可怕的,最难防御,后果最严重的0day攻击。顶尖黑客手上都或多或少掌握着一些未被公开的0day漏洞.他们可以悄无声息的进入并且控制一台计算机。而且几乎没有什么方法可以防御这种攻击。当然只有最厉害的黑客能够使用这种技术,而0day攻击的基础,便是逆向工程技术。 只有最拥有深厚的逆向工程基础的人才能够掌握0day攻击的方法。当然,在网络安全的世界里,最好的攻击者也是最好的防御者。也只有同样顶尖的黑客才能够发现和防御0day攻击。

4.病毒分析和防御 病毒是最难逆向分析的程序。所有的病毒都想尽办法的伪装,混淆,希望能够躲过检查混入计算机当中。而能够分析病毒代码,工作原理,伪装方式的人,只有逆向工程师。只有通过逆向工程师们分析,拆解出并病毒的核心代码。才能让防火墙有发现并清除病毒的能力。

吊炸天的逆向工程师都会得到一个称号“逆向机”因为逆向工程师们是最了解计算机代码运行的人。一个程序,无需打开便可以知道是如何运行的。程序的源代码是怎么写的。而且可以发现编写程序的人都未曾发现的bug。 希望选择了这条道路的人,能够有一天得到这一称号

我是零基础,应当如何入门?

首先这里有几个问题,请回答完继续向下阅读:

1. 你会自学么?

  A 自学个屁,没人教我就不学了。 -> 请退出安协
  B 除了A选项,请继续向下答题 -> 2题

2. 你畏惧读英文文献么,即便英文不好也会去用翻译软件一点一点读?

  A 我特么最烦看英语了! -> 请选择其他方向入门
  B 虽然我英文不好,但是看到英文文献不会畏惧 -> 3题

3. 你遇到问题的时候,是否善于通过百度等方法进行解决?

  A 什么特么的百度,有问题我就问别人 -> 4题
  B 嗯,我会自己用搜索引擎解决的 -> 请继续阅读
  C 我搜索不到了才会问别人 -> 4题

4. 在你问问题的过程中,是否注意过问问题的礼仪?

  A 注意过,我会把问题表述的很清楚,遇到的什么问题,尝试了什么方法,结果如何都会说清楚。 -> 请继续阅读
  B 啥礼仪?问问题就一句话:这怎么弄? -> 请选择其他方向入门

这是很多人都会问到一个问题,没有基础如何学习安全,或者你们口中的日站之类的东西。请继续阅读下面的逆向入门。

首先,最重要的是学好编程学好编程学好编程(重要的事情说三遍)。我见过无数的兴趣满满的入门者都死到这里了,因为觉得编程没意思,然后就放弃了。编程语言像是和计算机交流的语言,如果不会和计算机交流,更别说挖漏洞和渗透了。之后呢,无论你学习啥,都要先打好基础。就像武侠小说中的内功一样,只要内功(基础知识)雄厚,无论将来学什么招式(各种技术、例如软件破解、堆栈溢出等),用什么武器(各种工具),甚至是自己制作武器(自己编写脚本、工具),都会得心应手,也会让你在安全的路上越走越远。so,这里有几个建议给各位,先从编程开始入手学习,一定要弄明白自己到底想要的是什么,看清自己的内心。

PS: 摘自渗透入门 : )

逆向工程入门

逆向入门没啥好说的,学习路线也比较简单,但是相对来说十分枯燥,一旦学成,必显其牛逼之处。选择了逆向,也就是你每天要面对无数的二进制代码、汇编代码、十六进制等等的东西,如果没有很大的兴趣,学起来将会遇到很大的阻碍。 那么,逆向工程的入门需要学习什么?

逆向技能树

c语言

学习c语言是逆向工程的基础。如果是学习渗透方向的,也许可以选择python作为自己的第一门编程语言。但是作为逆向工程方向,第一门入门的语言没有选择,只有c语言。深厚的c语言功底是逆向工程的基础。如果想学习逆向工程,务必要有深厚的c语言功底。逆向工程中c和汇编就是好比是一颗树的根部和树干。没有扎实的基础是无法继续更加深入的学习的。=====⇒ 推荐书籍:《c primer plus》业界经典

汇编语言

作为逆向工程的2大基础语言。汇编语言也是一切其他学习的基础。如果你认为已经具有深厚的c语言功底。可以清楚的理解指针的指针,数组指针,指向数组的指针,函数指针等等指针的概念之后,就可以开始学习汇编语言的。汇编语言是一门很非人类的语言,因为汇编语言其实就是非人类的二进制机器语言的另外一种表达形式而已。但是学习逆向工程,你就无法逃避学习汇编语言。

学习汇编语言,其实不只是入门而已。汇编语言是需要不断学习研究的。可以按照一下的路线学习 a.16位汇编。16位汇编语言可是老古董了。不过作为初始汇编的人来说还是很合适学习的。 ====⇒ 推荐书籍:王爽的《汇编语言》经典必看 b.32位汇编。intel x86指令集的32位汇编是现在最主流的指令集了。它继承了16位的汇编指令并发展而来,是现在最主流的汇编语言了。 =====⇒ 推荐书籍:钱晓捷的《基于Windows环境的汇编语言程序设计》个人感觉继续学习32位汇编不错的一本书。

32位汇编语言学习完成之后,就已经是算汇编,或者是逆向工程入门了。如果希望继续学习汇编,可以从以下方向中自由选择。

1.64位汇编语言,32位汇编再进化,如今愈来愈多的软件支持64位的指令集。相信终有一天会代替32位汇编成为主流的汇编语言。

2.arm指令集汇编。安卓逆向必备,许多的移动产品cpu都是使用arm指令,如果有兴趣可以深入学习

3.还有很多指令集,有兴趣可以自由的学习

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

逆向工程进阶

window逆向工程

想继续在windows平台下玩耍的话可以选择这个分支。学习软件破解与加密技巧,游戏外挂以及反外挂的技术。病毒的编写以及分析的技术。其实都是建立在逆向工程技术之上的。

要学windows逆向,首先要对windows的api或者说是系统函数要有详细的了解。推荐两本书:

1.《windows环境下的32位汇编程序设计》(又名《琢石成器》)以汇编语言讲解WindowsApi,必看。

2.《windows程序设计》window开发界的圣经,不变的经典。

如果对windows的api有了一定了解之后。可以开始学习windows上逆向工程的更高级技巧了。继续安利两本书:

1.《加密与解密》看雪出品,必属精品。不可多得的逆向精品书

2.《逆向工程核心原理》评价挺不错的书,值得一看

除了看书之外,就是可以找一些ctf或者creakme来练练手了。学到的知识只有通过实践才能够完全掌握。

漏洞利用与防御

0day攻击。网络安全领域最可怕,最难以防御,后果最严重的攻击方式。掌握着未被公开的0day漏洞的黑客无疑是黑客中最为顶尖的存在。如果你学习linux,希望成为被人崇拜的2进制大牛,就向着这个方向前进吧。 这个方向资料实在不多,只有一本:《0day安全》依然是看雪出品。因为已经绝版,所以将就看盗版的吧。

安卓逆向

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

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

给希望入门者的建议

看完了上面是介绍,有没有对逆向工程充满了憧憬,打算加入我们呢?

这里我给希望入门的人一些小小的建议。

1.不要急于求成。

逆向工程的路没有捷径可走,需要一步一步脚踏实地的走。期望短短的几个月内就能够小有成就是不现实的。如果想要成为一个真正的高手,那首先就需要耐得住寂寞。即使苦学一年的时间却仍然感觉什么都不会,也请坚持下去。总有一天,会成为真正的大师。

2.基础很重要

C和汇编语言,已经对操作系统的了解才是逆向工程师们的资本。如果在学习的过程当中感到吃力了,务必回过头去补充最基本的知识。切勿浮沙筑高台

3.不要依赖工具

虽然网络上有很对非常好用的工具,只要鼠标点击几下,就可以黑入别人的电脑。但是,千万不要依赖工具,否则只能够当脚本小子,而无法成为真正的高手。

4.不要再问会不会日站了

为什么很多人对黑客的印象就是黑别人电脑和写病毒呢????

我们沉迷于网络技术,我们不断的学习以求超越自我。我们用我们的技术为网络世界作出贡献。黑客不是网络的破坏者。黑客是互联网的创造者和保护者。

打印/导出