
加密与解密笔记
shang_cm
一个希望世界和平喜欢碎碎念的家伙。。。
喜欢技术细节的家伙
展开
-
加密与解密(第四版)第11章 PE文件格式
PE文件的定义头文件:winnt.hEXE和DLL使用完全相同的PE格式,只是有一个字段标明这是一个EXE还是DLLPE文件框架结构图PE文件的基本概念PE文件将所有的文件和数据都合并在一个文件中,文件的各个部分被分割为不同的区块(Section,又称节)区块中包含代码和数据,各个区块按照页边界对其区块没有大小限制,是一个连续结构每个区块在内存中都具有各自的一套属性,例如该块是否包含代码,是否可读可写等基地址当PE文件通过PE装载器载入内存后,内存中的版本称为模块(Module)映射文原创 2020-12-12 15:46:39 · 1135 阅读 · 0 评论 -
加密与解密(第四版)第10章 VT技术
名词释义VT:Intel的硬件辅助虚拟化技术,为了提高VMware之类的软件虚拟化的性能VMM:虚拟机监控器VMX:虚拟机扩展Root模式:VMX中新的CPU模式,该模式仅供VMM使用Guest OS:子操作系统VT技术引入新的CPU层级Ring-1由于本章后续实在无法读懂,故暂且搁置,等VT方面基础知识补一补,再来拜读本章。...原创 2020-12-10 15:54:49 · 546 阅读 · 0 评论 -
加密与解密(第四版)第9章 win32调试API
调试相关函数ContinueDebugEvent:允许调试器恢复先前由于调试事件而挂起的线程DebugActiveProcess:允许调试器捆绑到一个正在允许的进程上DebugActiveProcessStop:允许调试器从一个正在运行的进程上卸载DebugBreak:在当前进程中产生一个断点异常,如果进程未处于调试状态,异常将被系统阶段,多数情况下会直接终止进程DebugBreakProcess:在指定的进程中产生一个断点异常FatalExit:将使调用进程强制退出,将控制权转交给原创 2020-12-10 15:08:12 · 382 阅读 · 0 评论 -
加密与解密(第四版)第8章 Windows下的异常处理
异常的基本概念中断:由外部硬件设备或异步事件产生异常:由内部事件产生,分为故障、陷阱、终止三类硬件异常:由CPU引发软件异常:由操作系统或应用程序引发常见异常列表:软件主动引发异常:调用RaiseException函数异常处理的基本过程Windows正常启动后,将运行在保护模式下,当有中断或异常发生时,CPU会根据产生的中断或异常类型,查找中断描述符表IDT中对应的处理函数IDT表IDT是一张位于物理内存中的线性表,共有256项32位模式中每个IDT项长度是8字节,64位模式中每个原创 2020-12-08 23:06:29 · 482 阅读 · 0 评论 -
加密与解密(第四版)第7章 Windows内核基础
内核理论基础1. 权限级别系统内核层:ring0,应用层:ring3CPU存在4个级别由高到底:R0(内核)、R1(驱动)、R2(驱动)、R3(应用)操作系统的设计者为了简单,并未使用R1,R2XP系统体系结构图:2. 内存空间布局x86系统内存布局图:x86系统上最大寻址空间为4GBWindows内存共包含4个部分:NULL空间,应用层空间,非法区域,内核空间x64系统内存布局图:x64系统上最大寻址空间理论上为16PB(2^64次方),但根本用不完Windows最多支持2原创 2020-12-08 16:06:00 · 512 阅读 · 0 评论 -
加密与解密(第四版)第6章 加密算法
单向散列算法(hash算法)常见散列算法:MD5、SHA、RIPE-MD、HAVAL、N-Hash等对称加密算法对称加密算法的加密密钥和解密密钥完全相同常见的对称分组加密算法:DES、IDEA、AES、BlowFish、TwoFish等流加密算法常见的流加密算法:RC4国密算法SM4(对称)、SM2(非对称)识别加密算法使用PEid的Krypto ANALyzer(Kanal)插件,可以识别一般的对称加密算法,IDEA无法识别通过每种加密算法所持有的加解密处理过程,例如是否为Feis原创 2020-12-08 14:06:34 · 352 阅读 · 0 评论 -
加密与解密(第四版)第5章演示版保护技术
序列号保护机制将用户名等信息作为自变量,通过函数F变换之后得到注册码序列号=F(用户名)序列号=F(用户名)序列号=F(用户名)破解方法:①利用调试器内存中直接获取到明文注册码②利用调试器提取出函数F,制作计算注册码程序③直接修改比较指令跳过注册码检查通过注册码验证用户名的正确性用户名=F−1(序列号)用户名=F^{-1}(序列号)用户名=F−1(序列号)破解方法:①通过F的逆变换,找出F,从而制作计算注册码程序②给定一个用户名,利用穷举法找出满足F的序列号③给定一个序列号,直接利原创 2020-12-08 13:38:44 · 768 阅读 · 0 评论 -
加密与解密(第四版)第4章 逆向分析技术(64位软件逆向技术)
寄存器x64寄存器x86寄存器的区别:x86下通用寄存器名称开头由E改为R,大小扩展到64位增加8个64位通用寄存器(R8-R15)增加8个128位的XMM寄存器函数x64环境下,某些汇编指令对栈顶的对齐值有要求(能够被16整除)逆向过程中,发现申请了栈空间但不使用的情况,可能是为了栈顶对齐如何定位main函数:当main函数执行完成时,C/C++运行库通常会调用exit函数退出进程。根据此特征,在入口代码中找到第一处call cs:exit代码,在该处上面的一个call调用的通常就是原创 2020-12-07 23:02:33 · 866 阅读 · 0 评论 -
加密与解密(第四版)第4章 逆向分析技术(32位软件逆向技术)
程序的启动Win32应用程序都需要实现WinMain函数Windows程序的执行并非从WinMain开始,而是从编译器生成的一段代码开始所有C/C++程序启动函数作用为:检索指向新进程的命令行指针检索指向新进程的环境变量指针全局变量初始化内存栈初始化调用应用程序入口点函数main或WinMain入口点函数返回时,调用C运行库的exit函数,进行一些清理处理,最后调用ExitProcess退出用户编写的入口点函数地址为:0x00401000函数函数包含:函数名、入口参数、返回值、函原创 2020-12-05 11:29:38 · 534 阅读 · 0 评论 -
加密与解密(第四版)第3章 静态分析技术
文件类型分析,判断PE文件使用何种语言编写,使用何种编译器编译,是否进行了加密,工具有:PEiD、Exeinfo PE等常用反汇编引擎:ODDisasm、BeaEngine、Udis86、Capstone、常用汇编引擎:ODAssembler、Keystone、AsmJit反汇编引擎比较:IDA Pro静态反汇编支持文件格式:PE、DOS、UNIX、Mac、Java、.NET等常见格式IDA按区块装载PE文件,如.text(代码块)、.data(数据块)、.rsrc(资源块)、.idata(原创 2020-12-04 17:19:30 · 407 阅读 · 0 评论 -
加密与解密(第四版)第2章 动态分析技术
OllyDbg调试器指定到光标所在的行停止:F4反汇编面板中对指令进行编辑快捷键:F2反汇编面板中对指令进行添加注释快捷键:;数据面板中想要显式指定地址的数据快捷键:Ctrl+GOllyDbg配置文件:olldbg.iniOllyDbg工程文件:UDD,保存了当前调试的状态、断点、注释等OllyDbg插件文件夹:plugin调试快捷键:INT3断点:采用INT 3(无条件中断指令)来替换断点的指令,当CPU执行INT 3时将产生一个中断来通知调试器DRx断点:又称硬件断点,利用CPU原创 2020-12-03 01:28:32 · 536 阅读 · 0 评论 -
加密与解密(第四版)第1章 基础知识
字符存储Unicode:使用2字节对文本进行编码,也称为宽字节小端序:高位字节放入低地址,低位字节放入高地址(x86架构CPU采用)大端序:低位字节放入低地址,高位字节放入高地址(网络协议传输采用)win16:用于16位的windows的API(Windows 1.0 ~ Windows 3.0)win32:用于32位的windows的API(Windows 9x/NT/2000/xp/7/10)windows内部全部使用Unicode字符集,当调用ANSI版本的API时,传入的ANSI字符集会原创 2020-12-01 03:29:39 · 553 阅读 · 0 评论