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

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

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

逆向调试:

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

2. 静态分析:病毒

工具:

1. 动态--

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

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

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

x32dbg和x64dbg

栈:

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

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

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

起临时储存数据的作用

Push 压栈 将字推入栈

Pop  弹栈 将字弹出栈

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

一,内存分配区别

二,缓存方式区别

三,数据结构区别

汇编指令:

编程语言:

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

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

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

为什么要识别入口特征?

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

技术
©2020 ioDraw All rights reserved
日经:索尼和铠侠正积极申请华为供货许可JS基础重点知识实验总结(全)携程2019校招 LRU CacheJava期末复习题浙大数据结构期中考试试题华为鸿蒙系统能否与安卓、苹果分庭抗礼?面试题:手写单链表(包含反转链表)Pymongo index索引相关操作总结spark.sql.shuffle.partitions 和 spark.default.parallelism 的区别Java基础学习总结(162)——如何保证线程安全?