上回给大家做的破解教程,地址是http://www.52pojie.net/thread-52719-1-1.html,用的是“调用堆栈”方法。今天给新手提供另一种方法“API函数断点”,这种方法要求大家记住常用的API函数,我给大家整理了一些常用的API断点:

字符串:GetDlgItemTextA、GetWindowTextA 这两个函数用在程序读取用户输入的字符
对话框:MessageBoxA 这个函数用于弹出“注册成功”、“注册失败”的消息框

其实,还有注册表类的,但对于初学者,先掌握这三个。

今天我们拿“终结者文件加密大师”来说明,程序我已经脱了壳,虽然PEID显示无法辨认,但看程序入口,似乎是汇编语言写的。好,不管这么多,先运行一下软件

第一次运行这个软件时,程序直接进入,我们可以点击“设置密码”来设密码,这样在以后运行时会提示输入密码(你可以先随意设密码,下面就是要破解这密码,最好不要记住你输的密码,这样更有挑战)

那接下来我们就是要破解这个“密码功能”,使我们任意输入密码都可以使用软件
怎么破解呢?我们可以使用上次教程的方法进行破解,也可以使用“API函数”
我们首先用OllyDbg载入,然后在Ollydbg左下角的命令框里输入“bpx MessageBoxA”,其中的“bpx”是在所有的调用上下断点的意思。如图

然后敲回车,接着运行软件,输入任意的密码,当你点击“ok”时,Ollydbg会提示软件暂停,这时“API断点”起作用了。图片上是暂停后的代码

我们可以分析一下代码,附近并没有疑似的关键。怎么会这样?大家先看图

母程序会调用子程序(就是CALL),那么我们现在看到的就是子程序,是用来完成弹出“密码错误”的子程序,而我们要找到
控制这个子程序的母程序。我们按F8来单步走,走过“RETN”命令的时候会来到调用这个程序的母程序。如图,我们走过2个“RETN”来到我们要找的位
置。

来到这里

我们分析一下,似乎那个00403793是关键跳,所以我们修改试试,如图,在这行代码上右击,选“汇编”,把原来的"je"改为"jnz"。

我们保存文件试试

运行一下,随意输入密码,可以运行。
好了,教程又结束了,这个教程相对于上一个应该更容易理解。另外提示一下,我后来发现这个程序的密码保存在注册表的这个位置:HKEY_LOCAL_MACHINE\SOFTWARE\SFolder  ,其中code的值就是密码。
附上下载地址:http://u.115.com/file/f3fc16f06    终结者文件加密大师.rar

破解之API断点法的更多相关文章

  1. 脱壳实践之寻找OEP——两次内存断点法

      0x00 前言 对于加壳程序第一件事就是要找到OEP(oringinal Entry point),由于加壳的缘故,当PE文件载入OD或者其他调试软件时进入的的往往是壳程序的入口地址.所以要进行逆 ...

  2. 程序破解之 API HOOK技术 z

    API HOOK,就是截获API调用的技术,在程序对一个API调用之前先执行你的函数,然后根据你的需要可以执行缺省的API调用或者进行其他处理,假设如果想截获一个进程对网络的访问,一般是几个socke ...

  3. VB程序破解之API断点[bp __vbaVarTstEq]

    软件名称:风云足彩1.7软件大小:2.1M下载地址:http://free.ys168.com/?zhinengxuanhao软件保护:注册码编写软件:Microsoft Visual Basic 5 ...

  4. 破解之寻找OEP[手动脱壳](2)

    1.使用ESP定律 OD载入后,F8一次,在寄存器窗口的ESP的内容上(如0012FFA4)右键:“在数据窗口中跟随”,到内存数据窗口,将内存数据窗口以HEX 数据形式显示,在刚才的地址起始位置上(如 ...

  5. 破解MyEclipse2015 stable3.0(亲测可用)

    整个破解过程最好断网: 1.安装好MyEclipse2015 stable3后,打开设置好工作目录后,退出.2.将plugins文件夹中的文件拷贝到myeclipse安装目录的plugins文件夹下, ...

  6. 破解MyEclipse2015 stable3.0

    整个破解过程最好断网: 1.安装好MyEclipse2015 stable3后,打开设置好工作目录后,退出.2.将plugins文件夹中的文件拷贝到myeclipse安装目录的plugins文件夹下, ...

  7. .NET Reflector软件破解

    转自:https://blog.csdn.net/zxy13826134783/article/details/89057871 软件和注册机下载地址: 链接:https://pan.baidu.co ...

  8. 小白日记32:kali渗透测试之Web渗透-扫描工具-QWASP_ZAP

    扫描工具-QWASP_ZAP 十大安全工具之一,集成性工具,功能完善,而且强大.既可做主动扫描,也可做截断代理.开源免费跨平台,简单易用,体验相对混乱,但在主动扫描方面,相对占优.[kali集成] # ...

  9. 转:iOS程序main函数之前发生了什么

    原文地址:http://blog.sunnyxx.com/2014/08/30/objc-pre-main/ 我是前言 一个iOS app的main()函数位于main.m中,这是我们熟知的程序入口. ...

随机推荐

  1. JDBC之初识

    JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口 ...

  2. Android简单计算器

    这是很久之前做的,方法很简单,都是一些基础的,不足的是还有很多功能不够. activity_main.xml布局: <LinearLayout xmlns:android="http: ...

  3. Cocos2d-x内置粒子系统

    从类图中我们可以看到,Cocos2d-x中有内置的11粒子,这些粒子的属性都是预先定义好的,我们也可以在程序代码中单独修改某些属性,我们在上一节的实例中都已经实现了这些属性的设置. 内置粒子系统 内置 ...

  4. 常用DOM笔记

    1,获取元素方法: (1),获取单个,返回一个元素 element.getElementById()//最快,实时 element.querySelector() (2)获取多个,返回一组 eleme ...

  5. python pil 安装

    Ubuntu下 sudo pip install pil 安装PIL可能会出现问题,例如安装完成时显示JPEG support not available 或者 ZLIB (PNG/ZIP) supp ...

  6. C++ VARIANT 学习小记录

    一:为什么会有这个? 目前,计算机语言有很多(大哥,为什么不能就那么一样呢?),如C++.Java,此外还有JavaScript.VBScript等脚本语言,它们自立门派,各自维护自己的数据类型. C ...

  7. Linux C 程序 文件操作(Linux系统编程)(14)

    文件操作(Linux系统编程) 创建一个目录时,系统会自动创建两个目录.和.. C语言实现权限控制函数 #include<stdio.h> #include<stdlib.h> ...

  8. 使用VS时点右键卡住—不响应的问题

    以前因为论坛,后来因为工作,发现已经好久没有来百度空间了.也好久没人留言或发表评论了,今天自己更新一下吧. 关于使用VS时点右键卡住或不响应的问题,我是在VS 2008中遇到的,不知道其它的版本有没有 ...

  9. web一次请求的流程

    1.客户端(浏览器输入网址)请求 2.发送http协议到web服务器(nginx),检测请求类别,如果时纯静态页面,则返响应返回给客户端. 3.如果有动态脚本(php语法)启动fastcgi进程,用解 ...

  10. Linux编辑器vi使用方法详细介绍

    vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器,这里只是简单地介绍一下它的用法和一小部分指令.由于对Unix及Linux系统的任何版本,vi编辑器是完全相 ...