吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

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

[Android 原创] 一次安卓抓包引发的加密算法分析

  [复制链接]
马上二楼 发表于 2016-6-8 21:28
抓了一个小说APP的数据包,发现居然是加密的,于是开始了不要脸的破解之路。。。(为了保护小说权益,这里不提供小说APP的名字)
1.png
2.png
可以看见,被猥琐的加密了~第一眼一看是base64加密,很明显解密是乱码,看样子并没有那么简单
由于密文里有一个很关键的词语“ChapterContent”,用APK改之理进行搜索,找到了可疑代码

3.png
,进行反编译之后变成了
4.png
然而卵,并没有什么有用的代码~
于是我一直往下看, 5.png
发现一句代码“afu.decode(afm.cm(str1,0),"UTF-8")”有可疑,因为有“decode”这种敏感词语!
非常有可能是加密算法哦~
于是继续往下看。。失望了,只是个简单的编码转换而已
6.png
但是好像还有个afm.cm没有看!于是继续看代码!~
7.png
参数是String类型,返回了String类型,看里面的代码,层层循环,非常可能是加密算法!!!
但是“for(;;)”是什么鬼!根本运行不了,编译器各种错误!
于是我找出了它的smail代码:
[Asm] 纯文本查看 复制代码
.method public static cm(Ljava/lang/String;)Ljava/lang/String;
    .locals 7
    .prologue
    const/16 v6, 0x7a
    const/16 v5, 0x5a
    .line 7
    invoke-static {p0}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
    move-result v0
    if-eqz v0, :cond_0
    .line 8
    const-string/jumbo v0, ""
    .line 29
    :goto_0
    return-object v0
    .line 11
    :cond_0
    new-instance v2, Ljava/lang/StringBuilder;
    invoke-direct {v2, p0}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
    .line 13
    invoke-virtual {v2}, Ljava/lang/StringBuilder;->length()I
    move-result v3
    .line 14
    const/4 v0, 0x0
    move v1, v0
    :goto_1
    if-ge v1, v3, :cond_3
    .line 15
    invoke-virtual {v2, v1}, Ljava/lang/StringBuilder;->charAt(I)C
    move-result v0
    .line 16
    const/16 v4, 0x41
    if-gt v4, v0, :cond_2
    if-gt v0, v5, :cond_2
    .line 17
    add-int/lit8 v0, v0, 0xd
    int-to-char v0, v0
    .line 18
    if-le v0, v5, :cond_1
    .line 19
    rem-int/lit8 v0, v0, 0x5a
    add-int/lit8 v0, v0, 0x41
    add-int/lit8 v0, v0, -0x1
    int-to-char v0, v0
    .line 27
    :cond_1
    :goto_2
    invoke-virtual {v2, v1, v0}, Ljava/lang/StringBuilder;->setCharAt(IC)V
    .line 14
    add-int/lit8 v0, v1, 0x1
    move v1, v0
    goto :goto_1
    .line 21
    :cond_2
    const/16 v4, 0x61
    if-gt v4, v0, :cond_1
    if-gt v0, v6, :cond_1
    .line 22
    add-int/lit8 v0, v0, 0xd
    int-to-char v0, v0
    .line 23
    if-le v0, v6, :cond_1
    .line 24
    rem-int/lit8 v0, v0, 0x7a
    add-int/lit8 v0, v0, 0x61
    add-int/lit8 v0, v0, -0x1
    int-to-char v0, v0
    goto :goto_2
    .line 29
    :cond_3
    invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
    move-result-object v0
    goto :goto_0
.end method

经过长时间反复搓拿,终于看出了正确的代码!
[Java] 纯文本查看 复制代码
	public static String cm(String s)
    {
        if("".equals(s))
            return "";
        StringBuilder stringbuilder = new StringBuilder(s);
        int i = stringbuilder.length();
        int j = 0;
        while(j < i) 
        {
            char c = stringbuilder.charAt(j);
            if('A' <= c && c <= 'Z')
            {
                c += '\r';
                if(c > 'Z')
                    c = (char)(-1 + (65 + c % 90));
            } else
            if('a' <= c && c <= 'z')
            {
                c += '\r';
                if(c > 'z')
                    c = (char)(-1 + (97 + c % 122));
            }
            stringbuilder.setCharAt(j, c);
            j++;
        }
        return stringbuilder.toString();
    }

放进eclipse里运行一下,结果正确,成功解密!
8.png 9.png
于是一段没心没肺的破解之旅告一段落~
(曾经我破解过360免费wifi的算法,结果追踪一段发现居然调用了so文件,我直接萎了~)

免费评分

参与人数 5威望 +1 吾爱币 +1 热心值 +4 收起 理由
呼啦啦20160313 + 1 谢谢@Thanks!
a3362613 + 1 我很赞同!
XhyEax + 1 23333333333
qtfreet00 + 1 + 1 太简单了,鼓励下
梦游枪手 + 1 用心讨论,共获提升!

查看全部评分

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

xiaob 发表于 2016-6-8 21:36
书旗小说
 楼主| 马上二楼 发表于 2016-6-8 21:37
hlrlqy 发表于 2016-6-8 21:51
这..FOR是反编译的问题,不用NetBeans差评,算法这么简单,这应该是
xingyuwan 发表于 2016-6-8 22:07
这个高难度...还看不懂.
missjx137600 发表于 2016-6-8 22:47
马上二楼 发表于 2016-6-8 21:37
你狠,怎么看出来的???

网站logo没打码
时光大大 发表于 2016-6-8 22:53
虽然看不懂 但还是支持一下
黑山走天涯 发表于 2016-6-8 23:24
不错学习了!
a563791453 发表于 2016-6-9 00:04
这个高难度...还看不懂.
wangqiustc 发表于 2016-6-9 00:22
这个就有点厉害了
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-11-24 23:05

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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