本章我们来看两个案例,这两个案例同样使用爆破的方式破解,但是与其他的程序不同,这个程序没有弹窗,提示成功或失败使用的是图片或是一个类似图片的窗体,本章将学习两个新的API函数的使用技巧。

------------------------------------------------------------
本章难度:★☆☆☆☆☆☆☆☆☆
课程课件:CM_07.zip
------------------------------------------------------------

通过GetDlgItemTextA破解

1.直接OD载入程序,来看一下这个弹窗,该弹窗并不是一个MessageBox。

2.我们直接下一个【GetDlgItemTextA】,点击【设置API断点】,选择字符串,然后下断点。

3.直接运行程序,然后输入假的注册码,点击注册,回到OD发现断下,直接【alt + F9】返回到用户模块,返回后如下图。

4.这一层,我们直接单步【F8】跟随,发现关键CALL与关键跳转了,上面的关键CALL就是验证CALL楼。

5.直接把JE指令改成NOP指令,运行程序,破解完成,保存文件即可。

通过GetWindowTextA破解

1.接着看第二个程序,直接OD载入并运行,输入假码点击登录,发现程序没有任何反映,只有我们输入真正的密码才会提示登录成功。

2.对待这种程序,我们可以直接下【GetWindowTextA】断点,下好断然后点击登录。

3.程序会被断下,说明我们断对了,接下来就是直接出CALL然后找关键跳转了。

4.经过不断的出CALL最后在第五层发现了关键跳转,我们直接把JE改成NOP然后保存文件即可破解。

通过EnableWindow破解

1.接着来看一下以下窗体,该窗体默认无法输入内容,无法点击登录按钮,且内部有时钟干扰我们。

2.重新载入程序,不要运行首先下【SetTimer】,然后在下一个【EnableWindow】断点,然后直接运行程序。

3.运行程序,第一次断下的是时钟,我们不要犹豫直接将其返回,让其失效,然后取消这个断点。

4.再次运行程序,程序会断下,此时我们看堆栈,Enable=FALSE 说明登录按钮变成了假。

5.我们选择Enable这一行然后按下,【Ctrl + E】将最后一位修改成1,运行程序即可。

6.运行后,窗体上的按钮会变为可点击状态,此时在爆破即可。

X86逆向7:特殊窗体的破解思路的更多相关文章

  1. X86逆向1:软件破解入门课【课件下载】

    从本节课开始,我将带领小白入门学习软件破解的相关内容,大佬绕过,以后将会定期更新从最基本的破解知识点开始学习,由简单到复杂循序渐进,难度会逐步提高. 为了防止版权方面的争议,我将自行编写一些破解案例来 ...

  2. X86逆向5:破解程序的自效验

    在软件的破解过程中,经常会遇到程序的自效验问题,什么是自效验?当文件大小发生变化,或者MD5特征变化的时候就会触发自效验暗装,有些暗装是直接退出,而有些则是格盘蓝屏等,所以在调试这样的程序的时候尽量在 ...

  3. JetBrains全家桶破解思路(最新更新:2019-04-17)

    JetBrains全家桶破解思路(以DataGrip为例) 2019-04-17 add new key 2019-01-24 add new key and code 2018-12-24 add ...

  4. Android程序破解思路

    Android程序的一般分析与破解流程 1.如何寻找突破口是分析一个程序的关键.错误提示信息左右一般是程序验证逻辑的核心代码. 2.错误提示是android程序的字符串资源,字符串有可能硬编码到源码中 ...

  5. Android逆向之旅---动态方式破解apk进阶篇(IDA调试so源码)

    Android逆向之旅---动态方式破解apk进阶篇(IDA调试so源码) 来源 https://blog.csdn.net/jiangwei0910410003/article/details/51 ...

  6. 人工智能计算器AI Calculator 3.3.0 具体破解思路&教程

    人工智能计算器AI Calculator 3.3.0 具体破解思路&教程 [文章标题]:人工智能计算器AI Calculator 3.3.0 具体破解思路&教程 [文章作者]: Eri ...

  7. X86逆向3:通过修改关键CALL破解

    软件逆向第一课中我们通过爆破的方式直接破解了程序的登录限制,但这一种方式很不合理,因为你只是破解了登录这一处的验证,如果程序内部还有其他的验证那么你需要再次爆破第二个验证,显然这种方式是很烦人的,如果 ...

  8. X86逆向9:通过关键常量破解

    本章将讲解一下关于关键全局变量的一些内容,关键的全局变量对于软件的破解非常的有用,找到了关键全局变量并改写它同样可以完成完美爆破一个程序,这里我将使用CM小例子来讲解搜索关键变量的一些技巧,最后我们来 ...

  9. URL helper 逆向破解思路+详细过程 利用messagebox破解

    先了解一下软件的运行: 打开后是这样的,要注册 随便输入假注册码,看他怎么响应: 会弹出一个信息窗(massageBox)提示注册失败.到这里就行了,关掉,然后用OD打开,按F9跑起来: 这里输入假码 ...

随机推荐

  1. 在iOS开发中使用icon font的方法

    http://iconfont.cn/help/iconuse.html 在开发阿里数据iOS版客户端的时候,由于项目进度很紧,项目里的所有图标都是用最平常的背景图片方案来实现.而为了要兼容普通屏与R ...

  2. Leetcode题目78.子集(回溯-中等)

    题目描述: 给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集). 说明:解集不能包含重复的子集. 示例: 输入: nums = [1,2,3] 输出: [ [3],   [1] ...

  3. sql语句中where 1=1和 0=1 的作用

    sql where 1=1和 0=1 的作用   where 1=1; 这个条件始终为True,在不定数量查询条件情况下,1=1可以很方便的规范语句. 一.不用where  1=1  在多条件查询中的 ...

  4. hadoop新旧节点

    注意:黑白名单只出现在名称(nn)节点<!-- 白名单 --><property><name>dfs.hosts</name>/Users/yangya ...

  5. matplotlib:plt.rcParams设置画图的分辨率,大小等信息

    主要作用是设置画的图的分辨率,大小等信息 plt.rcParams['figure.figsize'] = (8.0, 4.0) # 设置figure_size尺寸 plt.rcParams['ima ...

  6. PhoneUtils

    import java.util.regex.Matcher; import java.util.regex.Pattern; public class PhoneUtils { /** * @par ...

  7. visible,invisible和GONE的区别

    在Android开发中,大部分控件都有visibility这个属性,其属性有3个分别为“visible ”.“invisible”.“gone”.主要用来设置控制控件的显示和隐藏.有些人可能会疑惑In ...

  8. VBA锁定指定单元格

    Then .Range("AF4").Value = pjno .Range("A1:AH56").Locked = False .Range("F6 ...

  9. /lib64/libstdc++.so.6: version `CXXABI_1.3.8’ not found(转载)

    原文地址:https://blog.csdn.net/EI__Nino/article/details/100086157 终极一战 绝命一击 ImportError: /lib64/libstdc+ ...

  10. JAVA 基础编程练习题13 【程序 13 根据条件求数字】

    13 [程序 13 根据条件求数字] 题目:一个整数,它加上 100 后是一个完全平方数,再加上 168 又是一个完全平方数,请问该数是多少? 程序分析:在 10 万以内判断,先将该数加上 100 后 ...