程序:

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

安装完成

运行程序

输入 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

修改内容

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

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

选择内容

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

右键 -> 保存文件

保存完后运行程序

修改成功

OD 实验(六) - 对一个程序的破解的更多相关文章

  1. OD 实验(七) - 对一个程序的破解和去广告

    程序: 这里有很多的动态链接库 双击运行程序 这个程序有次数限制 按钮也在隐藏处 主界面 退出程序,会弹出一个广告 目的: 让程序的使用次数不受限制,且没有显示次数的窗口 去除程序关闭时候的广告 逆向 ...

  2. OD 实验(十一) - 对一个程序的破解

    程序: 点击安装程序 这是一个拼图程序 点击 Options -> Flash Sizes 程序会提示是未注册版本 点击一些选项的时候会提示该程序只给注册的用户 点击 Register 随便输入 ...

  3. OD 实验(九) - 对一个程序的破解

    程序: 运行程序 点击 About 这是要注册的 点击 Register 输入邮箱和注册码,点击 Register Now 逆向: 用 OD 打开程序 右键 -> 查找 -> 所有参考文本 ...

  4. OD 实验(十七) - 对一个程序的逆向分析

    程序: 运行程序 弹出一个对话框,点击 OK 来到主界面,点击 Help -> Register Now 这是输入注册码的地方 按关闭程序的按钮 会提示剩下 30 天的使用时间 用 Ressco ...

  5. OD 实验(十三) - 对一个程序的逆向

    程序: 运行程序 点击 Start,它就会进行对系统的扫描 点击 About -> Enter Registration Code 随便输入一下内容,点击 OK,会弹出该弹窗 用 PEiD 看一 ...

  6. OD 实验(八) - 对一个程序的逆向

    程序: 运行 弹出 NAG 窗口,提示要花 20 美元注册 然后会进入主窗口 提示剩余 5 天的使用时间 点击,菜单栏 -> Help -> About 显示未注册版本 逆向: 用 OD ...

  7. OD 实验(十) - 对一个 VB 程序的逆向

    前话: VB 程序用 OD 进行逆向的话,可以先查找相关的变量和字符串,以寻找突破口 变量: __vbaVarTstEq __vbaVarCompEq __vbaVarTstNe __vbaVarCo ...

  8. 实验 六:分析linux内核创建一个新进程的过程

    实验六:分析Linux内核创建一个新进程的过程 作者:王朝宪  <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029 ...

  9. JAVA-集合作业-已知有十六支男子足球队参加2008 北京奥运会。写一个程序,把这16 支球队随机分为4 个组。采用List集合和随机数

    第二题 已知有十六支男子足球队参加2008 北京奥运会.写一个程序,把这16 支球队随机分为4 个组.采用List集合和随机数 2008 北京奥运会男足参赛国家: 科特迪瓦,阿根廷,澳大利亚,塞尔维亚 ...

随机推荐

  1. Android程序员学WEB前端(4)-HTML(4)-注册页面-Sublime

    转载请注明出处:http://blog.csdn.net/iwanghang/article/details/76576031 觉得博文有用,请点赞,请评论,请关注,谢谢!~ 注册页面1: <! ...

  2. React-Native进阶_1.抽取样式和组件

    组织应用的样式和组件 就像抽取工具类一样,放在单独的文件中,在要使用的地方去导入调用即可. 1.导出样式 Style 样式可以单独写在一个JavaScript文件中,然后导出给其他JavaScript ...

  3. python编程(最简单的rpc代码)

    [ 声明:版权所有,欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing @163.com] 采用twisted可以编写最简单的rpc代码. server端代码如下, from twiste ...

  4. Ubuntu下改变文件权限

    Ubuntu下改变权限 有问题,待解决!! 参考:修改linux文件权限命令:chmod 起因:init 0 指令能在普通用户下调用,很方! 指令 chmod 格式: chmod 000 xxx.x ...

  5. WPF 同一窗口内的多线程 UI(VisualTarget)

    WPF 的 UI 逻辑只在同一个线程中,这是学习 WPF 开发中大家几乎都会学习到的经验.如果希望做不同线程的 UI,大家也会想到使用另一个窗口来实现,让每个窗口拥有自己的 UI 线程.然而,就不能让 ...

  6. lua不支持的泛型方法

    1.没有泛型约束 2.缺少带约束的泛型参数 3.泛型约束必须为class /// <summary> /// 不支持生成lua的泛型方法(没有泛型约束) /// </summary& ...

  7. Java 合并.wav 文件

    package org.lib.speech.test;import java.io.*; import java.util.*;import javax.sound.sampled.AudioFil ...

  8. MYSQL在当前日期的基础上加上N(年月日分秒)

    //把id为1的那条数据的开始时间改为现在  结束时间改为开始时间的1个月后 update 表明 set  begintime=now(),endtime=date_add(NOW(), interv ...

  9. linux 系统下配置tomcat,并给tomcat赋予最高操作权限,启动tomcat和关闭tomcat

    配置tomcat服器 sudo chmod -R 777 * 给某个文件下所有文件赋予最高的读写权限 红颜色的字是路径,蓝颜色字是命令 (1)官方网站下载tomcat压缩包.apache-tomcat ...

  10. gradle java 简单项目使用

    预备环境 gradle 配置好变量,方便生成项目 1. 环境配置 gradle wrapper 生成项目结构 ├── build.gradle ├── gradle │ └── wrapper │ ├ ...