ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

逆向工程学习记录

2022-07-17 02:00:09  阅读:218  来源: 互联网

标签:逆向 记录 二进制 编程 推演 学习 调试器 底层


 


首先逆向是个困难的工作,需要理论,也需要实践。

理论方面,必须清楚的认识逆向的本质是什么。放到更大的环境下来看,逆向从来不是最终目的,最终目的一般是要实现某个东西。

广义上,逆向不仅仅是调试二进制可执行格式,反汇编,破解。逆向是心理模型的建立过程,以及模型实现的底层细节的定位过程。

从理论上看,你为了理解系统,你读代码,无论是源码还是汇编,甚至二进制机械指令,都是一个逆向过程,其结果就是建立了一个模糊的心理模型,用于理解系统的运作过程,然而系统代码是复杂的,庞大的,只凭脑力难以定位底层细节,需要借助工具,如反汇编器,调试器,模拟器。有人认为学好了汇编语言,就相当于可以阅读任何闭源软件了,这显然是错误的思想,没有理论上的清晰认识,容易进入这个思维误区,给定一个逆向的目标,不去搜索背景信息,已有成果,而是一头扎进汇编独自探索,是愚蠢的行为。因为人类的临时记忆是非常可怜的,靠脑力仅能推演很短的代码量,通过纯汇编去推演高层逻辑,是人脑不可承受的,即便理论是可能的,但时间也是不可承受的。所以推演必须要让cpu来执行,人脑只负责在特定的条件下让系统停下来,读取推演的结果。于是就有了调试器。用了调试器,人脑只需判断并控制条件逼近底层细节,具体的就是操作软件,并结合条件断点来定位底层代码,这样在效率上比人肉调试器就有了质的提高。

 针对如何学好逆向可以有以下几个方面

1、具备基本的编程能力。必须对高级语言对应的汇编语言实现要掌握,比如函数工作的原理,几种调用约定、参数传递方式以及返回值等都必须掌握

2、对逆向分析工具的熟练使用,我们平时面对的是二进制可执行程序,要做外挂我们首先的分析目标程序,因此对常用的调试工具windbg、ollydbg、静态分析工具ida一定要熟练使用。

3、掌握外壳原理和技巧,熟悉常见的加解密算法、反调试技巧。(参看《加密与解密》这本书)

4、掌握Windows编程、Linux编程

标签:逆向,记录,二进制,编程,推演,学习,调试器,底层
来源: https://www.cnblogs.com/zmq17/p/16485786.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有