吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 6568|回复: 20
收起左侧

[Android 原创] 安卓逆向分析笔记---002

  [复制链接]
什么都只会一点 发表于 2019-3-4 08:21
本帖最后由 什么都只会一点 于 2019-3-9 19:44 编辑

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

【所需工具】AndroidKiller、Unicode工具

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

【开始操作】
与上次一致,将APK拖到AndroidKiller里面,反编译完成后点击“工程管理器”,与上次分析一样,双击打开AndroidManifest.xml,如下图
01.png
根据路径找到第一启动类,点开Java源码看代码,如下图
02.png
实际上我们已经可以看到注册码就是“写个CM都很难啊”,当然可以直接输入这个注册成功,但是我希望的是什么都不输入就能注册成功,所以我打算去改判断的内容,我在MainActivity.smali里面没有看到相关的Unicode码,所以只能搜索,我先打开Unicode工具将以下几项设置好,输入“写个CM都很难啊”,如下图
03.png
将Unicode码区的内容复制,重新返回AndroidKiller,点击左侧工程搜索,在字符框粘贴复制的内容,下面设置成如下图所示,点击搜索
04.png
emmmmmm…,换个字符串试试
05.png
06.png
搜索到一行数据,点开打开看看
07.png
可以看到左下角有解码后的翻译,向上翻,发现了这行Unicode码
08.png
为什么之前没有搜索到?emmmmmmm,比较一下
09.png
原来是“CM”没有被翻译过来,所以才会搜索不到,那就直接看这里
10.png
简单的翻译一下
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后面的内容是注册失败)

【修改方法一】
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

修改为:
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

【修改方法二】
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

修改为:
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

【修改方法三】(分析认为可以这样修改,目前没有试过)
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

修改为:
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

--------------------------------------------------------------------------------------------

安卓逆向分析笔记---003:https://www.52pojie.cn/thread-888820-1-1.html

免费评分

参与人数 3吾爱币 +8 热心值 +2 收起 理由
564462107 + 1 我很赞同!
izhttty + 1 + 1 热心回复!
qtfreet00 + 6 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

renyangyu 发表于 2019-3-13 16:21
本帖最后由 renyangyu 于 2019-3-13 16:22 编辑
什么都只会一点 发表于 2019-3-13 07:36
现在像这种登录写在本地的很少,大部分软件都有服务器,然后那些有注册机的软件,一般都会有各种壳,很麻 ...

但是论坛上好多软件也是要注册账号  都被改成了无需登录即是vip,只是没有一个逆向相关教程,是服务器反馈有没有会员,我觉得本地验证是一个突破口,不管服务器返回数据是什么,本地都返回vip返回的动作。比如之前有人发布的一款软件,在支付页面返回,无论是否支付都是返回成功。这个思路可能很简单 ,找这个爆破点很麻烦,您是这个意思么?
 楼主| 什么都只会一点 发表于 2019-3-13 23:58
renyangyu 发表于 2019-3-13 16:21
但是论坛上好多软件也是要注册账号  都被改成了无需登录即是vip,只是没有一个逆向相关教程,是服务器反 ...

除非是动态分析,要不然自己找起来确实需要大量分析,一般都是以大牛的经验总结来快速定位判断的位置,进行修改
ilig33 发表于 2019-3-4 08:55
丶那年如此年少o 发表于 2019-3-4 09:41
androidkiller搜索字符串下的“搜索”按钮后的小三角点开可以直接转unicode。
yaoyao7 发表于 2019-3-4 09:42
继续,我速度好像跟你差不多
 楼主| 什么都只会一点 发表于 2019-3-4 09:45 来自手机
丶那年如此年少o 发表于 2019-3-4 09:41
androidkiller搜索字符串下的“搜索”按钮后的小三角点开可以直接转unicode。

开始没发现这个功能,后来才知道的,哈哈哈,很尴尬
嘟嘟侠 发表于 2019-3-4 09:59
很详细,感谢楼主
byh3025 发表于 2019-3-4 10:06
我也认为方法三可行,得实际操作验证下
netle8 发表于 2019-3-4 14:17
学习了,感谢分享!
FENGMUTIAN 发表于 2019-3-4 14:54
前来学习
无影扫地僧 发表于 2019-3-6 06:57
好好学习。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-5-12 13:31

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表