GPS Pro v1.3(beta6)爆破笔记
本帖最后由 世事繁华皆成空 于 2015-5-11 19:00 编辑原创:世事繁华皆成空
工具:ApkIDE,apk逆向助手,Notepad++原程序下载地址:http://apk.r1.market.hiapk.com/data/upload/apkres/2015/5_11/17/com.pksqs.projectgps_051308.apk
软件介绍:GPS Pro 包括西安80、北京54等坐标系的时时转换显示,支持3参数的设置,支持显示当前坡度、坡向、海拔、中央经线、带号、一万图幅号、五万图幅号等信息,支持手持GPS的记录航点航迹和计算面积周长功能,支持数据交流和地图加载功能。
先看一下软件,任何破解不可能上来就反编译,大家应该先使用一下,找到一些可能有用的关键点,去广告亦是如此
搜索关键词,“注册码错误”
来到java代码下,看到变量只有相等时才不会跳转失败,这地方我们不考虑算法,直接爆破,修改一下跳转
将eqz改成nez,这样就不会跳转到失败函数下了,我们回编译试试,因为我之前修改的时候一直回编译失败,所以采用提取dex文件反编译后用Notepad++修改,做教程时直接回编译成功了,这里就直接使用ApkIDE修改了
我们任意输入一个注册码,我输入了“1”,提示注册成功,很开心:)
不过我们再次开启软件后,提示“试用已到期”
看来软件有启动验证,我们再搜索关键词“试用已到期”
iget v5, p0, Lcom/pksqs/projectgps/DisplayActivity;->isPro:I
if-eqz v5, :cond_1
iget v5, p0, Lcom/pksqs/projectgps/DisplayActivity;->isPro:I
if-ne v5, v8, :cond_2
:cond_1
iget v5, p0, Lcom/pksqs/projectgps/DisplayActivity;->isReg:I
if-eq v5, v8, :cond_2
.line 1725
const-string v5, "\u8bd5\u7528\u5df2\u5230\u671f\uff0c\u8bf7\u6ce8\u518c\uff1a"
invoke-direct {p0, v5}, Lcom/pksqs/projectgps/DisplayActivity;->sign(Ljava/lang/String;)V
这里有两个对软件版本的验证,如果是isPro,则不跳转,如果不是,则跳转到“试用已到期”,我们直接删除判断if-eqz v5, :cond_1这行,并将下面两个跳转强制跳转到:cond2
我们回编译试试
再次安装,唉,不提示软件过期了
不过当我们来到“关于”下,唉,好像有什么不对
看来我们并没有成功,让我们再看一下代码,我们发现刚刚有一行代码我们并没有重视
iget v5, p0, Lcom/pksqs/projectgps/DisplayActivity;->isReg:I
那我们搜索isReg,字眼也能看得出是判断是否已经注册,
第一个是定义变量,不用理会,我们看第二个,并来到方法的开始处
我们看到是constructor<init>,这是软件默认会加载的方法,看来我们之所以破解失败就是这个地方引起的,那我们再看到isReg处
iput v4, p0, Lcom/pksqs/projectgps/DisplayActivity;->isReg:I
我们看到这个地方调用了v4变量,我们找到v4的定义
看到此处的v4定义的-0x1,也就是-1(-1就是未注册,有的时候会用0来表示未注册),那我们修改为0x1,回编译
over,教程结束{:301_998:}
:lol下次帮爱盘打广告吧,先写上所用工具爱盘下载:http://down.52pojie.cn/Tools/Android_Tools/
原版程序也提供下,方便大家练习。 http://attach.52pojie.cn/forum/201505/08/231558a8ot4y9j951y5ven.png
里面的数字变化,0x1变成0x2,还删除了一句,.line77改成.line117,下面的那一句也改成了cont。。。。
http://attach.52pojie.cn/forum/201505/08/231810naazav4a9al4j4lr.png
楼主能不能详细说明一下什么意思啊。。。 支持我是沙发么 需要学习的有很多 真是厉害!!! 楼主辛苦了,下来看看再说 经典教程啊。。。。。。。。。学习了。。。。。。 赞一个!学到了一些东西。 很棒的说,支持一个先
页:
[1]
2