zoukankan      html  css  js  c++  java
  • OD 实验(六)

    程序:

    双击进行安装,安装过程默认就好了

    安装完成

    运行程序

    输入 User 为 sch01ar,点击 Create

    点击 Log In

    这里显示为未注册版本

    看看未注册版本有哪些功能被限制

    这里会显示这个是未注册的版本,要在今天注册

    最多只能创建 3 个组

    每个组最多只能添加四个联系人

    目标:

    修改程序添加组和联系人的限制

    修改程序中的未注册的提示信息

    实战:

    用 OD 打开程序

    该可执行文件在安装目录下

    联系人数量的突破

    按 F9 运行

    再次试图新建一个联系人,还是不行

    按 F12 暂停运行

    然后按 Alt+F9,用于返回到用户

    回到程序

    按“确定”

    返回到由程序接管

    按 F8 往下走,是一个 retn 返回指令

    走过这个指令,回到函数执行后的语句,也就是调用函数的地方

    上面两条 ASCII 码的语句是程序弹出的对话框的内容

    call Pixtopia.004562ED 间接调用了 MessageBox

    继续往上拉一点

    cmp eax,0x4,对 eax 和 4 进行比较,如果大于的话进行跳转

    如果 jl 跳转指令进行跳转的话,就会跳过弹出的对话框

    所以要让该处跳转,把 jl 改为 jmp

    添加联系人已经没有数量限制了

    组数量的突破

    根据联系人数量的突破,可类似地对组数量进行突破

    新建一个组

    按 F12 暂停运行

    然后按 Alt+F9,用于返回到用户

    回到程序,点击确定

    按 F8 往下走,执行 retn 返回指令,回到函数执行后的语句,也就是调用函数的地方

    上面这段还是程序弹出的对话框

    cmp eax,0x3 对 eax 和 0x3 进行比较,如果大于的话就进行跳转

    如果 jl 跳转指令进行跳转的话,就会跳过弹出对话框的那一段指令

    所以,可以把 jl 改为 jmp 进行强制跳转,按空格进行修改

    组的数量限制也修改成功

    修改未注册提示

    载入程序,按按钮 M,快捷键为 Alt+M,显示内存窗口

    右键 -> 查找,快捷键为 Ctrl+B,查找字符串

    输入 UNREGISTERED VERSION,区分大小写,点击确定进行查找

    选择内容,右键 -> 二进制 -> 编辑,对该字符串进行修改,快捷键为 Ctrl+E

    修改内容

    多出来的字符要用空字符填充,记得要勾选保持大小的选项,点击确定

    跟随表达式,地址为修改的起始地址

    选择内容

    右键 -> 复制到可执行文件

    右键 -> 保存文件

    保存完后运行程序

    修改成功

  • 相关阅读:
    UOS系统进入单用户模式解决su: 鉴定故障和sudo: /usr/bin/sudo 必须属于用户 ID 0(的用户)并且设置 setuid 位
    统一UOS操作系统 修改源地址
    linux cmake error no version information available
    Linux error /usr/bin/ld: cannot find -lJsoncpp
    容器时代的持续交付工具---Drone:Drone使用
    容器时代的持续交付工具---Drone:Drone介绍与安装
    asp.net core 中灵活的配置方式
    View Components as Tag Helpers,离在线模板编辑又进一步
    asp.net core mvc中如何把二级域名绑定到特定的控制器上
    提供服务注册描述信息来简化服务注册方式
  • 原文地址:https://www.cnblogs.com/sch01ar/p/9589135.html
Copyright © 2011-2022 走看看