作者:ayuanliang | 来源:互联网 | 2023-07-04 10:03
一、什么是加密解密软件逆向工程(ReverseEngineering): 是指根据已有的产物和结果,通过分析来推导出具体的实现方法。对软件来说,“可执行程序-
一、什么是加密解密
软件逆向工程(Reverse Engineering):
是指根据已有的产物和结果,通过分析来推导出具体的实现方法。
对软件来说,“可执行程序 --> 反编译 --->源代码”的过程就是逆向工程。
逆向工程的内容如下:
- 软件使用限制的去除和软件功能的添加。
- 软件源代码的再获得。
- 硬件的复制和模拟。
逆向分析技术(对软件进行分析的一般途径和策略):
- 通过软件使用说明和操作格式分析软件;
- 静态分析技术;
- 动态分析技术;
二、文本字符
ASCII 与Unicode字符集:
字符集是一个系统所支持的所有抽象字符的集合。字符是各种文字和符号的总称,包括各种文字、标点符号、图形符号、数字等等。
在早期,率先出现的是ASCII码,其采用了7bit进行存储编码数据,共128个编码。随着发展,由于计算机一个字节是8bit。所以,有些计算机厂家对ASCII进行了扩展,使其可以存储256个编码。再随着计算机的全球化,各国之间要想进行计算机方面的交流,必须要应对国家语言字符的不同。因此,Unicode诞生了。Unicode采用了16bit进行存储,即2字节,其也被称为宽字符集。由于ASCII诞生得比Unicode早,所以,Unicode要对ASCII进行兼容。所以,所有的7位ASCII码都被扩充成了16位,可以想到,其高位扩充的是0。
字节存储顺序:
- 大端序(Big-endian):高位字节存入低地址,低位字节存入高地址。
- 小端序(Little-endian):低位字节存入低地址,高位字节存入高地址。
一般来说,x86系列的CPU都是Little-endian字节序,PowerPC通常是Big-endian字节序。
三、Windows操作系统
Win32 API函数
API : Application Programming Interface . 即应用程序编程接口。
在Windows操作系统开始占有主导地位的时候,人们想要去开发Windows上面的应用程序。为了满足人们的需求,微软把应用程序运行时所需要的窗口管理、图形设备接口、内存管理等功能封装成一个个函数,即API函数,可通过调用这些函数进行应用程序的操作和开发。随着Windows版本的不断更新,Win API函数不断增加。与此同时,要对旧版本的API函数进行兼容。
Windows运转的核心是动态链接。
在Win32API函数字符集中,“A”表示ANSI,即前面说的ASCII扩展,“W”表示Widechars(即Unicode)。前者是单字节方式,后者是宽字节方式。因此,每个以字符串为参数的Win32函数在操作系统中都有这两种方式的版本。
WOW64:
WOW64(Windows-on-Windows 64-bit)是64位Windows操作系统的子系统,可以使大多数32位应用程序在不进行修改的情况下运行在64位操作系统上。
- 64位操作系统应有的系统文件存放在\Windows\System32文件夹下;
- 32位操作系统应有的系统文件存放在\Windows\SysWOW64文件夹下;
Windows消息机制:
(直接截图了,因为我觉得每句话都是重点^_^)
虚拟内存:
平坦内存模式:
即把全部系统内存表示为连续的地址空间。在这种模式下,应用程序看到的内存是一个单独的连续地址空间。CPU可以直接(且线性)寻址所有可利用的内存位置,无需诉诸任何内存分段或分页机制。