逆向工程第一课

1.逆向工程的概述

软件逆向工程(Software Reverse Engineering)又称软件反向工程,是指从可运行的程序系统出发,运用解密、反汇编、系统分析、程序理解等多种计算机技术,对软件的结构、流程、算法、代码等进行逆向拆解和分析,推导出软件产品的源代码、设计原理、结构、算法、处理过程、运行方法及相关文档等。通常,人们把对软件进行反向分析的整个过程统称为软件逆向工程,把在这个过程中所采用的技术都统称为软件逆向工程技术。逆向工程是基于底层的学习,直接面向各种堆栈内存及寄存器的

2.逆向工程的发展方向以及前景

初期会有一些枯燥乏味,当大家涉及到实战的时候就会发现这门学科的乐趣,逆向工程后续可以延伸出非常多的领域,win逆向,linux逆向,程序破解,样本分析,病毒分析,漏洞挖掘、Iot测试、工业控制,智能汽车,智能家居等等,逆向的就业情况没有Web方面那么好,但是薪资还是很nice的,就业依旧比开发情况要好

3.逆向工程该学些什么

基础:C,C++,数据结构,Python(用于写脚本),汇编语言

Tips: 汇编语言(Assembly Language)是任何一种用于电子计算机微处理器微控制器或其他可编程器件的低级语言,亦称为符号语言。在汇编语言中,用助记符代替机器指令操作码,用地址符号或标号代替指令或操作数的地址。在不同的设备中,汇编语言对应着不同的机器语言指令集,通过汇编过程转换成机器指令。特定的汇编语言和特定的机器语言指令集是一一对应的,不同平台之间不可直接移植

 

学习路线最好是,学习好C,数据结构,C++以及学习python(学完基本的数据结构后即可,主要是自己写脚本),学习汇编语句(不同掌握程度决定的将来的就业方向)

 软件调试的主要方法 动态分析技术和静态分析技术

动态分析技术指的是使用调试工具加载程序并运行,随着程序运行,调试者可以随时中断目标的指令流程,以便观察相关计算的结果和当前的设备情况。

静态分析技术是相对于动态分析而言的。由于在实际分析中,很多场合不方便运行目标(例如病毒程序,设备不兼容,软件的单独某一模块)。那么这个时候静态分析技术就该上场了!

动态分析

 静态分析

反汇编:

0 判断是否冷却

1 如果不是跳转到4

2 已冷却时间增加

3 跳转到0

4 设置冷却结束

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值