软件逆向之陌路寻踪:突破未注册版软件的限制功能

摘要:试图对一个“太监版”的程序进行完整化,也就是把限制的功能恢复,把阉割的功能添加等等。

试验软件:PixtopianBook.exe (一个通讯录软件)

试验软件来源:www.fishc.com

打开原始程序运行,观察界面:

这是一个通讯录软件,老外写的,很显然,当前是未注册版,试验后发现有功能限制,限制是只能有三个分组,每组不能超过4个人。也就是说,你用未注册版,联系人只能有12个人啊有木有!!太坑爹了!

咳咳!为了我的朋友们都能装进这个通讯录,为了我想借钱的时候不至于只能联系到几个朋友,我决定一定要破解掉这个软件!载入OD(Ollydbg),开始调试它吧。

一 异常处理

打开PixtopianBook.exe后F9直接运行,发现有异常提醒,用shift+F9忽略异常。或者如下图进行设置:

在调试选项里添加异常范围,因为是32位操作系统,所以00000000-FFFFFFFF就是整个内存段了。此时再打开程序,就没有异常出现了。

二 突破【限制人数】功能

在OD运行弹出的软件界面试图添加第5个人,出现错误提示box,如下图:

不建议大家看到有messagebox就直接去搜索API,通过API和字符串入手,观察上下,尝试爆破。因为现在的程序设计的聪明了,使用间接地调用:先调用一个自己的进程,在进程里再调用messagebox来混淆视听,避免破解。

正确方法:此时在OD中按下暂停(暂停后OD中的地址跳至动态链接库,即系统领空处),然后按ALT+F9返回到用户,在用户界面点击确定后,OD中就返回到程序接管,地址跳转到下图的位置:

图中的MessageBoxA就应该是刚才的错误提示框了,F8到retn,返回到函数(函数调用之后碰到ret返回),如下图:

(相应修改方法在图中已标识)

上图即我们定位到的“人数添加限制”的关键代码处,只需将JL跳转指令修改为JMP,让程序跳过MessageBox的执行,添加人数的限制就会被突破喽!

注意:ret返回后,在上方又有一个call,说明在此处是间接地调用messagebox。

修改后保存。载入后已经可以突破人数添加的限制了。如下图:

哈哈,到此,第一个限制功能就被破解了!

三 突破【分组限制】功能

破解方法和突破人数限制一样,修改后如下图,可以添加无限制的分组了:

到此为止呢,程序的两个限制功能已经被成功爆破了,但是还有几处UNREGISTED看着碍眼,嘿嘿,接着把碍眼的地方除掉吧。

四 标题修改

接下来将几处”unregistered version”字符查找并修改:

方法1:查找所有参考文本字串→查找文本“unregistered version”→跟随到代码处,找到在内存中的地址→在数据窗口中修改保存。

方法2:直接点击Memory→Ctrl+B查找→修改后记住字符串在内存中的地址,到OD的数据窗口保存。【建议用这种方法】

注意:修改时记得【保持大小】,不然会出错。

修改之后的图片如下:

好了,所有修改完毕,展示下完整的破解版本吧,请看下图:

终于的终于,可以无限制的多添加几个朋友了,大家又可以一起愉快的玩耍了。

注:本次试验参考于小甲鱼的【OD调试视频教程】,感谢小甲鱼老师的无私奉献,让更多的人快乐的学习逆向。

* 作者/Drops@ZUT,转载请注明来自FreeBuf黑客与极客(FreeBuf.COM)

原文发布于微信公众号 - FreeBuf(freebuf)

原文发表时间:2015-05-04

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏全华班

微信、支付宝、银联支付sdk组件

该组件为封装了 微信,支付宝,银联支付, 一键快速集成,几行代码即可集成 微信,支付宝,银联支付。

2672
来自专栏FreeBuf

第一只WiFi蠕虫的诞生:完整解析博通WiFi芯片Broadpwn漏洞(含EXP/POC)

过去的几个月里,Android 和 iOS 数十亿台设备中都曾出现过可怕的 WiFi 远程代码执行漏洞 BroadPwn。谷歌 7 月初发布了修复补丁,而苹果则...

4907
来自专栏编程

武哥自学Python笔记(一)

最近Python被各大培训机构炒的火热,好像离开Python这个世界就不能运转一般,恰恰这个时候浙江省信息技术课程改革方案出台,Python确定进入浙江省信息技...

2258
来自专栏Android-JessYan

解决Retrofit多BaseUrl及运行时动态改变BaseUrl?

原文地址: http://www.jianshu.com/p/2919bdb8d09a

2703
来自专栏张戈的专栏

WordPress后台首页显示RSS错误的解决办法

这两天,麻烦不断,可能是因为我折腾的比较频繁吧!老是出现奇奇怪怪的问题,而且百度、GG 居然搜不到有用的解决办法!折腾了大半天,终于被我搞定,虽然还是很笨的方法...

3946

内存数据网格主要特性简介

将主存储器用作存储区域而不是使用磁盘是并不是一种全新的尝试。你可以在日常生活中发现许多使用主内存DBMS(数据库管理系统)(MMDB)执行比磁盘快得多的情况。一...

4024
来自专栏ImportSource

并发编程-并发的简史

1.1.A(Very)Brief History of Concurrency 并发的简史 在很久以前,计算机没有操作系统;他们只执行一个程序,从头到尾的执行...

3747
来自专栏木头编程 - moTzxx

小程序 微信退款功能实现讲解 (PHP方式)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011415782/article/de...

4802
来自专栏北京马哥教育

【Zabbix】中小型企业Zabbix监控实战之告警大全

转载声明:本文转载自「数睿技术」 前言 本篇文章介绍目前常用的告警方式,以及对功能实现做讲解。本篇文章中出现的代码片段可以回复"监控脚本"获取完整代码。 ...

47410
来自专栏web前端教室

WEB前端架构(三)

先跟关注我的各位说声抱歉,快一周没更新了。 实在是因为太忙了,最近周末在忙装修的事,周内又要加班。 因为是新公司嘛,本来就忙,三天前又被临时抓去写一个手机微信上...

20710

扫码关注云+社区

领取腾讯云代金券