吾爱汇编

 找回密码
 立即注册

QQ登录

绑定QQ避免忘记帐号

查看: 3158|回复: 96

[原创逆向图文] 《加密与解密》(第四版)第一章笔记

  [复制链接]
二进制研究猿 发表于 2022-3-5 20:07 | 显示全部楼层 |阅读模式

                          第一章《基础知识》

导读什么是API?什么是Unicode?什么是小端序?只有了解这些基础知识,在加密与解密的过程中才能有的放矢地处理各种问题。本章将系统地解答这些问题。


1.1 什么是加密与解密
1.1.1 软件的加密与解密
一款优秀的软件,其技术秘密往往成为他人窃取的重点。如果一种保护技术的强度能达到让解密者在软件的生命周期内都无法将其完全逆向的成度,这种保护技术就是成功的。
系统底层知识是大型软件的基础,如果这个基础没有打牢,贸然向高层设计领域进军,那么构造的软件“大厦”将会是何种质量也就可想而知了。
1.1.2 软件逆向工程
逆向工程是根据已有的产物和结果,通过分析来推导出具体的实现方法。
对软件来说“可执行程序——>反编译——>源代码”的过程就是逆向工程。
逆向工程的内容可以分为三类:软件使用限制的去除或者软件功能的添加;软件源代码的再获得;硬件的复制和模拟。
一个逆向工程大师应该具备的特征:永远保持好奇心,崇尚自由;勤奋与毅力;精通至少一门编程语言;扎实的汇编功底和系统编程知识。
逆向工程是一门优雅的艺术,而不是一些低层次者手中粗陋的工具;逆向工程的目的是学习与再利用;逆向工程的精神就是“自由”。
1.1.3 逆向分析技术
通过软件使用说明和操作格式分析软件(使用软件,阅读软件说明书);
静待分析技术(IDA)(通过静态分析可以了解各个模块的功能,以及整个软件的编程思路);
动态分析技术(OllyDbg、WinDbg、X64/32Dbg)(静态分析很难获得中间结果;软件前一模块可能会对后一模块做一些初始化工作;有的加密程序在运行时会采用逐块解密、逐块执行的方法)
如何有效地进行动态跟踪:对软件进行粗跟踪(跳过CALL、REP、LOOP等指令);对关键部分进行细跟踪(在每次跟踪时把比较关键的中间结果或指令地址记录下来,会对下一次分析有很大的帮助)
IDA和OD的区别:
(1)IDA是静态调试,有结构图,并且可以自动生成伪代码;OD是动态调试。
(2)加载可执行程序时,OD是把整个空间都加载起来,而IDA只是加载了exe文件,它所关联的dll并没有加载
(3)https://blog.csdn.net/feixiaoxing/article/details/105351395
1.2 文本字符
1.2.1 ASCIIUnicode字符集
现代的ASCII是一个7位的编码标准,编码的取值范围是00h-7Fh,共128个字符。
由于计算机通常用字节这个8位的存储单位来信息交换,因此不同的计算机厂商对ASCII进行了扩充,增加了128个附加字符,他们的值在127以上是不统一的取值范围变成了00h-FFh,例如ANSI、Symbol、OEM等字符集。其中ANSI是系统预设的标准文字存储格式。
扩展ASCII码扩展ASCII 字符是从128 到255(0x80-0xff)的字符。许多基于x86的系统都支持使用扩展(或“高”)ASCII。它将每个字符的第8 位用于确定附加的128 个特殊符号字符、外来语字母和图形符号。针对扩展的ASCII码,不同的国家有不同的字符集,所以它并不是国际标准。
Unicode是ASCII字符编码的一个扩展,各种编码:https://www.cnblogs.com/findumars/p/5006175.html
Unicode、UTF-8、UTF-16:https://www.cnblogs.com/kingcat/archive/2012/10/16/2726334.html
1.2.2 字节存储顺序
大端存储:高位字节存入低地址,低位字节存入高地址(看起来方便)
小端存储:高位字节存入高地址,低位字节存入低地址一般来说,X86系列CPU都是小端存储,PowerPC通常是大端存储。
因为网络协议也都是采用大端存储方式来传输数据的,所以有时也把大端存储方式称为网络字节序
1.3 Windows操作系统
1.3.1 Win32 API函数
API的英文全称为“Application Programming Interface”(应用程序编程接口)Windows运转的核心是动态链接。
Windows提供了丰富的应用程序可利用的函数调用,这些函数采用动态链接库(DLL)实现在早期,Windows的主要部分只需要在3个动态链接库中实现,他们分别代表Windows的3个主要子系统,叫作Kernel(操作系统核心功能服务)、User(负责处理用户接口)、GDI(图形设备接口)虽然Win API是一个基于C语言的接口,但是Win API中的函数可以由用不同语言编写的程序调用。
Win32 API函数字符集中,“A”表示ANSI(单字节),“W”表示Widechars(即Unicode,宽字节)。每个以字符串为参数的Win32函数在操作系统中都有这两种方式的版本。
Win32 API参考文档:http://www.yfvb.com/help/win32sdk/
常用的Win32函数:https://developer.aliyun.com/article/226746
1.3.2 WOW64
WOW64(Windows-On-Windows 64bit)是X64 Windows操作系统的一个子系统,为32位应用程序提供运行环境。类似的还有WOW32子系统,负责在32位Windows系统上运行16位应用程序。
Wow64不支持16位应用程序的执行(32位Windows支持),也不支持加载32位内核模式的设备驱动程序。Wow64进程只能加载32位dll,不能加载原生的64位dll。类似的,原生的64位进程不能加载32位的DLL。唯一列外的是,在跨越体系结构差异时,能够加载仅包含资源或数据的Dll,这是允许的,因为这些Dll只包含数据,不包含代码。
谈谈WOW64:https://www.cnblogs.com/lanrenxinxin/p/4977488.html
1.3.3 Windows消息机制
Windows是一个消息驱动式系统。Windows系统中有两种消息队列:一种是系统消息队列;另一种是应用程序消息队列
深入理解Windows消息机制https://blog.csdn.net/liulianglin/article/details/14449577
Windows平台下开发程序的三种方式:SDK开发、MFC开发、托管方式开发
消息的来源:由操作系统产生、用户触发事件转换、由另一个消息产生
SDK方式下的程序实现过程:WinMain——>MSG结构体——>注册窗口——>创建窗口——>显示窗口——>刷新窗口——>消息循环——>WindowsProc
Windows消息机制基础:https://www.bilibili.com/video/BV1CU4y1t7E6
1.3.4 虚拟内存
虚拟内存并不是真正的内存,它通过映射的方法使可用虚拟地址达到4GB,每个应用程序可以获得2GB的虚拟内存,剩下的2GB留给操作系统自用。
虚拟内存原理:https://www.bilibili.com/video/BV1yW411S7UL应用程序不会直接访问物理地址使用虚拟内存的好处:简化了内存管理,弥补了物理内存的不足,可以防止多任务环境下应用程序之间的冲突。

评分

参与人数 37HB +34 THX +13 收起 理由
花盗睡鼠 + 2 + 1 [吾爱汇编论坛52HB.COM]-学破解防破解,知进攻懂防守!
消逝的过去 + 1
虚心学习 + 1 [吾爱汇编论坛52HB.COM]-软件反汇编逆向分析,软件安全必不可少!
霍华德 + 1
一路走来不容易 + 1
459121520 + 1
WolfKing + 1 + 1 [吾爱汇编论坛52HB.COM]-软件反汇编逆向分析,软件安全必不可少!
爱汇编爱汇编 + 1 [吾爱汇编论坛52HB.COM]-吃水不忘打井人,给个评分懂感恩!
冷亦飞 + 1
l278785481 + 1
车太震 + 1 [吾爱汇编论坛52HB.COM]-软件反汇编逆向分析,软件安全必不可少!
小菜虫 + 1 [吾爱汇编论坛52HB.COM]-感谢楼主热心分享,小小评分不成敬意!
挖藕 + 1
侠客行 + 1
fengyuan0128 + 1
玖霊後 + 1
红豆 + 1 [吾爱汇编论坛52HB.COM]-软件反汇编逆向分析,软件安全必不可少!
zyyujq + 1
kway + 1 [吾爱汇编论坛52HB.COM]-吃水不忘打井人,给个评分懂感恩!
吾爱笑 + 1 [吾爱汇编论坛52HB.COM]-软件反汇编逆向分析,软件安全必不可少!
DeeDarrick + 2 + 1 <span class="text2Link">[吾爱汇编论坛 <a target="_blank">52HB.COM</a>]- 学破解防破解,知进攻懂防守!</span>.
罗密欧 + 2
weiran324 + 1 [吾爱汇编论坛52HB.COM]-吃水不忘打井人,给个评分懂感恩!
szukodf + 1 [吾爱汇编论坛52HB.COM]-软件反汇编逆向分析,软件安全必不可少!
liugu0hai + 1 [吾爱汇编论坛52HB.COM]-吃水不忘打井人,给个评分懂感恩!
ldljlzw + 1
河图 + 1 [吾爱汇编论坛52HB.COM]-学破解防破解,知进攻懂防守!
longge188 + 1 [吾爱汇编论坛52HB.COM]-学破解防破解,知进攻懂防守!
ch_1943 + 1
king51999 + 1 [吾爱汇编论坛52HB.COM]-吃水不忘打井人,给个评分懂感恩!
zxjzzh + 2 [吾爱汇编论坛52HB.COM]-软件反汇编逆向分析,软件安全必不可少!
上帝的恩赐 + 2 [吾爱汇编论坛52HB.COM]-学破解防破解,知进攻懂防守!
temp + 1 + 1
1300841139 + 1
山野屌丝 + 1
我是好人 + 1 [吾爱汇编论坛52HB.COM]-学破解防破解,知进攻懂防守!
zwj00544 + 1 + 1

查看全部评分

吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
oQP27 发表于 2022-3-5 20:07 | 显示全部楼层
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
NHFXy56 发表于 2022-3-5 20:13 | 显示全部楼层

感谢楼主
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
eklSC40 发表于 2022-3-5 20:19 | 显示全部楼层
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
TOcV 发表于 2022-3-5 20:37 | 显示全部楼层

感谢楼主
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
CQPyO618 发表于 2022-3-5 20:52 | 显示全部楼层
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
GRdlFyoXp 发表于 2022-3-5 20:54 | 显示全部楼层

谢谢分享
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
LQO92613 发表于 2022-3-5 21:03 | 显示全部楼层

感谢楼主
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
wPjJ 发表于 2022-3-5 21:38 | 显示全部楼层

谢谢分享
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
SfbyBhZ 发表于 2022-3-5 21:38 | 显示全部楼层

谢谢分享
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

警告:本站严惩灌水回复,尊重自己从尊重他人开始!

1层
2层
3层
4层
5层
6层
7层
8层
9层
10层

免责声明

吾爱汇编(www.52hb.com)所讨论的技术及相关工具仅限用于研究学习,皆在提高软件产品的安全性,严禁用于不良动机。任何个人、团体、组织不得将其用于非法目的,否则,一切后果自行承担。吾爱汇编不承担任何因为技术滥用所产生的连带责任。吾爱汇编内容源于网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除。如有侵权请邮件或微信与我们联系处理。

站长邮箱:SharkHeng@sina.com
站长QQ:1140549900


QQ|RSS|手机版|小黑屋|帮助|吾爱汇编 ( 京公网安备11011502005403号 , 京ICP备20003498号-6 )|网站地图

Powered by Discuz!

吾爱汇编 www.52hb.com

快速回复 返回顶部 返回列表