hu1y40's blog

书籍阅读
书籍阅读

加密与解密 第8章 上

Windows下的异常处理 0x01 异常处理的基本概念 中断(Interrupt)和异常(Exception)。中断是由外部硬件设备或者异步事件产生的,异常是由内部事件产生的。 1.1异常列表 异常是应用程序在执行过程中发现的不正常事件。由CPU引发的异常称为硬件异常,如访问无效的内存地址。由操作系统或者应用程序引发的异常成为软件异常。 常见异常如下: 除了CPU能捕获一个事件并引发一个硬件异常外,在代码中可以调用RaiseException函数主动引发一个软件异常。 void RaiseException( D…

2023年10月7日 0条评论 1277点热度 0人点赞 hu1y40 阅读全文
书籍阅读

加密与解密 第7章

Windows内核基础 0x01 内核基础理论 1.1 权限级别 系统内核层,又叫0环(Ring 0);应用层叫3环。实际上是CPU4个运行级别中的一个,运行级别由内到外R0~R3,运行权限依次降低。R0由最高执行权限。 AMD64CPU诞生之后,CPU与操作系统保持一致,只保留了R0,R3两个级别。 HAL是一个可加载的核心模块HAL.DLL,它为WindowsXP上的硬件提供低级接口。WindowsXP的执行体是NTOSKRNL.EXE的上层,内核是其下层。用户层可调用的函数接口在NTDLL.DLL中。 1.2…

2023年10月7日 0条评论 1442点热度 0人点赞 hu1y40 阅读全文
书籍阅读

加密与解密 第5章实验

0x01 非明码比较 实验环境 推荐使用的环境 备注 操作系统 Windows 10 编译器 编译选项 build版本 调试器 OD 实验过程 通过字符串的交叉引用定位到调用MessageBoxA函数之类,随后看其retn的地址时00401232 40134D是成功的MessageBox。 0040137E函数 伪代码翻译: username is char*; while(*username){ if *usernmae < 'A' call errorMessageBox if *username <…

2023年10月7日 0条评论 1277点热度 0人点赞 hu1y40 阅读全文
书籍阅读

加密与解密 第5章

演示版保护技术 0x01 序列号保护方式 1.1 序列号保护机制 1.1.1 将用户名等信息作为自变量,通过F变换之后得到注册码 公式 序列号=F(用户名) 将注册码和用户输入的注册码进行比较,由于负责验证注册码合法性的程序在用户机器上运行,所以用户可以用调试器分析函数F过程。并且计算出来的序列号是以明文形式出现在内存中。也可以通过修改比较指令来绕过注册码检查。 1.1.2通过注册码验证用户名的正确性 公式 用户名=F(序列号) 这里要求F是一个可逆变化。在软件检查注册码的时候,利用可你变换F^-1对用户输入的注册…

2023年10月7日 0条评论 1301点热度 0人点赞 hu1y40 阅读全文
书籍阅读

加密与解密 第4章实验

0x01 函数的识别 实验环境 推荐使用的环境 备注 操作系统 Windows 10 编译器 编译选项 build版本 调试器 OD 实验过程 如图所示,call指令将call指令的下一条指令地址压入栈中并且jmp到了00401010 随后retn会将执行结果同pop eip 0x02 函数的参数 实验环境 推荐使用的环境 备注 操作系统 Windows 10 编译器 编译选项 build版本 调试器 IDA 实验过程 如图所示,call指令将call指令的下一条指令地址压入栈中并且jmp到了00401010 随后…

2023年10月7日 0条评论 1324点热度 0人点赞 hu1y40 阅读全文
书籍阅读

加密与解密 第4章

逆向分析技术 0x01 32位软件分析技术 1.启动函数 Win32应用程序都需要实现WinMain函数 Windows程序的执行并非从WinMain开始,而是从编译器生成的一段代码开始 所有C/C++程序启动函数作用为: 检索指向新进程的命令行指针 检索指向新进程的环境变量指针 全局变量初始化 内存栈初始化 调用应用程序入口点函数main或WinMain 入口点函数返回时,调用C运行库的exit函数,进行一些清理 处理,最后调用ExitProcess退出 用户编写的入口点函数地址为:0x00401000 2.函数…

2023年10月7日 0条评论 958点热度 0人点赞 hu1y40 阅读全文
书籍阅读

加密与解密 第3章实验

0x01 IDA 实验环境 推荐使用的环境 备注 操作系统 Windows 10 编译器 编译选项 build版本 调试器 IDA 实验前准备 去下载书籍配套资料。 用IDA打开。 实验过程 结构体 shift + f9打开Structures窗口,随后按ins键添加一个结构体,D键添加输入(db,dw,dd),A键添加ASCII字符为结构体成员。 到数据处Alt+Q进行应用。 汇编代码区选中结构体数据按T 枚举类型 打开Enums窗口,随后按ins键添加一个枚举类型,N键枚举成员。 M键转换为枚举成员。 IDC解…

2023年10月7日 0条评论 1057点热度 0人点赞 hu1y40 阅读全文
书籍阅读

加密与解密 第2章实验

0x01 OD 实验环境 推荐使用的环境 备注 操作系统 Windows 10 编译器 编译选项 build版本 调试器 OD 1.10 实验前准备 去下载书籍配套资料。 用OD打开。 实验过程 由于要取文本框内的字符串,需要调用API函数GetDlgItemTextA,可以在左下方bp GetDlgItemTextA下断点,或者ctrl+g跳转到这个函数处下断点。 UINT GetDlgItemText( HWND hDlg, //对话框的句柄,即对话框的窗口句柄 int nIDDlgItem, //要获取文本的…

2023年10月7日 0条评论 989点热度 0人点赞 hu1y40 阅读全文
书籍阅读

加密与解密第1-3章

加密与解密 0x01 基础知识 1.1 什么是加密与解密 软件的加密与解密技术是矛与盾的关系。开发者为了维护自身的商业利益,不断寻求各种方式保护软件的版权,推迟软件被解密的时间;而解密者则受盗版所带来的高额利润的驱使或存粹出于个人兴趣,不断开发新的解密工具。 逆向工程(Reverse Engineering)是根据已有的产物结果,通过分析来推导出具体的实现方法。 逆向分析技术分为静态分析技术和动态分析技术。所谓静态分析是指根据反汇编得到的程序清单进行分析,通过包含提示信息的程序片段,分析得出其上下文实现的功能,从而…

2023年10月7日 0条评论 1073点热度 0人点赞 hu1y40 阅读全文
书籍阅读

汇编语言

汇编语言 基础知识 机器语言 cpu是一种微处理器,cpu及其控制的芯片,器件,设备组成了我们所说的pc机。 由于每一种微处理器的硬件设计不同,内部结构不同。所以需要不同的点评脉冲来控制。所以每一种微处理器都有自己的机器指令集,也就是机器语言。(这也就是我们自研发cpu的一个难点,这些硬件架构是有版权的) 汇编语言 汇编语言的主体是汇编指令,汇编指令和机器指令的 差别在于表示方法上,汇编指令是机器指令便于记忆的书写格式。 汇编语言的组成 汇编指令 伪指令(没对应的机器码,编译器执行 其他符号(编译器识别,没对应的机…

2023年10月7日 0条评论 1097点热度 0人点赞 hu1y40 阅读全文
12345…6

近期文章

  • 加密算法
  • 2023年度总结
  • RTSPServer StackOverflow Vulnerability
  • FUZZ 总览篇
  • MP4Box 无限循环漏洞

近期评论

  1. EALSEN 发表在 CVE-2023-40477 Winrar RCE漏洞分析
  2. hu1y40 发表在 钓鱼手法
  3. hu1y40 发表在 Cobalt Strike 初探
  4. hu1y40 发表在 CVE-2010-2553 MicrosoftWindows Cinepak 编码解码器解压缩漏洞
书签
  • neko的博客

COPYRIGHT © 2023 hu1y40's blog. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

鄂ICP备2021009673号-1