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
修改内容
多出来的字符要用空字符填充,记得要勾选保持大小的选项,点击确定
跟随表达式,地址为修改的起始地址
选择内容
右键 -> 复制到可执行文件
右键 -> 保存文件
保存完后运行程序
修改成功
OD 实验(六) - 对一个程序的破解的更多相关文章
- OD 实验(七) - 对一个程序的破解和去广告
程序: 这里有很多的动态链接库 双击运行程序 这个程序有次数限制 按钮也在隐藏处 主界面 退出程序,会弹出一个广告 目的: 让程序的使用次数不受限制,且没有显示次数的窗口 去除程序关闭时候的广告 逆向 ...
- OD 实验(十一) - 对一个程序的破解
程序: 点击安装程序 这是一个拼图程序 点击 Options -> Flash Sizes 程序会提示是未注册版本 点击一些选项的时候会提示该程序只给注册的用户 点击 Register 随便输入 ...
- OD 实验(九) - 对一个程序的破解
程序: 运行程序 点击 About 这是要注册的 点击 Register 输入邮箱和注册码,点击 Register Now 逆向: 用 OD 打开程序 右键 -> 查找 -> 所有参考文本 ...
- OD 实验(十七) - 对一个程序的逆向分析
程序: 运行程序 弹出一个对话框,点击 OK 来到主界面,点击 Help -> Register Now 这是输入注册码的地方 按关闭程序的按钮 会提示剩下 30 天的使用时间 用 Ressco ...
- OD 实验(十三) - 对一个程序的逆向
程序: 运行程序 点击 Start,它就会进行对系统的扫描 点击 About -> Enter Registration Code 随便输入一下内容,点击 OK,会弹出该弹窗 用 PEiD 看一 ...
- OD 实验(八) - 对一个程序的逆向
程序: 运行 弹出 NAG 窗口,提示要花 20 美元注册 然后会进入主窗口 提示剩余 5 天的使用时间 点击,菜单栏 -> Help -> About 显示未注册版本 逆向: 用 OD ...
- OD 实验(十) - 对一个 VB 程序的逆向
前话: VB 程序用 OD 进行逆向的话,可以先查找相关的变量和字符串,以寻找突破口 变量: __vbaVarTstEq __vbaVarCompEq __vbaVarTstNe __vbaVarCo ...
- 实验 六:分析linux内核创建一个新进程的过程
实验六:分析Linux内核创建一个新进程的过程 作者:王朝宪 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029 ...
- JAVA-集合作业-已知有十六支男子足球队参加2008 北京奥运会。写一个程序,把这16 支球队随机分为4 个组。采用List集合和随机数
第二题 已知有十六支男子足球队参加2008 北京奥运会.写一个程序,把这16 支球队随机分为4 个组.采用List集合和随机数 2008 北京奥运会男足参赛国家: 科特迪瓦,阿根廷,澳大利亚,塞尔维亚 ...
随机推荐
- ubuntu16 sogou install
1,下载搜狗deb文件(ubuntu16不要参考搜狗旧的安装文档): http://pinyin.sogou.com/linux/ 2,双击sogoupinyin_2.1.0.0086_amd64.d ...
- online learning,batch learning&批量梯度下降,随机梯度下降
以上几个概念之前没有完全弄清其含义及区别,容易混淆概念,在本文浅析一下: 一.online learning vs batch learning online learning强调的是学习是实时的,流 ...
- vue样式穿透
在一次这样的需求中,需要实现滑倒底部时自动请求数据,需要动态创建节点然后追加到某元素中,这期间遇到的问题就是在动态创建节点后,类名也已经加上了 ,但是样式就是没有生效,最后发现原因的产生竟然是< ...
- tensorflow图像基本处理
tensorflow库提供的专门的图片处理库,以下只是部分示例,更多函数请参照源码'\tensorflow_api\v1\image__init__.py' 加载图像 方式1: 使用tf.gfile. ...
- 每天一个linux命令(文件操作):【转载】find命令之xargs
在使用 find命令的-exec选项处理匹配到的文件时, find命令将所有匹配到的文件一起传递给exec执行.但有些系统对能够传递给exec的命令长度有限制,这样在find命令运行几分钟之后,就会出 ...
- BZOJ2090: [Poi2010]Monotonicity 2【线段树优化DP】
BZOJ2090: [Poi2010]Monotonicity 2[线段树优化DP] Description 给出N个正整数a[1..N],再给出K个关系符号(>.<或=)s[1..k]. ...
- ResultSet.TYPE_SCROLL_SENSITIVE到底发生了什么?
转自:https://blog.csdn.net/axman/article/details/3984103 这个问题我在几年前说过,但今天再次从CSDN上看到有人问这个问题,可以看出,真正懂这个问题 ...
- 集群搭建SSH的作用及这些命令的含义
authorized_keys文件 远程主机将用户的公钥,保存在登录后的用户主目录的$HOME/.ssh/authorized_keys文件中.公钥就是一段字符串,只要把它追加在authorized_ ...
- fpga rom 初始化mif文件生成
mif文件的格式 width= depth= address_radix= data_radix= content begin 00: ; 01: ; 02: ; .... end; 关 ...
- lapis 集成openresty最新版本cjson 问题的解决
备注: 为了解决安装了lapis.同时又希望使用新版nginx 以及openresty 的特性(stream ...) 1. 解决方法 参考: https://github.com/leaf ...