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



推荐阅读
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • 大学生自学复制假饭卡:2个月卖出3千张,获利10万元!背后的神器长啥样?
    山东淄博的一名在校大学生通过自学复制饭卡的技术,2个月内成功卖出3千张假饭卡,获利10万元。他使用了一种特殊的设备来复制饭卡,并通过网店销售给其他学生。该学生已被刑拘。此事被发现是因为学校食堂管理员发现了大量负数的情况,经警方调查后发现是这名学生所为。他制作的假饭卡与真卡几乎一模一样,售价仅为面值的40%。该学生一共复制了三千多张饭卡,并已全部卖完,获利十万余元。 ... [详细]
  • 本文介绍了Windows操作系统的版本及其特点,包括Windows 7系统的6个版本:Starter、Home Basic、Home Premium、Professional、Enterprise、Ultimate。Windows操作系统是微软公司研发的一套操作系统,具有人机操作性优异、支持的应用软件较多、对硬件支持良好等优点。Windows 7 Starter是功能最少的版本,缺乏Aero特效功能,没有64位支持,最初设计不能同时运行三个以上应用程序。 ... [详细]
  • Google在I/O开发者大会详细介绍Android N系统的更新和安全性提升
    Google在2016年的I/O开发者大会上详细介绍了Android N系统的更新和安全性提升。Android N系统在安全方面支持无缝升级更新和修补漏洞,引入了基于文件的数据加密系统和移动版本的Chrome浏览器可以识别恶意网站等新的安全机制。在性能方面,Android N内置了先进的图形处理系统Vulkan,加入了JIT编译器以提高安装效率和减少应用程序的占用空间。此外,Android N还具有自动关闭长时间未使用的后台应用程序来释放系统资源的机制。 ... [详细]
  • Win10 64位旗舰版的优势及特点详解
    本文详细介绍了Win10 64位旗舰版的优势及特点,包括更安全的源安装盘、永久激活方式、稳定性和硬件驱动的集成,以及人性化的维护工具和分区功能。通过阅读本文,您将了解到Win10 64位旗舰版相比其他版本的优势和特点。 ... [详细]
  • 集成电路企业在进行跨隔离网数据交换时面临着安全性问题,传统的数据交换方式存在安全性堪忧、效率低下等问题。本文以《Ftrans跨网文件安全交换系统》为例,介绍了如何通过丰富的审批流程来满足企业的合规要求,保障数据交换的安全性。 ... [详细]
  • 本文介绍了在win7电脑上进行文件加密的方法,包括利用NTFS的EFS进行加密和使用Win7旗舰版的Bitlocker加密整个分区。同时推荐了超级加密3000、宏杰加密工具和超级盘加密工具等多种加密软件,这些软件具有快速的加密速度和高强度的加密功能,可以防止文件的删除、复制和移动。此外,还强调了保持加密密钥的重要性,以免重装系统后无法打开已加密的文件。最后,提醒读者选择绿色软件,方便使用。 ... [详细]
  • 如何提高PHP编程技能及推荐高级教程
    本文介绍了如何提高PHP编程技能的方法,推荐了一些高级教程。学习任何一种编程语言都需要长期的坚持和不懈的努力,本文提醒读者要有足够的耐心和时间投入。通过实践操作学习,可以更好地理解和掌握PHP语言的特异性,特别是单引号和双引号的用法。同时,本文也指出了只走马观花看整体而不深入学习的学习方式无法真正掌握这门语言,建议读者要从整体来考虑局部,培养大局观。最后,本文提醒读者完成一个像模像样的网站需要付出更多的努力和实践。 ... [详细]
  • GreenDAO快速入门
    前言之前在自己做项目的时候,用到了GreenDAO数据库,其实对于数据库辅助工具库从OrmLite,到litePal再到GreenDAO,总是在不停的切换,但是没有真正去了解他们的 ... [详细]
  • macOS Big Sur全新设计大版本更新,10+个值得关注的新功能
    本文介绍了Apple发布的新一代操作系统macOS Big Sur,该系统采用全新的界面设计,包括图标、应用界面、程序坞和菜单栏等方面的变化。新系统还增加了通知中心、桌面小组件、强化的Safari浏览器以及隐私保护等多项功能。文章指出,macOS Big Sur的设计与iPadOS越来越接近,结合了去年iPadOS对鼠标的完善等功能。 ... [详细]
  • 恶意软件分析的最佳编程语言及其应用
    本文介绍了学习恶意软件分析和逆向工程领域时最适合的编程语言,并重点讨论了Python的优点。Python是一种解释型、多用途的语言,具有可读性高、可快速开发、易于学习的特点。作者分享了在本地恶意软件分析中使用Python的经验,包括快速复制恶意软件组件以更好地理解其工作。此外,作者还提到了Python的跨平台优势,使得在不同操作系统上运行代码变得更加方便。 ... [详细]
  • 超级简单加解密工具的方案和功能
    本文介绍了一个超级简单的加解密工具的方案和功能。该工具可以读取文件头,并根据特定长度进行加密,加密后将加密部分写入源文件。同时,该工具也支持解密操作。加密和解密过程是可逆的。本文还提到了一些相关的功能和使用方法,并给出了Python代码示例。 ... [详细]
  • 本文介绍了在交换型网络环境下使用嗅探器ARPSniffer的方法,包括检测嗅探环境、设置嗅探的网卡和启动自动路由功能等步骤。同时指出ARPSniffer也可以在非交换型网络环境下使用来嗅探各种网络信息。 ... [详细]
  • 2021最新总结网易/腾讯/CVTE/字节面经分享(附答案解析)
    本文分享作者在2021年面试网易、腾讯、CVTE和字节等大型互联网企业的经历和问题,包括稳定性设计、数据库优化、分布式锁的设计等内容。同时提供了大厂最新面试真题笔记,并附带答案解析。 ... [详细]
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社区 版权所有