吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 76179|回复: 417
收起左侧

[Android 原创] 白嫖9999天VIP会员,某APP之AES加解密+一些小分析

    [复制链接]
闷骚小贱男 发表于 2021-1-25 16:37
本帖最后由 闷骚小贱男 于 2022-2-8 15:14 编辑

前排提示!!!!!

论坛禁止留联系方式!!
禁止求成品,也没有成品!
禁止求名字,也不会发。。


写在前面的话

1.这个APP是无法通过fd直接抓包的(不过httpcanary可以,但是不太习惯手机一直粘贴复制),所以要想办法让fd可以抓到包,就用到了Drony
2.但是Drony我在模拟器中测试是无法转发的。。(也可能是我的模拟器版本不太对?或者是不支持?反正操作是一样的。。最后在手机上成功了)
3.当然也可以直接用模拟器一键新机来弄邀请。这个简单。。也不用看下面的一大堆字和图了。。
4.vmos+XP框架+应用变量也能达到免root换机的功能...(PS:市面上还有很多的多开软件均可免root换机)
1.1.一键换机.png


本贴用到的工具

1.反编译:jadx+mt管理器(mt管理器/NP管理器/Androidkiller等等别的工具均可)[jadx看java,mt用来修改APP]
2.抓包:fiddler+Drony(因为fd抓不到包,所以加个Drony,稍后由简单的说明)
3.加解密网站(由于可能会...所以这里就不贴了)


fiddler+Drony抓包

注意:本方法仅限http,https可能需要证书或者别的操作

配置Drony

2.打开APP,右滑到“settings”页面
1.0.drony设置.png
3.点击“wi-fi”
1.0.1.drony设置.png
4.Network list中选择当前wifi
1.0.2.drony设置.png
5.配置fd的ip地址和端口后修改“Proxy type”为手动“Manual”
1.0.3.drony设置3.png
6.代{过}{滤}理格式“Proxy type”默认为“http”
7.“Rules”规则设置
1.0.4.drony设置4.png
点击Rules,点击右上角的+号
Action选择Local proxy chain
Application选择想要抓包的APP
然后点击右上角的保存
1.0.5.drony设置5.png
8.返回首页LOG页面点击OFF开启
9.打开APP,你会发现FD有数据包了


抓包+分析实操

打开APP并看fd的包

[PS:如果不是第一次打开,最好清空下应用数据,免得有一些数据找不到是哪出现的]
2.1fd包.png
一看一大堆数字字母就是加密过的密文,所以我们要想办法解密密文。

接口 分析 提交类型 提交参数
app/ping 类似cmd的ping,查看是否可用 post _data=B025A5C8C19162309523E7810179E92C
app/info 应该是获取app的信息 post _data=太长。。用XX替换

分析_data

2个接口都有_data字符串,所以我们可以在jadx(或MT/NP等,以下用jadx代替)中搜索"_data
2.2jadx搜data.png
发现两个相关的

    public static PostRequest a(String str, HashMap<String, String> hashMap) {
        String str2;
        HttpParams httpParams = new HttpParams();
        try {
            JSONObject jSONObject = new JSONObject();
            for (Map.Entry<String, String> entry : hashMap.entrySet()) {
                jSONObject.put(entry.getKey(), entry.getValue());
            }
            str2 = jSONObject.toString();
        } catch (Exception e) {
            e.printStackTrace();
            str2 = "";
        }/* str2的处理方法 */
        p.a("request-post==>" + str, str2);
        httpParams.put("_data", a.a(str2, a.a, a.b), new boolean[0]);/* 搜到的_data */
        return (PostRequest) a(str).params(httpParams);
    }

那么这个a.a应该就是加密的函数,str2应该就是明文,那么我们看看a.a和a.b是什么?
[PS:跳这里的a.a能看到是"AES/CBC/PKCS5Padding"加密]

a.a

右键a.a跳到声明,

public class a {
    public static final String a = o.a();/* a.a */
    public static final String b = o.b();/* a.b */
    /* 以下省略老多代码 */
}

可以看出a.a是由o.a()生成,而a.b是由o.b生成,我们再跳o.a和o.b,发现代码

public final class o {
    public static final String a() {/* o.a */
        byte[] a = com.jpdfh.friendly.http.a.a.a("34656664336636303630653230333332");
        c.a((Object) a, "AesEncryptionUtil.hex2byte(UrlGroup.enKEY)");
        Charset defaultCharset = Charset.defaultCharset();
        c.a((Object) defaultCharset, "Charset.defaultCharset()");
        return new String(a, defaultCharset);
    }

    public static final String b() {/* o.b */
        byte[] a = com.jpdfh.friendly.http.a.a.a("35323532303266393134396530363177");
        c.a((Object) a, "AesEncryptionUtil.hex2byte(Constants.enIV)");
        Charset defaultCharset = Charset.defaultCharset();
        c.a((Object) defaultCharset, "Charset.defaultCharset()");
        return new String(a, defaultCharset);
    }

    public static final String c() {/* o.c */
        byte[] a = com.jpdfh.friendly.http.a.a.a("35313532303266393134396530363161");
        c.a((Object) a, "AesEncryptionUtil.hex2byte(UrlGroup.CHANNEL_KEY)");
        Charset defaultCharset = Charset.defaultCharset();
        c.a((Object) defaultCharset, "Charset.defaultCharset()");
        return new String(a, defaultCharset);
    }
}

o.a可以看出是AES的KEY,o.b是AES的IV偏移。o.c是CHANNEL_KEY暂时先不看他(因为AES解密有key和iv就够了。。)
那么一长串的34656664336636303630653230333332是什么东西呢?我们继续看com.jpdfh.friendly.http.a.a.a这个函数

    public static byte[] a(String str) {
        if (str == null || str.length() < 2) {
            return new byte[0];
        }
        String lowerCase = str.toLowerCase();
        int length = lowerCase.length() / 2;
        byte[] bArr = new byte[length];
        for (int i = 0; i < length; i++) {
            int i2 = i * 2;
            bArr[i] = (byte) (Integer.parseInt(lowerCase.substring(i2, i2 + 2), 16) & 255);
        }
        return bArr;
    }

因为小弟自学的java也不咋地,只能借用e4a的接口函数调用com.jpdfh.friendly.http.a.a.a了。
2.3.e4a.png
[PS:搞到后来才想起逍遥一仙大佬说的易语言:HEX解码,结果一试。。果然是这个,哈哈,用e4a还浪费了点时间]
[PS:直到发帖的时候,才想起来,e4a也有类似的HEX解码的方法:十六进制到字节集,有点小尴尬。。。。]

调试输出 (到文本 (HEX解码 (“34656664336636303630653230333332”))) ' 易语言
字节到文本(十六进制到字节集(“34656664336636303630653230333332”),"utf-8") 'e4a

小小总结下a.a加密函数

a.a(str2, a.a, a.b)

参数 内容 最后结果 备注
str2 需要加密的明文
a.a o.a()=HEX解码('34656664336636303630653230333332') 4efd3f6060e20332 key
a.b o.b()=HEX解码('35323532303266393134396530363177') 525202f9149e061w iv

解密_data和返回的data

用在线AES解密或者易语言的e2ee成功解密
解密_data:
2.4.解密.png
解密返回的app/info返回的data:
2.5.解密data.png
可以看出app/info返回了accessToken/userId/username/expiresIn/ads广告等信息。

填写邀请码user/bind

通过抓包我们发现user/bind中的加密参数XXXXXXXX,解密结果为{"code":"XXXXX"}

小小的分析一波

输入邀请码的时候只提交了code邀请码,那是怎么判断是哪一个用户提交的邀请码呢?我们看header

key Value 来源
access-token 67XXXXXXXXXXXXXe5 /app/info中解密的来
app-key ytg548ouyxnaq9 反编译APP,值是固定的
device-id 86XXXXXXXXXX32 用户手机的imei

接下来就可以编写注册+刷邀请的软件咯


注册+邀请软件

【PS:请自己动手。。】
1.抓包分析提交的参数和网址
2.结合编程工具伪造imei等参数,生成新用户
3.新用户填写邀请码..

我用的是易语言编程....很简单
22222.gif


体现在APP上是这样的

2.9到期时间.png


下载区

e4a语言_接口函数
之HEX解码源码,密码:52pj 下载: https://wwa.lanzoui.com/iBUWwktcwad
之HEX解码成品,密码:52pj 下载: https://wwa.lanzoui.com/iAimqktf9oh


APP的另外一些小小的分析

APP中的base64图片处理

这个APP的图片处理稍微有点意思,以前见过的APP都是直接data:image/jpeg;base64
而这个APP的图还出现了$$ ## ^^等字符
我们搜"## 发现
2.6图片替换.png

    public static String a(String str) {
        return str.replace("**", "=").replace("$$", "J").replace("##", "H").replace("^^", "A");
    }

替换之后再解码,真正的图片就出现了


关于m3u8下载

还记得解密data的时候的图吗?
Referer: http://www.qq.com
记得要加Referer来源。。。


关于APP下载视频

抓包发现会通过dodownload判断是否允许下载视频
通过AutoResponder返回y,例:{"status":"y","data":"","time":"2021-01-25 14:11:47"}
2.9.1反怕怕视频下载.png
当然也可以反编译,jadx搜dodownload,进行相关的反编译,小弟技术有限

免费评分

参与人数 109威望 +2 吾爱币 +203 热心值 +95 收起 理由
caowuxiang + 1 + 1 我很赞同!
Pad0y + 1 热心回复!
党魁 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
法国橙子 + 1 + 1 我很赞同!
Ai5 + 1 + 1 热心回复!
Gloud + 1 + 1 我很赞同!
李-xyz + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
shaonvbing + 1 + 1 我很赞同!
懵懂的挖掘机 + 1 + 1 我很赞同!
yzhappyzsx + 1 热心回复!
TXKJ + 1 + 1 我很赞同!
wdx19960307 + 1 + 1 热心回复!
Tony2009 + 1 谢谢@Thanks!
luolifu + 1 + 1 谢谢@Thanks!
tandz + 1
yulianqiao + 1 + 1 热心回复!
whyisshen + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
FSRMSQC + 1 + 1 我很赞同!
guizhou2120 + 1 + 1 已经处理,感谢您对吾爱破解论坛的支持!
wuyiaini + 1 + 1 谢谢@Thanks!
白开水- + 1 收藏
CoderWang119 + 1 + 1 用心讨论,共获提升!
SKRSKR2020 + 1 + 1 我很赞同!
weiye588 + 1 + 1 我很赞同!
sunew + 1 用心讨论,共获提升!
crab8292 + 1 + 1 用心讨论,共获提升!
szr + 1 + 1 热心回复!感谢发布原创作品,吾爱破解论坛因你更精彩!
十五先生 + 1 谢谢@Thanks!
FY-1573 + 1 我很赞同!
xoy + 1 我很赞同!
柒玛里 + 1 我很赞同!
18235054980 + 1 热心回复!
你好明仔 + 1 很厉害的样子
ALCATEL + 1 + 1 用心讨论,共获提升!
Jason_milk + 1 + 1 虽然看不懂哈哈
起名太难了AAA + 1 我很赞同!
rongice + 1 + 1 用心讨论,共获提升!
WJF12321 + 1 已经处理,感谢您对吾爱破解论坛的支持!
brIckZ + 1 用心讨论,共获提升!
NanKeYM + 1 + 1 热心回复!
ZZZZqqqq + 1 + 1 用心讨论,共获提升!
chlogo + 1 我很赞同!
stapler + 1 + 1 我很赞同!
Leo李 + 1 + 1 我很赞同!
霏映 + 1 我很赞同!
毒瘤 + 1 + 1 热心回复!
ljn1112 + 1 + 1 热心回复!
yue16616 + 1 + 1 虽然用不到
mmp211 + 1 鼓励转贴优秀软件安全工具和文档!
不停的叨叨 + 1 + 1 用心讨论,共获提升!
yeyeyeping + 1 我很赞同!
zxf0225 + 1 + 1 谢谢@Thanks!
alangbeyond + 1 + 1 像是西红柿,不过如果不是头条,我就放弃学习了。
hhjjqq110 + 1 + 1 谢谢@Thanks!
yankaiyang + 1 + 1 我很赞同!
不是沉默i + 1 热心回复!
lichaojingming + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
atrago + 1 + 1 我很赞同!
pelephone + 1 + 1 授之以渔,赞
jesse龙宇 + 1 给力!看起来是某种看电影的app
O168 + 1 + 1 我很赞同!
sx127 + 1 + 1 谢谢@Thanks!
小宝贝233 + 1 + 1 谢谢@Thanks!
Main233 + 1 我很赞同!
文姐姐 + 1 我很赞同!
qtfreet00 + 2 + 100 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
sseker + 3 + 1 谢谢@Thanks!
远方呢 + 1 我很赞同!
paidaxing + 1 + 1 热心回复!
shiina0831 + 1 + 1 谢谢@Thanks!
十ニ + 1 + 1 抓包的解包的很厉害
Runan09 + 1 + 1 我很赞同!
CWJYBB + 1 + 1 热心回复!
遇日不归 + 1 + 1 用心讨论,共获提升!
weimoshie + 1 + 1 热心回复!
18269055653 + 1 + 1 厉害
柳泉鸣 + 1 + 1 我很赞同!
Ricardo41 + 1 + 1 热心回复!
相思终成疾 + 1 + 1 谢谢@Thanks!
xp9477 + 2 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
x088 + 1 热心回复!
取用户名好难 + 1 看的我一脸懵逼
翼羽 + 1 谢谢@Thanks!
_小白 + 1 + 1 我很赞同!
夏日柠檬 + 1 用心讨论,共获提升!
烟凌 + 1 用心讨论,共获提升!
芯醉紅颜 + 1 + 1 技术活 赏
hanyaqi + 1 热心回复!
Afraid_kook + 1 + 1 学习一下
不是风是凡 + 1 + 1 鼓励转贴优秀软件安全工具和文档!
sushangyu + 1 + 1 真佩服分析的过程,之前弄过类似的加密请求APP,代码追到,就是不会解密,.
青苏之恋 + 1 + 1 热心回复!
芽衣 + 2 好家伙
鱼小七七七七七 + 1 + 1 谢谢@Thanks!
azk521 + 1 + 1 用心讨论,共获提升!
偶尔.c + 2 + 1 建议加大力度,哈哈哈
an9el + 1 + 1 谢谢@Thanks!
光辉夜色 + 1 + 1 我很赞同!
GenW + 8 + 1 用心讨论,共获提升!
Jedis + 1 热心回复!

查看全部评分

本帖被以下淘专辑推荐:

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

光辉夜色 发表于 2021-1-25 23:15
就好比楼主给了把钥匙,但是不知道这要是开那个锁
xujunfengswxj 发表于 2021-1-26 19:41
闷骚小贱男 发表于 2021-1-26 18:03
但是....我不会JAVA呀...咋hook

链接:https://pan.baidu.com/s/1mOteZEPVlIllH7Wv1gQAZg
提取码:6xfz
复制这段内容后打开百度网盘手机App,操作更方便哦


希望能帮到你,然后你能继续帮助更多人,这个是hook Java层的代码! so层代码要另外一套,暂时不是无密无法分享!有了我会分享。

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
cracker丶felon + 1 + 1 谢谢@Thanks!

查看全部评分

Mr.ByQ 发表于 2021-1-26 14:04
支持楼主,请看看"5YyF5ZCN5pCc5LqGYmFpZHUsZ29vZ2xl6YO95om+5LiN5YiwYXBw5ZWK77yM57uZ5Liq57q/57Si"
 楼主| 闷骚小贱男 发表于 2021-1-26 20:50
xujunfengswxj 发表于 2021-1-26 19:41
链接:https://pan.baidu.com/s/1mOteZEPVlIllH7Wv1gQAZg
提取码:6xfz
复制这段内容后打开百度网盘 ...

我以为你会直接给我发一个简单的小demo
紫苏丶 发表于 2021-1-25 20:35
我有个朋友。jpg
xlose13720 发表于 2021-1-27 13:43
stilllove88 发表于 2021-1-26 19:19
大概率是番   和谐啪    和谐 啪

你说这个搜不到呢,但是看图标剩下的一点,那个字不像是番呢
 楼主| 闷骚小贱男 发表于 2021-1-27 10:10
本帖最后由 闷骚小贱男 于 2021-1-27 10:13 编辑
mscsky 发表于 2021-1-27 10:06
大佬可以讲讲邀请工具怎么写吗

1.抓包分析提交的参数和网址
2.结合编程工具伪造imei等参数,生成新用户
3.新用户填写邀请码..

我用的是易语言编程....很简单


不一定非要写软件..我是为了研究APP的..
ma147258 发表于 2021-1-26 20:50
这个有vip好像用处不大,貌似还有付费的&#127773;
木有海鲜 发表于 2021-1-25 19:12
学习学习
stilllove88 发表于 2021-1-25 19:42
学习学习这个APP有点眼熟啊  谢谢分享
ALBERTLEE 发表于 2021-1-25 19:47
吾爱学习
xiaohuaisu 发表于 2021-1-25 19:47
刷邀请吗?很不错。不要刷多了不会被封杀吗
QingYi. 发表于 2021-1-25 19:52
学了java,没学和安卓相关的,难受。。。
vemdaixu 发表于 2021-1-25 20:31
虽然看不懂,但是感觉很厉害
梦里无念 发表于 2021-1-25 20:32
楼主每次都不说名称
努力的笨蛋 发表于 2021-1-25 20:48
学习学习

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
TXKJ + 1 + 1 我很赞同!

查看全部评分

您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-12-22 12:15

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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