逆向工程

1. 对软件逆向分析,尝试写出此软件的源代码

2. 对软件的算法进行分析,从而知道算法的目的

破解:研究软件的机制后,通过修改内存或者程序文件,或写注册机并随机产生有效的序列号注册码,来突破其功能限制。

逆向调试:

1. 动态分析:使用动态调试工具加载程序并运行,运行同时可以随时暂停查看各种状态

2. 静态分析:病毒

工具:

1. 动态--

Ollydbg:32位的动态追踪工具,Ring3级的调试器。

OllylCe:爱好者修改后,本质OD。

IDA Pro:交互式反汇编工具。

x32dbg和x64dbg

栈:

是在内存中的一部分,两个性质:

1. 后进先出(先进后出)

2. 地址反向增长(栈底为大地址,栈顶为小地址)

起临时储存数据的作用

Push 压栈 将字推入栈

Pop  弹栈 将字弹出栈

注意:堆和栈都是内存上的某区域,但不相同。

一,内存分配区别

二,缓存方式区别

三,数据结构区别

汇编指令:

逆向工程_第1张图片

编程语言:

分类:机器语言,汇编语言,高级语言(通用)

有:win32汇编,易语言(普通/静态),Vb,C,C++,C#,Delphi

注:不同的编程语言程序的入口特征不同。

为什么要识别入口特征?

虽然有识别壳/语言的工具(PEID/EXE info PE),但有些新壳或其他壳是辨别不出的 。

你可能感兴趣的:(逆向工程)