所谓暴力破解,就是通过修改汇编代码进而控制程序的运行流程,达到不需注册码也能正常使用软件的目的。相对于解出算法进而编写注册机,暴破的技术含量是比较低的。但也正是因为一本05年的杂志上介绍“暴力破解”的文章,让我入了这个大坑。近来想重拾调试器,就先从最简单的CrackMe入手,熟练一下各工具方法。

下载CrackMe3文件(我用的是看雪《加密与解密》中的CFF CrackMe #3 程序  http://pan.baidu.com/s/1dD9v9x3 )。

1.查看此程序是否加壳。加壳的话还得进行脱壳处理。将CrackMe拖到PEID上,显示用Delphi编写。无壳,甚好。

3.打开程序,看看注册码出现异常的时候有何提示。恩,输入错误的注册码,确认。显示了“Wrong Serial,try again!”。我们记下这一串字符,接下来用得到。

4.退出程序,打开OllyDbg,并载入此程序。(当年用的是W32Dasm,属于静态反汇编软件,支持WIN API,具有强大的串式参考功能。因此成为破解入门软件的最佳选择。这次用OllyDbg实施爆破,只是复习一下操作。爆破原理都是相同的)下图是OllyICE,是OllyDbg的汉化版。也一样好用。

载入程序后,出现如下界面:

title上面的“模块 — crackme3”标明了程序领空,我们当前是在crackme的代码内。

5.我们在反汇编窗口“右键——查找——所有参考文本字符串”:


然后会弹出一个文本字符串的对话框,继续“右键——查找文本”:


 然后会弹出对话框,输入前面记下来的那串“Wrong Serial,try again!”。其实为了方便,可以只输入“Wrong”这个字符串,毕竟程序里带“Wrong”的字符不会太多,如下图:

点击“确定”后,会高亮查找结果,此时在对应字符串处“右键——反汇编窗口中跟随”,会在反汇编窗口中跳到对应此串字符的汇编指令:



看到上图的指令,分析一下程序流程:输入ID和注册码后,call调用子函数来判断注册码是否正确(00440F51处,call 00403B2C处的子函数),如果不正确,一个jnz跳到00440F72,弹出“Wrong Serial ,try again!”,提醒说你丫注册码是错的。

为了验证我们的想法,我们在call的前面按F2下个断点,然后一步步跟进,看看call了个什么函数过来:


 然后F9让程序跑起来,输入假的ID “wwwwww” ,按下“注册”。此时程序自然要去call子函数来验证我们的注册码是否正确。可惜它还没走到call的那一步,就停在了我们设的断点上(可以看到信息窗口中的堆栈内容“wwwww”,不知会不会存在缓冲区溢出?XD):


然后按下几次F8单步步过,直到了00440F34 call指令,程序就要召唤子程序来检验注册码是否正确了!此时改为F7单步步入,跟踪到所call的函数(如图,此函数地址在00403B2C处):


跟进去之后,这就是用来验证注册码的程序(从 三个push压入堆栈 开始,到 三个pop弹出堆栈+retn 结束):



从代码中可以发现,程序将输入的注册码与内置的注册码用cmp指令做了比较。(cmp指令执行后,将对标志寄存器ZF产生影响。比如 CMP AX , BX ,当AX=BX时,ZF=1;AX!=BX时,ZF=0。)

也就是说,如果注册码与输入的字符串不相等,ZF=0。此时子程序返回,执行00440F39处的JNZ指令。因为输入的注册码不对,ZF=0,开始执行JNZ,跳转到00440F8C,弹出“Wrong Serial”对话框提示注册码错误。

这就是传说中的“关键跳”,如果将JNZ(ZF=0时就跳转)改为JE(ZF=1时就跳转),得到的结果就会正好相反,即错误的注册码反而会提示注册成功,对的注册码反而会提示错误。

6.那么现在找出那两个“关键跳”(输入ID时call了一下,然后一个jnz。输入注册码时又call了一下,再一个jnz。),如下图:



好,现在只剩下修改汇编代码了。双击对应的JNZ指令,弹出“汇编于此处”的对话框。将只需将“jnz”改为“je”,点击“汇编”即可。用同样的方法修改另一处“jnz”:


修改完毕,“右键——复制到可执行文件——所有修改“:


在弹出的对话框中点击“全部复制”:

然后在出现的新对话框中“右键——保存文件”,完毕。

此时打开新保存的文件,随意输入一个ID和注册码,点击“注册”,即弹出“注册成功”的对话框:

小结:本次主要是重温了OllyDbg的操作。爆破无外乎就是改变程序的验证流程,譬如将关键处的jne改为je,或者jmp,比较不优雅。更优雅的是揣摩出程序作者的验证算法,写出内存补丁或者注册机,这才是高大上的方法。无奈算法一类的是我的软肋,仍需努力啊。

转载于:https://www.cnblogs.com/codex/p/4051817.html

软件破解入门(暴力破解CrackMe)相关推荐

  1. CTF-Show密码学:ZIP文件密码破解【暴力破解】

    萌新 隐写23 题目内容: 文件的主人喜欢用生日做密码,而且还是个90后. 一.已知条件 在这个题目中,我们有以下已知条件: 文件的主人喜欢用生日做密码 - 这个条件告诉我们,密码可能是一个八位的纯数 ...

  2. 其它 以字典的方式 暴力破解 压缩文件密码

    以前加密了一个压缩文件,里面全是回忆的照片,结果密码搞忘记了,我勒个去,然后就在网上下载了个软件暴力破解,结果很明显,没有破解出来.然后自己就思索怎么破解. 一开始是加QQ群,让别人帮忙破解,仍然没有 ...

  3. 黑客暴力破解必备的12大逆向工具!设置再复杂的密码也没用!

    暴力破解攻击是最流行的密码破解方法之一,然而,它不仅仅是密码破解.暴力攻击还可用于发现Web应用程序中的隐藏页面和内容,在你成功之前,这种攻击基本上是"攻击一次尝试一次". 暴力破 ...

  4. IT知识百科:什么是暴力破解?

    暴力破解是一种常见的网络安全攻击方法,它利用计算机程序自动尝试大量的密码组合来破解密码.这种攻击方法通常用于获取未经授权的访问权限,如入侵网络系统或个人账户.在本文中,我们将探讨暴力破解的原理.工具和 ...

  5. 口令暴力破解--Telnet协议暴力破解、数据库暴力破解与远程桌面暴力破解

    Telnet协议暴力破解 Telnet Telnet协议是TCP/IP协议族中的一员,是Internet远程登陆服务的标准协议和主要方式.它为用户提供了在本地计算机上完成远程主机工作的能力.要开始一个 ...

  6. FTP暴力破解登陆漏洞复现(Windows Server 2003)

    FTP暴力破解漏洞复现 0x01 漏洞简述 FTP弱口令,一般指使用FTP的用户的密码长度太短.复杂度不够.仅包含数字.或仅包含字母等,容易被黑客攻击,发生恶意文件上传或更严重的入侵行为. 知道FTP ...

  7. 暴力破解攻击工具汇总——字典很关键,肉鸡也关键

    lasercrack是一款爆力破解工具,ruby写的,现如今市面上常见的暴力工具如hydra,medusa都有着不错的破解效率. 破解RDP的软件也有很多,比如ncrack和Fast RDP Brut ...

  8. linux暴力破解工具

    对于 Linux 操作系统来说,一般通过 VNC.Teamviewer 和 SSH 等工具来进行远程管理,SSH 是 Secure Shell 的缩写,由 IETF 的网络小组(Network Wor ...

  9. 手把手教你一步一步暴力破解密码,学不会来找我

    目录 一.什么是暴力破解? 二.暴力破解弱口令实验 三.如何防御暴力破解攻击? 一.什么是暴力破解? 暴力破解也可称为穷举法.枚举法,是一种针对于密码的破译方法,将密码进行逐个推算直到找出真正的密码为 ...

最新文章

  1. 一文读懂微服务架构的重构策略
  2. tomcat 设定自定义图片路径
  3. List数组,string数组,Dictionary字典三种contain方法的查询速度
  4. Solr入门和实践以及我对Solr的8点理解
  5. 使用JDBCTemplate实现与Spring结合,方法公用 ——Emp实现类(EmpDaoImpl)
  6. http 412 precondition failed
  7. 面向对象之封装的成本价值
  8. 宋体(Simsun)和新宋体(NSimsun)的区别
  9. linux geos 动态库,未经sudo许可在linux上安装GEOS库
  10. Tecplot新手进阶--使用tecplot宏操作批量处理数据输出图片(详细步骤)
  11. 致远OA办公网“office控件不可用”及“无注册表类”解决办法
  12. ffmpeg从mp4(音视频)中提取音频aac
  13. 透过案例--了解循环栅栏
  14. 3d效果图设计师接私单的渠道介绍和避坑指南
  15. 数字化时代的数据安全与治理
  16. STM32精英板连接wifi,通过指令控制继电器
  17. 学计算机Java和c语言哪个出路比较好
  18. [Java学习] 最小生成树——Prim算法
  19. 外包三年准备跳槽了!
  20. android studio(自带SDK)安装教程

热门文章

  1. js根据15,18位身份证号获取生日与性别
  2. Ajax技术的先进性与局限性
  3. QGIS 3.10 栅格样式与栅格分析
  4. 2018年浙江棚改开工完成率国内第一 保障数达历年最高
  5. 曾国藩经典人生哲理语录——大师级别啊
  6. office 2016优化
  7. python系列——tqdm模块
  8. 知客CRM签约湖南省粮油食品进出口集团有限公司
  9. latex如何把目录页的页码去掉?
  10. poi 3.17导出word并分页写入表格数据