热门标签 | HotTags
当前位置:  开发笔记 > 程序员 > 正文

加密与解密之基础知识

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



推荐阅读
  • 在Java开发中,保护代码安全是一个重要的课题。由于Java字节码容易被反编译,因此使用代码混淆工具如ProGuard变得尤为重要。本文将详细介绍如何使用ProGuard进行代码混淆,以及其基本原理和常见问题。 ... [详细]
  • AcetoneISO:Ubuntu Linux下的全能虚拟光驱工具
    AcetoneISO 是一款功能强大的虚拟光驱软件,适用于 Linux 和 Mac 系统。它支持多种映像文件格式的挂载和转换,并提供丰富的文件管理功能。 ... [详细]
  • 本文介绍了多种方法来恢复或重置 Windows XP 系统中的管理员密码,包括使用密码重设盘、借助其他管理员账户以及利用第三方软件等。 ... [详细]
  • ipsec 加密流程(二):ipsec初始化操作
    《openswan》专栏系列文章主要是记录openswan源码学习过程中的笔记。Author:叨陪鲤Email:vip_13031075266163.comDate:2020.1 ... [详细]
  • 阿里云 Aliplayer高级功能介绍(八):安全播放
    如何保障视频内容的安全,不被盗链、非法下载和传播,阿里云视频点播已经有一套完善的机 ... [详细]
  • 本题涉及一种由Chip和Dale设计的文本加密方法。该方法通过预先约定的矩阵行数和列数,将字符转换为特定的二进制形式,并以螺旋方式填充矩阵。最终将矩阵中的二进制数连接成一个字符串,实现加密。 ... [详细]
  • C#中使用Dotfuscator Pro进行代码混淆
    由于Visual Studio自带的混淆工具功能有限,本文将介绍如何使用Dotfuscator Pro进行更高级的代码混淆。包括设置字符串加密、添加可执行文件和动态链接库、调整混淆选项等步骤。 ... [详细]
  • vsftpd配置(虚拟用户、匿名用户登录)
    一、ftp服务搭建(一)概述1.ftp连接及传输模式(1)控制连接TCP21,用于发送FTP命令信息 ... [详细]
  • 本文整理了一份基础的嵌入式Linux工程师笔试题,涵盖填空题、编程题和简答题,旨在帮助考生更好地准备考试。 ... [详细]
  • 直播带货系统中的推流技术详解
    本文介绍了RTMP(实时消息传输协议)及其在直播带货系统中的应用,并详细探讨了带货直播系统的连麦方案,包括服务端合流和客户端合流的优势与劣势。 ... [详细]
  • 小程序的授权和登陆
    小程序的授权和登陆 ... [详细]
  • 本文详细介绍如何使用Netzob工具逆向未知通信协议,涵盖从基本安装到高级模糊测试的全过程。通过实例演示,帮助读者掌握Netzob的核心功能。 ... [详细]
  • Cookie学习小结
    Cookie学习小结 ... [详细]
  • 兆芯X86 CPU架构的演进与现状(国产CPU系列)
    本文详细介绍了兆芯X86 CPU架构的发展历程,从公司成立背景到关键技术授权,再到具体芯片架构的演进,全面解析了兆芯在国产CPU领域的贡献与挑战。 ... [详细]
  • 高端存储技术演进与趋势
    本文探讨了高端存储技术的发展趋势,包括松耦合架构、虚拟化、高性能、高安全性和智能化等方面。同时,分析了全闪存阵列和中端存储集群对高端存储市场的冲击,以及高端存储在不同应用场景中的发展趋势。 ... [详细]
author-avatar
ayuanliang
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有