首页 > 其他分享 >【安卓逆向】tx漫画实战

【安卓逆向】tx漫画实战

时间:2024-07-20 14:53:56浏览次数:9  
标签:逆向 return tx hook 安卓 CryptUtils C5494q0 参数 result

免责声明

免责声明本文内容仅供学习交流使用,严禁用于商业和非法用途。抓包数据、敏感网址以及数据接口已进行脱敏处理。
注:如有引用,请标注文章地址!!!!!!!

资源获取

关注公众号: 安卓破晓者(回复:tx漫画)

本文目标:

逆向参数:参数:sc       响应:解密

注:作者是个菜鸡,诸位大佬们看个乐就是了哈

正文开始


上图!!!

可以看到响应是一堆加密过的数据


老样子,看一下app有没有加壳

很显然并没有


那么逆向正式开始,打开app搜索一波

因为响应加密了,所以也只能从参数入手


可以看到结果并不多,那就一个个分析,最终定位到:private void m5793j(C16557x.a aVar, C16557x c16557x)


双击m5788e,继续跟进去


到这里代码明显清晰了不少

大致逻辑就是将各种参数拼接成sb2

最后在return返回:C5494q0.m20464a(sb2.toString());

为了更进一步验证,先来hook一下:C5494q0

Java.perform(function () {
    let C5494q0 = Java.use("com.qq.ac.android.utils.q0");
    C5494q0["a"].implementation = function (str) {
        console.log(`C5494q0.m20464a is called: str=${str}`);
        let result = this["a"](str);
        console.log(`C5494q0.m20464a result=${result}`);
        return result;
    };
})

hook之前将抓包软件打开,把hook结果和抓包结果对比一下


return的结果和抓包的sc的值,一模一样

来,再看看代码具体实现


一眼看到有个md5

这里姑且当作是md5加密,回头看看刚才hook的sb2

整理一下:

/12.0.8/Home/tabs/

tab_id/6950604

a.ac.qq.com

0                                 (参数:fakeduin)

dc0d0003975ed7fced4fb0f210001be1860f  (参数:qimei    固定)

1721455445729                                     (参数:localtime)

4jo2YHMm0d2VGt59tVYndX9P7eFcw8TvRv5lMqFP1TT    (固定)

tab_id 根据实际接口拼接

localtime 是一个13位的时间戳

验证一下:


如此这般,sc参数解密也就完成了

接下来继续看代码,定位到响应位置

回到最开始的m5793j参数,跟一下它的引用


这里有个返回值,跟进去


发现是一个接口

没办法,只能花时间找找它的实现


CryptUtils,一眼就注意到这个参数很可疑,进去看看


发现是 native

先不着急往下,来一波hook

Java.perform(function () {
    let CryptUtils = Java.use("com.qq.ac.android.utils.CryptUtils");
    CryptUtils["gudKsDdgRDftyhRz"].implementation = function (bArr) {
        console.log(`CryptUtils.gudKsDdgRDftyhRz is called: bArr=${bArr}`);
        let result = this["gudKsDdgRDftyhRz"](bArr);
        console.log(`CryptUtils.gudKsDdgRDftyhRz result=${result}`);
        return result;
    };
});

因为类型是byte[],这里需要做一下转换

转换后的参数:


转换后的返回值:


因为学不久,对so不熟悉,这里使用unidbg来解密

这个app没有什么需要补的环境

将框架搭好就行了

撒花!!!

标签:逆向,return,tx,hook,安卓,CryptUtils,C5494q0,参数,result
From: https://blog.csdn.net/Coodekun/article/details/140570294

相关文章

  • 逆向案例二十六(续)——中国观鸟记录,返回数据解密
    在上一集中,我们已经获得了表单参数加密,请求头参数加密,现在需要对返回的数据进行解密。跟栈分析,直接进入第三个 在疑似断点位置打上断点,已然发现解密位置。function接收参数t是加密的密文,接着返回的a.parseData(t)是明文 所以解密函数是a.parseData()  进入这个函......
  • 逆向案例二十七——某妈妈返回值解密
    网址:蝉妈妈-内容营销与电商增长一站式服务平台有会员会返回所有数据,抓包分析,会发现返回的数据进行了加密。直接搜索找加密位置,因为这个参数太烂大街了,因此,直接搜索decrypt 找到疑似加密位置,断点分析,并打印参数 貌似是个AES解密,传入的e是加密的参数 r是最终加密的......
  • 【JS逆向课件:第八课:异常处理】
    异常处理首先我们要理解什么叫做**"异常”**?在程序运行过程中,总会遇到各种各样的问题和错误。有些错误是我们编写代码时自己造成的:比如语法错误、调用错误,甚至逻辑错误。还有一些错误,则是不可预料的错误,但是完全有可能发生的:比如文件不存在、磁盘空间不足、......
  • 【JS逆向课件:第七课:模块与包】
    模块与包模块模块介绍在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护。为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文件包含的代码就相对较少,很多编程语言都采用这种组织代码的方式。而这样的一......
  • 从零开始部署yolov8到安卓手机详细教程 ——使用YOLOV8大模型开发的物体检测Android手
    1.使用了yolov8大模型来进行物体检测android手机APP⒉.使用了coco数据集进行训练,app可以检测出“人类"∵"自行车"."汽车"∵"摩托车"."飞机","公共汽车"∵"火车","卡车"∵."船","红绿灯","消防栓","停车标志"∵,"停车收费表&......
  • 基于Java安卓的爱读书APP设计与实现(源码+lw+部署文档+讲解等)
    文章目录前言详细视频演示项目运行截图技术框架后端采用SpringBoot框架前端框架Vue可行性分析系统测试系统测试的目的系统功能测试数据库表设计代码参考数据库脚本为什么选择我?获取源码前言......
  • 在Python中doc转docx,xls转xlsx,ppt转pptx(Windows)
    在Python中doc转docx,xls转xlsx,ppt转pptx(Windows)说明:首次发表日期:2024-07-18参考pypi包:doc2docx缘起我们一般使用Python开发RAG应用,或者使用基于Python开发的开源RAG工具,比如Dify。然而由于Python中对.doc和.ppt格式的文件支持不够好,通常我们需要将文件格式转换为.docx和.p......
  • (新)app逆向四(常见加密算法)
    加密的分类1、单向加密:MD5、sha系列不可逆2、对称加密:AES、DES3、非对称加密:RSA、DSA4、补充算法:base641.md5importhashlibm=hashlib.md5()m.update('helloworld'.encode("utf8"))print(m.hexdigest())2.shaimporthashlibsha1=hashlib.sha1()data='hellow......
  • 安卓MT管理器v2.16.2/逆向修改神器 本地VIP已解锁
    MT管理器是一款强大的文件管理工具和APK逆向修改神器。如果你喜欢它的双窗口操作风格,可以单纯地把它当成文件管理器使用。如果你对修改APK有深厚的兴趣,那么你可以用它做许许多多的事,例如汉化应用、替换资源、修改布局、修改逻辑代码、资源混淆、去除签名校验等,主要取决于你如......
  • (新)app逆向二(adb操作)
    一、逆向的基本流程#1.获取app的目标(官网,豌豆荚,下载历史老版本);尽量不要去华为,小米应用市场下载;——》拿到app放在电脑上,并且安装到手机上#2.使用抓包工具,手机上操作app,进行抓包是(charles,fiddler);#3.使用反编译工具(JADX,JD_GUI),把apk问阿金反编译成java代码,分析代码,定位位置......