热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

0基础自学破解长达1天后的经验总结

在没接触破解之前,觉得这玩意太神秘、遥不可及了。在怀着畏惧的内心,真正耐心的接触破解长达1天后,才发现,简单的破解是那么的容

在没接触破解之前,觉得这玩意太神秘、遥不可及了。在怀着畏惧的内心,真正耐心的接触 破解 长达1天后,才发现,简单的破解是那么的容易。在此来略微总结下这1天的学习后,自己吸取领悟的一些原理。
1.        壳、调试工具OD以及简单的汇编知识
1.1        壳。
破解一般有几个步骤,加载被加壳的软件----观察壳的入口点特征 以及分析 壳的类型 和
壳的型号(即出厂厂家) ------寻找入口点 ----脱壳 ------修复(这是门学问) ------EP断优化 -----运行软件后加载OD,这时候观察是否已经完整脱壳---OVER!!!
*壳一般分两种,国产和进口的!!!当然,另一种分法是 压缩壳和加密壳!!!压缩壳的原理和鉴别是非常简单的。
1.1.1 如何鉴别壳是压缩壳?
方法一:当软件加载OD后,OD会有提示:此乃压缩壳! 谓之方法一!
方法二:顾名思义,压缩壳就是压压压缩缩缩,压缩壳的入口一般会有pushad、pushaf之类的指令,这其实是将入口地址的一些相关信息压进了堆栈,最后通过popad、popaf之类的指令再将它们弹出堆栈,popad第一个返回的EAX中存放的就是软件的真正的入口地址。
1.1.2 如何鉴别壳是加密壳?
方法一:当软件加载OD后,OD会有提示:此乃加密壳! 谓之方法一!
方法二:骚泪,这方面的内容还没有接触过,不敢妄谈。。。

1.2        调试工具OD介绍。
1.2.1窗口介绍:常规的OD一般有5个窗口,左上角是反汇编窗口,右上角是寄存器窗口,左下角是数据窗口,右下角是堆栈窗口,还有一个信息提示窗口是夹在在 反汇编和数据窗口的中间。
1.2.2菜单介绍: 这没什么好介绍的。。。真的。。。(好吧,主要是东西太多了,要写个半天。)
1.2.3 快捷键图标介绍: 从左到右依次为:打开、重载、关闭、F9运行程序、暂停程序、步入、步过、跟入、跟过、执行到返回(CTRL+F9) 以及 转到反汇编窗口的地址(这个没用过)。

接着往右数依次为:显示记录窗口、*模块(dll)窗口、*内存窗口、*线程窗口、Windows窗口、句柄窗口、*反汇编窗口、补丁窗口、*堆栈窗口、*断点窗口、显示参考窗口 以及 其他。(*代表比较重要。)

1.2.4 寄存器窗口详解。
我们选择的寄存器是FPU。
前8个寄存器都是32位寄存器。分别为:EAX、ECX、EDX、EBX、ESP、EBP、ESI、EDI
EAX和EDX一般作为默认返回值来使用。当然,他们也拥有所有其他通用寄存器同样的功能。ESP是指针寄存器,永远指向栈顶,EBP同样是指针寄存器,他可以自由的访问堆栈段。
EIP寄存器记录当前的指令所在的虚拟内存的位置;
CPAZSTDO是8个标志位寄存器,标志位是非常重要的,虽然常常被我们冷落。他们一般记录的是当前的汇编指令操作后的一些重要信息。比如add指令会至少返回一个cf和of值,用来表明是否进位或者溢出。条件跳转指令,CPU都是根据标志位来决定是否执行跳转。
St(0)~st(7)是8个浮点寄存器。浮点寄存器,顾名思义,是操作浮点的寄存器。所有操作浮点的相关指令,都会用到浮点寄存器。
DR(0)~DR(7)寄存器,未在FPU界面显示,其实他们是调试寄存器。

 

 

1.3        简单的汇编知识。
随便找点书看看就行,这玩意还是很简单的。 

2.        破解方案
破解的方法,按照我看了一些相关资料,整理出以下6种方法:
0.1        单步跟踪之霸王硬上弓法
0.2        堆栈指针观察法
0.3        内存断点法
0.4        Ctrl+F 搜索法
0.5        模拟跟踪法
0.6        最后一次异常法
这些还是比较简单的。不详细说了。

3.        CALL和retn的本质。
3.1 call的本质:
0.1.向堆栈中压入下一行程序的地址;
0.2.JMP到call的子程序地址处。
3.2 Retn的本质:
0.1.将当前的ESP中指向的地址出栈;
0.2.JMP到这个地址。

4.        hr esp-4
其实就是硬件访问,访问啥?访问谁访问了入口地址EAX。为什么要-4,因为-4处存放的就是EAX。这涉及到压栈顺序了,不多说 ,哈哈!!!!

5.        内存断点、硬件断点 的区别。
区别就是,内存断点是调用DR(0)~7调试寄存器。而硬断是直接把改地址的指令修改为int 3或者说是CC断点,这也是为什么每次硬断后需要删除硬断的原因。
因为代码都被你改了。。。。

简单就说那么多,要吃饭捏!!!
最后想说的是,学破解是门耐心活,不要急,急不来的。1天掌握破解,虽然说是有可能的,但对大多数人来说还是有一点难度的。

 

注意:请不要用于非法用途,谢谢。


推荐阅读
  • 本文讨论了在Windows 8上安装gvim中插件时出现的错误加载问题。作者将EasyMotion插件放在了正确的位置,但加载时却出现了错误。作者提供了下载链接和之前放置插件的位置,并列出了出现的错误信息。 ... [详细]
  • 本文介绍了C#中生成随机数的三种方法,并分析了其中存在的问题。首先介绍了使用Random类生成随机数的默认方法,但在高并发情况下可能会出现重复的情况。接着通过循环生成了一系列随机数,进一步突显了这个问题。文章指出,随机数生成在任何编程语言中都是必备的功能,但Random类生成的随机数并不可靠。最后,提出了需要寻找其他可靠的随机数生成方法的建议。 ... [详细]
  • Redis底层数据结构之压缩列表的介绍及实现原理
    本文介绍了Redis底层数据结构之压缩列表的概念、实现原理以及使用场景。压缩列表是Redis为了节约内存而开发的一种顺序数据结构,由特殊编码的连续内存块组成。文章详细解释了压缩列表的构成和各个属性的含义,以及如何通过指针来计算表尾节点的地址。压缩列表适用于列表键和哈希键中只包含少量小整数值和短字符串的情况。通过使用压缩列表,可以有效减少内存占用,提升Redis的性能。 ... [详细]
  • 本文讨论了在VMWARE5.1的虚拟服务器Windows Server 2008R2上安装oracle 10g客户端时出现的问题,并提供了解决方法。错误日志显示了异常访问违例,通过分析日志中的问题帧,找到了解决问题的线索。文章详细介绍了解决方法,帮助读者顺利安装oracle 10g客户端。 ... [详细]
  • Windows7企业版怎样存储安全新功能详解
    本文介绍了电脑公司发布的GHOST WIN7 SP1 X64 通用特别版 V2019.12,软件大小为5.71 GB,支持简体中文,属于国产软件,免费使用。文章还提到了用户评分和软件分类为Win7系统,运行环境为Windows。同时,文章还介绍了平台检测结果,无插件,通过了360、腾讯、金山和瑞星的检测。此外,文章还提到了本地下载文件大小为5.71 GB,需要先下载高速下载器才能进行高速下载。最后,文章详细解释了Windows7企业版的存储安全新功能。 ... [详细]
  • Mono为何能跨平台
    概念JIT编译(JITcompilation),运行时需要代码时,将Microsoft中间语言(MSIL)转换为机器码的编译。CLR(CommonLa ... [详细]
  • 场景1.IE,Firefox浏览器访问不了网站,谷歌浏览器可以,返回错误码DNS_PROBE_POSSIBLE.2.pingwww.qq.com可以ping通,ping局域 ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • 本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]
  • 如何用JNI技术调用Java接口以及提高Java性能的详解
    本文介绍了如何使用JNI技术调用Java接口,并详细解析了如何通过JNI技术提高Java的性能。同时还讨论了JNI调用Java的private方法、Java开发中使用JNI技术的情况以及使用Java的JNI技术调用C++时的运行效率问题。文章还介绍了JNIEnv类型的使用方法,包括创建Java对象、调用Java对象的方法、获取Java对象的属性等操作。 ... [详细]
  • GreenDAO快速入门
    前言之前在自己做项目的时候,用到了GreenDAO数据库,其实对于数据库辅助工具库从OrmLite,到litePal再到GreenDAO,总是在不停的切换,但是没有真正去了解他们的 ... [详细]
  • 本文探讨了容器技术在安全方面面临的挑战,并提出了相应的解决方案。多租户保护、用户访问控制、中毒的镜像、验证和加密、容器守护以及容器监控都是容器技术中需要关注的安全问题。通过在虚拟机中运行容器、限制特权升级、使用受信任的镜像库、进行验证和加密、限制容器守护进程的访问以及监控容器栈,可以提高容器技术的安全性。未来,随着容器技术的发展,还需解决诸如硬件支持、软件定义基础设施集成等挑战。 ... [详细]
  • 如何使用台式电脑设置无线网络
    本文介绍了如何使用台式电脑设置无线网络的步骤,包括连接网线、更改IP、设置无线网络参数、重启路由器等,最后通过搜索无线信号来确认设置是否成功。 ... [详细]
author-avatar
mobiledu2502890657
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有