Windows逆向(一)入门

本文分享Windows逆向学习的经历,强调基础知识的重要性,包括编程语言、计算机原理、汇编语言和Windows系统原理。介绍学习路线、工具书选择(如《逆向工程核心原理》和相关汇编教材)、实战案例(CrackMe)以及分析方法(OLLYDBG和IDAPro)。
摘要由CSDN通过智能技术生成

此系列文章用于记录Windows逆向学习系列的要点和学习经历。对其过程进行整理,一则对学习过程进行记录和总结回顾,二则希望有幸能为其他学习者提供经验和借鉴。

0x01 前言

逆向学习作为一门相对门槛较高的技术,其学习路线是较为漫长的,相对来说,拥有某种语言熟练的编码能力,了解计算机原理,且对汇编语言较为熟练的人可以更简单的入门此内容。

如果毫无编程经验,并不建议以学习应用为目标来接触此内容,我的理由是:逆向在实际应用过程中,需要编程经验来辅助,相应的,他也会提升你对编程环境的底层认识,使你更容易在编码过程中对代码进行性能优化;同时,逆向在实际工作工程中的应用往往需要与其他编码工作结合才能有所产出。当然,若只是出于兴趣了解,以上内容自然是无关紧要了。

本人学习的目的是为了从底层了解更多编译与硬件相关的技术,提升代码优化的能力。同时,对汇编进行更牢固的掌握,在WIN32逆向过程中也可以提升对windows系统核心原理的理解。

0x02 学习准备

我选择的工具书是较为经典的《逆向工程核心原理》作为学习路线的指引书籍,同时使用《汇编语言第3版》与《Windows下的32位汇编言程序设计》作为汇编辅助参考书进行学习。

学习过程中,使用“吾爱破解”网站中的《160个CrackMe》和www.tuts4you.com中的CrackMe作为实际逆向分析用例。

对于书中的例子,源码部分学习时,使用Win10+VS2019进行编译和测试,通常编译32位进行学习,同时也编译64位比较其差异,为后续进阶学习64位做准备。

逆向分析一般分为静态和动态分析,该系列中先使用OLLYDBG动态分析工具进行学习,后续再研究IDA Pro进行静态逆向分析的过程。

0x03 知识准备

在进入学习之前,你应该检查自己具备的基础知识:

1.Windows程序运行过程(程序如何加载到内存,内存地址是如何划分)

2.什么是程序模块,动态库

3.什么是API

4.什么是程序的堆栈调用

以上都是OLLYDBG分析一个程序的相关界面和知识点,如果你不想打开软件后一头雾水,请务必对以上知识进行了解。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值