逆向工程 February 13, 2020

re入门简介

Words count 3.9k Reading time 4 mins. Read count 1000000

一,语言基础

汇编语言:

既然是逆向那么汇编语言必不可少,要知道汇编才能知道代码是如何出来的,汇编语言因为可移植性很差,所以有很多种汇编,但是必须要会的是x86和x86-64的汇编。

汇编学习书籍:(20~30天)

《汇编语言》(王爽) 有这么一本就够了,如果学习或做题的时候遇到问题,可以选择用百度谷歌学习。

汇编学习网站:(5天)

汇编学习网站

这个是必备的,在看完上本书后,这个是作为加强理解汇编的很好手段

C语言:(所有的基础)

c语言这里不过多赘述,ida的伪代码就是类c代码,所以c的要求必须是会写。

Python:

python现已经成为最流行的语言之一,在ctf领域也广受欢迎,写脚本或是编写小程序也是十分的方便。

Python学习书籍:(30天)

python编程:从入门到实践(蛇书)

Python基础教程(人民邮电出版社)

其他语言:

目前经常会出的题目语言还包括:Golang,c#,vb,java,cpp…..

虽然会遇到,但是没必要全部细致地的学过,他们的需求只是能读下来就可以,建议学一下java,了解一下面对对象编程,学懂类等的含义,其他语言不需要学习,在学会c之后就可以读懂大部分,遇到不会的就百度或谷歌。

二,平台基础及软件

windows:

平台知识基础:

了解pe文件,pe文件头,pe文件的结构,windows下的程序是如何运行。

软件:

ida pro

olldbg

detect it

PEiD

WinHex

x64dbg

x32dbg

jadx-gui(android逆向)

dnspy

加密解密的一些工具

LINUX:

平台知识基础:

elf文件的结构和文件头

linux基础指令的使用

软件:

GDB

objdump

z3求解器:

python2,python3

vim

三,逆向知识

逆向的相关知识很多,这里无法一一列举,只能通过自己做题练习自己总结,或多去看吾爱破解和看雪平台的文章来学习新知识。

这里也推荐一些逆向知识学习的书籍和网站

书籍:

《加密与解密》(手里必须有一本)

《逆向工程核心原理》(建议)

《逆向工程入门指南》:https://wizardforcel.gitbooks.io/re-for-beginners/content/

网站:

看雪论坛

吾爱破解

四,如何进行逆向旅程呢?

如果有目的的做事情会让你的目标更明确,效率更高,伴随着刷题的学习,会让你边练习边学习,再加上写wp的习惯可以让你更好的消化今天所学习的知识。所以刷题加总结wp是这趟旅程的交通工具。

交通工具找到了然后要规划好路线。逆向的初期不要进行的太难的训练。刚刚开始进行只需要一些简单的工具题就好了,先熟悉使用工具就好了,接触ida和od,以及在linux下如何读反汇编等等。。。推荐攻防世界的新手题目,虽然只有几道但是也够了,不会的地方记得要多查多问前辈,做完记得要总结,写wp。

从初期的小白到中期的小萌新,需要一段时间的练习,虽然很煎熬但是依然要坚持,当你能熟练地做出前面的题目时候就可以进行下一步了。工具题毕竟只是用来熟悉工具的使用和逆向题目的结构,并没有什么难度,此时你还不算进入逆向的领域。在中期的路上,可需要南邮的题库,攻防世界进阶的简单题目和buuctf的简单题目作为练习手段。这个时期的任务是能解开有简单的异或等位运算的题目,会简单的爆破脚本,要能很顺利读出伪代码的结构,能读懂部分汇编代码,会很简单的动态调试(ida远程linux调试和olldbg动态调试)。满足这些条件你就可以从中期走出来了。

如果从中期出来,那么恭喜你,你已经是一个菜鸟了,你已经非常优秀了。后期的旅程是相当的有趣,你可以接触加密的算法,学习逆向的更多技巧。这个时候你需要继续刷题外,还要开始大赛之旅,所有大赛题目都要尝试做,如果做不出来就进行复现,复现成功后进行总结,学习每个题目的技术,不会的就问各个大佬。这个时期还要自己根据对知识的理解出题目(自己肯定也要能做出来才行)。

走出后期后呢,恭喜你已经是这一行的优秀人才了,快去虐菜吧。

0%