• OD 实验(二)


    需要破解的程序

    输入用户名和序列号,点击 Check,程序会进行校验

    用 OD 打开程序

    按快捷键 Ctrl+F9 跟随表达式 GetDlgItemTextA

    点击 ok

    在这里调用了 GetDlgItemTextA,按 F2 下一个断点

    按这个 C 字母,快捷键为 Alt+C 回到程序的起始处

    然后按 F9 运行程序,将弹出对话框

    输入用户名 sch01ar,序列号 123456,然后点击 Check

    程序将在断点处停下

    此时的程序没有弹出序列号错误的对话框,因为程序只运行到断点处

    按 F7 进行程序的运行

    运行到 call 指令这个位置,可以按 F7 进入函数内,但是函数内没什么内容

    跳出函数,按 F8 继续往下走

    在这个地址看到了刚才输入的用户名

    可以在 hex 中进行确认

    继续按 F8 可以得到

    EAX 中存放着序列号,EDX 中存放着用户名,EBX 中存放着用户名的长度

    push 分别把 EAX,EDX,EBX 入栈,这三个是 call 调用地址为 00401340 函数的参数

    这个函数可能是验证序列号的,直接看函数的返回值,按 F8 步过,往下走

    运行到这,test 判断 EAX 是否为 0,如果为 0,零标志位 Z 就为 1

    0 为 False,即结果不正确

    按 F8 执行 test eax, eax

    这时的 Z 的值就为 1 了,说明函数返回的是 False

    双击 Z 的 1,变为 0

    成功

    把这个判断给去掉,双击这个 je 指令,或者按空格

    改为 nop

    接下来保存文件

    选择这两行 nop,右键 -> 复制到可执行文件 -> 选择

    然后在上面这个界面右键 -> 备份 -> 保存数据到文件

     保存完后打开该程序

    可以运行的

    接下来看看有没有绕过序列号的验证

    输入用户名 aaaaaa,序列号 111111,点击 Check

    成功绕过了序列号验证

  • 相关阅读:
    8-12接口测试进阶-1数据驱动
    8-5接口测试用例设计与编写-4
    用CentOS 7打造合适的科研环境
    linux版本qq的安装
    CentOS下安装福昕PDF软件
    CENTOS install summary
    centos6 install mplayer(multimedia)
    基于u盘安装centos6.0
    CentOS6.3挂载读写NTFS分区
    制作win7+ubuntu +winPE+CDlinux多系统启动U盘
  • 原文地址:https://www.cnblogs.com/sch01ar/p/9557695.html
Copyright © 2020-2023  润新知