安卓逆向工程--针对授权key方式的破解

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

安卓逆向工程–修改smali实现软件破解

本篇博客重点介绍基于--授权key方式的破解

1 简介

所谓授权key就是指软件通过安装在手机里的授权apk,实现各种高级功能。 而我们的目的就是不去安装授权apk从而实现使用高级功能。

2 开始分析

环境是Android Killer 1.3.1,

这是我们需要逆向的apk,如果不破解,我们默认只有免费版本,而后两项不显示这里写图片描述

3分析MainActivity.smali

  1. 通过Android知识我们知道,在启动的时候会默认执行onCreate方法,于是定位到
    .method public onCreate(Landroid/os/Bundle;)V

2.因为使用高级版必然会更改title和Button,所以我们定位到这里

:cond_0
:goto_0
invoke-virtual {p0, v0}, Lcom/droider/free/MainActivity;->getString(I)Ljava/lang/String;

move-result-object v1

.line 36
.local v1, "titleString":Ljava/lang/String;
invoke-virtual {p0, v1}, Lcom/droider/free/MainActivity;->setTitle(Ljava/lang/CharSequence;)V`

这里的重点就是v0,我们看到底是谁调用了cond_0

我们找到了这里

`
:cond_2
const v2, 0x7f030001

invoke-direct {p0, v2}, Lcom/droider/free/MainActivity;->getAppKey(I)Ljava/lang/String;

move-result-object v2

invoke-direct {p0, v2}, Lcom/droider/free/MainActivity;->decryptAppKey(Ljava/lang/String;)I

move-result v0

.line 32
if-nez v0, :cond_0`

发现重点就是decryptAppKey这个函数,我们看谁调用了它

`

invoke-direct {p0, v2}, Lcom/droider/free/MainActivity;->decryptAppKey(Ljava/lang/String;)I

move-result v0

.line 32
if-nez v0, :cond_0


发现decryptAppKey也跳转到了cond_0,至此我们大概就明白了
decryptAppKey`的功能,返回值是int最可能的就是返回资源id,然而他的参数是什么意思呢?我们暂且不去关注他,只要让她返回我么需要的资源id就行

`

const v1,0x7f040003
return v1

.line 114
:catch_0
move-exception v0

.line 115
.local v0, "e":Ljava/lang/Exception;
invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V

.line 116
const v1, 0x7f040003

goto :goto_0`

把返回包含异常全部改为0x7f040003即可

在onCreat方法里有

`

invoke-direct {p0}, Lcom/droider/free/MainActivity;->checkappKey()Z

move-result v2

if-nez v2, :cond_2`

点进去看这个函数,返回boolean这个类型,作用就是看你手机里是否存在key文件,如果不存在,就使用免费版,我们把他的返回值全部为1即可

`

:cond_0
const/4 v1, 0x1

.line 93
:goto_0
return v1

:cond_1
const/4 v1, 0x1`

总结

我们一共只操作了两个函数,checkappKeydecryptAppKey,前者的逻辑较为简单,后者一开始不理解传入参数是String类型是什么作用,在这里卡主了很长时间,后来发现调用这个函数的,只关注他的返回值,也就是我们的资源id,那我们为何不只修改它的返回值呢?后来看java代码发现
String类型是加密后的字符,去研究也没有作用。

源码下载

http://pan.baidu.com/s/1eRDzykq

展开阅读全文

没有更多推荐了,返回首页