zoukankan      html  css  js  c++  java
  • X86逆向7:特殊窗体的破解思路

    本章我们来看两个案例,这两个案例同样使用爆破的方式破解,但是与其他的程序不同,这个程序没有弹窗,提示成功或失败使用的是图片或是一个类似图片的窗体,本章将学习两个新的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.运行后,窗体上的按钮会变为可点击状态,此时在爆破即可。

  • 相关阅读:
    python之高阶函数
    [第二版]多线程的发送与接收
    基本函数与结构
    unp.h
    gdb调试命令
    System V共享内存区
    Posix 共享内存区
    System V信号量
    Posix 信号量
    记录锁
  • 原文地址:https://www.cnblogs.com/LyShark/p/11172220.html
Copyright © 2011-2022 走看看