小甲鱼 OllyDbg 教程系列 (三) :PJ 软件功能限制

 

小甲鱼OllyDbg教程:https://www.bilibili.com/video/av6889190?p=8

https://www.freebuf.com/articles/system/87723.html

程序下载地址:https://pan.baidu.com/s/1OprawMSCXPZw1wuY5vxMmA 提取码: tp9e

 

 

无壳的实例

目标:去除软件功能限制

工具:OD

安装好这款软件打开如图:

这款软件有诸多功能限制,如:

当我们选择Add Group,提示没有注册只能创建3个Group:

选择Add,提示没有注册只能添加4个联系人:

我们打开About PixtopianBook,弹出未注册版本信息。

我们将其载入OD(建议下载一个原版OD#www.ollydbg.de#,我们尝试手动配置忽略异常)如图:

点击运行后,并没有出现程序界面,而是抛出了异常:

我们手动开启忽略异常:

打开后选择 exception:

勾选如上,再点击Add lase exception。

配置完成后点击OK。

配置完成后重新载入程序,点击运行,成功打开了程序。

 

 

 

正式开始!

 

1、Group

将软件载入OD,点击Add Group。

我们在其弹出消息框后暂停OD。

此时状态栏显示:暂停,我们此时需要返回到程序领空,快捷键Alt+F9。

然后点击消息框 确定 此时状态栏显示:‍返回到用户

我们成功返回到程序领空,向上翻。

看到了一个MessageBox,这就是我们刚才确定的那个消息框。

向下我们将

这个命令将带我们返回到调用CALL处。所以我们继续向下执行。

进行retn:

我们跳出了call,返回到了调用处、

我们看到:

1.这个Call就是我们刚才进入的Call,加入我们能跳过这个call,就能避免跳出消息框。

2.查看这个ascii码,正是消息框的标题和内容,在这里被压入栈,等待调用。

3.这里有一个cmp,比较eax与3大小(即Group是否等于3),如果小于就跳转到(JL)00408B34,如果已经有3个Group了,就执行call弹出未注册消息框。

你一定已经知道我们将要干什么了!

将JL(小于则跳转)改为jmp(强制跳转)。

这样我们就成功跳过了GROUP验证。

我们将其保存:

测试一下:

哈哈,已经可以自由添加Group了!!是不是很有成就感啊!学习逆向成就感很重要哦。

 

 

2、联系人

 

默认未注册用户只能添加四个联系人,我们采取同样方法:

1、弹出消息框后暂停

2、Alt+F9执行到用户代码

3、点击确定

跳转到这个位置,我们向上翻,看到同样的MessageBox,如下:

通过retn跳出call,回到调用处,向上翻:

1、这个call调用了MessageBox,弹出了消息框;

2、这句话同我们看到的一样,确定程序在这里将其压入栈;

3、比较eax与4的大小(联系人是否已经有4个),如果小于等于(JL)4个,那就跳过消息框,否则弹出未注册消息框。

我们同样修改jl为jmp,强制其跳转:

保存后测试一下:

我们又成功搞定了一个功能!这个阉割版已经成了注册版,不过还有一些美中不足的地方。比如:

那我们就开始让它从里到外都是注册版!

 

3、更改版本信息

标题,版本文字在代码区是找不到的,我们直接在内存中找

输入查找关键字UNREGISTERED:

如果ASCII没有搜索到就用UNICODE

(这里ASCII也可以搜索到,不过不是版本信息,UNICODE下搜索到版本信息,点击确定):

记录下004D4830,在dump面板跳转:

跳转之后成功找到需要修改的内容:

我们选择要修改的内容,右键编辑:

编辑为自己想写的字符,如下:

 

 

4、DIY标题

同样是在内存中查找,在弹出的搜索框里输入关键字:(UNREGISTERED VER

(一般情况下是不知道要搜索的文字是ascii还是unicode,我们会都尝试搜索一次。

记下004E4BE6,在dump窗口跟随:

找到需要修改的字符然后编辑:

确定后如下图所示:

 

 

5、更改提示注册文字

同理,我们在内存中搜索:

首先尝试UNICODE,没有搜索到结果。

再尝试ASCII搜索:

成功搜到了字符串:

记录下位置48F974,并跳转到该处:

用同样的方法编辑ASCII码:

编辑完成后如下:

在所有工作做完之后,不要忘记保存:

保存后我们查看效果:

 

 

6、结尾

我们仍发现了一些美中不足的地方。

在进入程序时,首先是欢迎信息:

几秒后变为:

我们想让它更加简洁,一直显示welcome信息,该怎么操作呢?

那我们开始进行最后一步!!

通过上面的操作我们已经知道了注册文字在48F974处,在dump(数据窗口)窗口右键跳转到48F974

我们需要知道程序哪一段调用了这段字符串。

我们右键选择查找参考(Ctrl+R)(个人觉得做汉化翻译得有点问题,这个命令的英文是Find references,意思应该是查找引用,参考这个词不太合适):

找到一处引用,我们双击进入:

我们来到如图所示的代码位置:

发现上面有一处cmp和jnz(cmp与jnz组合代表:如果不相等,则跳转),如果ebp等于907,则将这串字符压入栈(可以猜测,907代表未注册),我们根据跳转向上翻:

向上翻到这里:

又有一处cmp和jnz,意思是如果ebp不等于906,就要跳转回0040C22F处。

(我们可以猜测,906代表注册过)

这个程序我们已经完全弄清楚了,我们直接在0040C235的jnz处进行强制跳转,让其不会将这串字符压入栈:

修改后,我们最后一次保存:

打开:

整款软件已经没有限制。。。。。

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/495587.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

特朗普即将主持AI会议 中美竞争成焦点

来源:华尔街见闻摘要:特朗普将用一整天在白宫主持他当选以来的第三次科技大会,这次的主题是人工智能(AI)。特朗普都将和硅谷巨头们探讨AI相关话题。其中,对AI技术的监管以及中美之间的AI竞争将会是会议的焦…

Guava入门~MapMaker

ConcurrentMap<String,Book> books new MapMaker().concurrencyLevel(2).softValues().makeMap(); concurrencyLevel()&#xff1a;设置允许并发修改map的线程数&#xff1b; softValues()&#xff1a;map的值用SoftReference封装&#xff0c;允许内存低时候垃圾回收&…

Fedora 10初体验

一、前奏 Fedora 10 - 熄灭吧 Fedora 是基于 Linux 的操作细碎&#xff0c;包罗了从容和开源软件最新的效果。Fedora 准许通通人从容操纵、修正和重新宣布。它由普及举世的贡献者协作开发&#xff0c;他们组成了 Fedora 项目社区。Fedora 项目对通通人都是开放的。 Fedora 项目…

DeepMind重大突破:AI进化出大脑级导航能力,像动物一样会“抄小路”

作者&#xff1a;刘伟摘要&#xff1a;DeepMind团队称&#xff0c;其最新研发出的一个人工智能程序具有类似哺乳动物一样的寻路能力。美国东部时间 5 月 9 日&#xff0c;一手打造 AlphaGo的DeepMind 团队又在世界顶级学术杂志《自然》上发表了一项重磅成果。在一篇题为 Vector…

Awesome Mac:收集的非常全面好用的Mac应用程序、软件以及工具

From&#xff1a;https://github.com/jaywcjlove/awesome-mac/blob/master/README-zh.md. 目录 开发者工具测试工具命令行工具版本控制数据库设计和产品虚拟机通信数据恢复音频和视频书签阅读写作软件打包工具制作电子书下载工具网盘输入法浏览器翻译工具安全工具优雅的上网( …

Guava入门~Guava caches

Cache 接口 put(key,value)&#xff1a;往缓存中添加值&#xff1b; V value cache.get(key, Callable<? Extends V> value)&#xff1a;从缓存中获取值&#xff1b; // 等价 value cache.get(key); if(value null){value someService.retrieveValue();cache.put…

小甲鱼 OllyDbg 教程系列 (十二) : inline patch ( 内嵌补丁 ) 之 调用堆栈查找法

小甲鱼 OD 教程&#xff1a;https://www.bilibili.com/video/av6889190?p20 堆栈调用方法 程序运行后&#xff0c;直接断点到 004DC0D1 这个 位置&#xff0c;按 F8一直没反应&#xff0c;打开程序&#xff0c;可以看到 neg 窗口&#xff0c; 点击 exit &#xff0c;关闭 neg …

Solaris 11 安装图解(8)

豆豆网 技能应用频道 图 13 完成安装界面 完成安装之后&#xff0c;安装日记会保留在文件中。可在以下地位检查安装日记&#xff1a;■ /a/var/sadm/system/logs/install_log■ /a/var/sadm/system/logs/upgrade_log■ /a/var/sadm/system/logs/sysidtool.log三、 系统登录…

CPU是如何制造出来的

来源&#xff1a;EDN电子技术设计摘要&#xff1a;Intelx86架构已经经历了二十多个年头&#xff0c;而x86架构的CPU对我们大多数人的工作、生活影响颇为深远。CPU是现代计算机的核心部件&#xff0c;又称为“微处理器”。对于PC而言&#xff0c;CPU的规格与频率常常被用来作为衡…

怎样使用Eclipse来开发Android源码

怎样使用Eclipse来开发Android源码 用eclipse&#xff0b;ADT作为android开发工具&#xff0c;可以说是很方便的&#xff0c;在HelloActivity小程序里我们就感觉到eclipse功能的强大。那么&#xff0c;我们可以用 eclipse来开发android源码吗&#xff1f;如果我们直接把android…

解析:GE工业互联网平台Predix

来源&#xff1a;赛迪智库摘要&#xff1a;当前&#xff0c;工业互联网平台作为我国构建工业互联网生态的核心载体&#xff0c;成为推动制造业与互联网融合的重要抓手。早在2012年GE提出工业互联网的概念&#xff0c;随后推出Predix&#xff0c;要将GE在工业领域的技术设备硬件…

小甲鱼 OllyDbg 教程系列 (十三) : 把代码和变量注入程序 以及 硬件断点

小甲鱼 OllyDbg 视频教程&#xff1a;https://www.bilibili.com/video/av6889190?p21 程序下载地址&#xff1a;https://pan.baidu.com/s/1A4-BDgbdUgy-cmI4IMMzYw 提取码&#xff1a;jsdv 开始&#xff0c;按照惯例&#xff0c;首先用 PEiD 打开&#xff0c;看下是什么语…

Guava入门~CacheBuilderSpec

示例 package bbejeck.guava.chapter6.cache;import bbejeck.guava.common.model.TradeAccount; import bbejeck.guava.common.service.BookServiceImpl; import bbejeck.guava.common.service.TradeAccountService; import com.google.common.base.Ticker; import com.google…

初识C#

Timer转载于:https://www.cnblogs.com/changweihua/archive/2011/03/07/1974171.html

小甲鱼 OllyDbg 教程系列 (十四) : 模态对话框 和 非模态对话框 之 URlegal 和 movgear

小甲鱼 OD 使用教程&#xff1a;https://www.bilibili.com/video/av6889190?p22 exeScope 下载&#xff1a;https://pan.baidu.com/s/1dSWapltdQsX9ttl_lSoq_g 提取码&#xff1a;yz2p URlegal 下载&#xff1a;https://pan.baidu.com/s/1Ljbvsnk_1Ps0e-cp7a1F9A 提取码…

这两年的人工智能淘金热 真正赚钱的公司是这几家

编译&#xff1a;网易智能人工智能已经成为人们热捧的对象&#xff0c;正在我们中间掀起一股“淘金热”&#xff0c;但真正从中获得经济利益的人是谁呢&#xff1f;是那些争相成为淘金者的大多数创业公司吗&#xff1f;是那些广泛从事“掘金业务”的公司吗&#xff1f;还是那些…

Swiftfox:极速的冲浪体验

Toy Posted in Apps将 Firefox 针对特定的处置惩罚器进行优化之后&#xff0c;便成了 Swiftfox。行使 Swiftfox&#xff0c;无论是启动次第本人&#xff0c;还是阅读网站内容&#xff0c;都能让你觉取得一股强烈的极速之风。更爽的是&#xff0c;你之前所用的 Firefox 设置、主…

小甲鱼 OllyDbg 教程系列 (十五) : 逆向注册机简单算法

小甲鱼 OD 教程&#xff1a; https://www.bilibili.com/video/av6889190?p24 KeygenMe 下载地址&#xff1a;https://pan.baidu.com/s/1gXAscM3WCNpIqxIm5t1rrQ 提取码&#xff1a;z5in 前言 用 OD 打开程序 输入框 常用 API&#xff0c;当不知道是哪个时&#xff0c;可…

以大自然为师,可上天入地的11款仿生机器人

来源&#xff1a;资本实验室尽管人类已经借助科技的力量改造了世界&#xff0c;但许多技能仍然为人类所不拥有&#xff0c;很多恶劣的环境仍然是人类的禁区。而经过大自然的“公平选择”&#xff0c;使得某些生物具有我们所不具备的独特“技能”“&#xff0c;也适合在人类难以…

Guava入门~CacheStats

构建缓存对象时调用recordStats()&#xff0c;指定可以做缓存统计 LoadingCache<String,TradeAccount> tradeAccountCache CacheBuilder.newBuilder().recordStats() 获取缓存统计结果 CacheStats cacheStats cache.stats(); 示例 package bbejeck.guava.chapter6…