加密与解密之基础知识

一、什么是加密解密

软件逆向工程(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可以直接(且线性)寻址所有可利用的内存位置,无需诉诸任何内存分段或分页机制。

posted @ 2022-03-13 21:58  tolele  阅读(66)  评论(0编辑  收藏  举报