安卓逆向分析笔记---002

这次与上次的软件很像,不过这次里面是输入的注册码~

【所需工具】Androidkiller、Unicode工具

【用例下载链接】链接:(简单2)https://pan.baidu.com/s/1wsoKyF4HvTdfq3N2zWIlIw 提取码:bnp1

【开始操作】

与上次一致,将APK拖到AndroidKiller里面,反编译完成后点击“工程管理器”,与上次分析一样,双击打开AndroidManifest.xml,如下图

根据路径找到第一启动类,点开Java源码看代码,如下图

实际上我们已经可以看到注册码就是“写个CM都很难啊”,当然可以直接输入这个注册成功,但是我希望的是什么都不输入就能注册成功,所以我打算去改判断的内容,我在MainActivity.smali里面没有看到相关的Unicode码,所以只能搜索,我先打开Unicode工具将以下几项设置好,输入“写个CM都很难啊”,如下图

将Unicode码区的内容复制,重新返回AndroidKiller,点击左侧工程搜索,在字符框粘贴复制的内容,下面设置成如下图所示,点击搜索

emmmmmm…,换个字符串试试

搜索到一行数据,点开打开看看

可以看到左下角有解码后的翻译,向上翻,发现了这行Unicode码

为什么之前没有搜索到?emmmmmmm,比较一下

原来是“CM”没有被翻译过来,所以才会搜索不到,那就直接看这里

简单的翻译一下
const-string v1, “\u5199\u4e2aCM\u90fd\u5f88\u96be\u554a” #将“写个CM都很难啊”的字符串赋值给V1

invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z #调用equals方法比较V0与V1的值是否相等

move-result v0 #返回一个布尔值传给V0(V0、V1相等就等于1,不相等就等于0)

if-eqz v0, :cond_0 #如果V0等于0,就跳转到cond_0(cond_0后面的内容是注册失败)

【修改方法一】

1
2
3
4
5
6
7
const-string v1, "\u5199\u4e2aCM\u90fd\u5f88\u96be\u554a"

invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

move-result v0

if-eqz v0, :cond_0

修改为:

1
2
3
4
5
6
7
8
9
const-string v1, "\u5199\u4e2aCM\u90fd\u5f88\u96be\u554a"

invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

move-result v0

const\4 v0,0x1

if-eqz v0, :cond_0

【修改方法二】

1
2
3
4
5
6
7
const-string v1, "\u5199\u4e2aCM\u90fd\u5f88\u96be\u554a"

invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

move-result v0

if-eqz v0, :cond_0

修改为:

1
2
3
4
5
6
7
const-string v1, "\u5199\u4e2aCM\u90fd\u5f88\u96be\u554a"

invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

move-result v0

if-nez v0, :cond_0

【修改方法三】(分析认为可以这样修改,目前没有试过)

1
2
3
4
5
6
7
const-string v1, "\u5199\u4e2aCM\u90fd\u5f88\u96be\u554a"

invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

move-result v0

if-eqz v0, :cond_0

修改为:

1
2
3
4
5
6
7
const-string v1, "\u5199\u4e2aCM\u90fd\u5f88\u96be\u554a"

invoke-virtual {v1, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

move-result v0

if-eqz v0, :cond_0

参考文献:
安卓逆向分析笔记—-002
https://www.52pojie.cn/thread-886046-1-1.html
(出处: 吾爱破解论坛)

问答:

  • androidkiller搜索字符串下的“搜索”按钮后的小三角点开可以直接转unicode。
------------------------ The End ------------------------
0%