Windows逆向初步认识

此博客仅为初学者提供方向,并无实际内容及操作!

首先简单介绍逆向工程:
逆向工程(reverse engineering),主要是通过一系列的技术、方法,将 已经成功编译好的程序的逻辑还原出来,从而了解该程序基本原理。了解了基本 原理后,其后续用途就比较多样化了,根据目的不同包括:
1:仿制或复现程序;
2:破解程序;
3:挖掘出程序的漏洞。

下面是一些学习过程,虽然不一定让你变成大佬,但肯定会让你受益匪浅。
一:C语言
开始的开始一定是C语言,C语言与汇编语言是逆向工程的两大基础。如果是学习其他方面的,或许python也不错,但要想学习逆向工程的,深厚的C语言功底必不可少。逆向工程中C和汇编就是好比是一颗树的根部和树干。没有扎实的基础是无法继续更加深入的学习的。
二:汇编语言
当你认为自己C语言学的还不错,比如了解各种指针(数组指针、函数指针、指针的指针等),了解栈及各种数据的存储之后,那么汇编是必不可少的。而汇编又包括16位、32位、64位的汇编以及arm指令集汇编。
16位汇编:虽然有点老,但依旧适合初学者学习,在此推荐王爽老师的《汇编语言》。
32位汇编:intel x86系列指令集的32位汇编现在也是用的较多的指令集,这里可以看看《基于Windows环境的汇编语言程序设计》,《windows环境下的32位汇编程序设计》,当然这里面也包括windows的api的详细介绍。
其实32位学完就已经入门了,汇编说到底现在大多不用了,可以了解,但没必要太过深入的学习,想要学的可以往下面深入。

64位汇编:现在绝大多数软件支持64位的指令集了,可以去看看64位汇编教材,32汇编与64位汇编的区别可以看看这篇文章:https://blog.csdn.net/qq_29343201/article/details/51278798。
arm指令集汇编:安卓逆向必备,大多数的移动产品cpu都是使用arm指令。

三:入门之后
下面继续深入学习window逆向工程,首先要对windows的api也就是系统函数要有详细的了解。那么《windows环境下的32位汇编程序设计》可以仔细看看、《windows程序设计》也可以了解了解。
windows的api有了一定了解之后,《逆向工程核心原理》、《加密与解密》是每一个成为逆向大神所必不可少的经历。与此同时,你可以熟练几个工具,实践一些crack me或者简单的ctf题,理论与实践相结合。
讲到这里,脱壳技术就必不可少了这里推荐:https://blog.csdn.net/lzyzuixin/article/details/4104334。
那么,学了这么多到底能干什么呢:软件破解与加密,游戏外挂以及反外挂,病毒的编写以及分析等,这些都是在windows平台下建立在逆向工程技术之上的应用。
除window逆向工程外,0day漏洞利用与防御也可以继续深入下去,掌握着未被公开的0day漏洞的黑客无疑是大佬级存在。这里推荐《0day安全》,看雪精品。
当然随着智能手机的高速发展,安卓逆向也越来越火,这个可以看看《Android软件安全与逆向分析》。在此就不做多的介绍了。

本篇文章就到这里了,作者才疏学浅,有错误之处,欢迎留言评论指正。

你可能感兴趣的:(reverse)