某问答社区App x-zse-96签名分析

简介: 某问答社区App x-zse-96签名分析

一、目标


今天我们的目标是某问答社区App的 x-zse-96

556.png


1:main


版本: v8.21.1


二、步骤

搜x-zse-96


常规做法是jadx打开apk,然后搜索x-zse-96。


神奇的是,居然没有结果,这就有点意思了,App给我们加戏了,把一些明显的字符串做了加密隐藏。


观察共性


观察一下,签名有两个共性


1、 都是 1.0_ 开头

2、 后面接着的很像Base64


那就先从hook开头开始吧。继续用大海捞针法来捞开头。

// 靠字符串去定位
var strCls = Java.use("java.lang.StringBuilder");
strCls.toString.implementation = function(){
    var result = this.toString();
    // console.log(result.toString());
    if(result.toString().indexOf("1.0_") >= 0 )
    {
        console.log(result.toString());
        var stack = threadinstance.currentThread().getStackTrace();
        console.log("Rc Full call stack:" + Where(stack));
    }
    return result;
}


来跑一下。221.png


幸运的是,我们这次猜对了开头,也猜对了结果。


下面的目标就是这个 com.zxxxu.android.net.d.i.e331.png


点这个encryp函数进去

public interface b {
        byte[] encrypt(byte[] bArr);
    }


发现b变量是个接口类型,所以我们还得知道它实际被赋值的变量是什么类型才可以。


打印类成员变量


这个我们会 91fans.com.cn/post/idlesi… 以前介绍过打印类的成员变量。


var requestCls =  Java.use("com.zxxxu.android.net.d.i");
requestCls.e.implementation = function(a){
    console.log(" ========== ");
    var fields = Java.cast(this.getClass(),Java.use('java.lang.Class')).getDeclaredFields();
    //console.log(fields);
    for (var i = 0; i < fields.length; i++) {
        var field = fields[i];
        field.setAccessible(true);
        var name = field.getName();
        var value =field.get(this)
        console.log("name:"+name+"\tvalue:"+value);
    }
    console.log(" ========== ");
    var result = this.e(a);
    return result;
}


结果出来了8888.png

1:rc1


这个类名出来了 -$$Lambda$AshC3KZBWneDDB5y10Ccx5ghIWw 看上去还是比较复杂的665.png

1:rc2


这个 a.a 函数继续往下找,最后就找到这里了667.png

1:rc3


可以写代码去hook了, 从名称上看大概率是 aes算法。而且除了明文还有两个参数,那么大概率是key和iv了。


三、总结


App开始狡猾了,明显的字符串做了加密,我们找起来就没那么方便了。


关键点还是共性,只要有共性,就有线索了。


com.secneo.apkwrapper.H.d 这个函数大家可以分析下,它应该就是加密那个明显字符串的。从它可以暴露出x-zse-96。333.png


无人与问,但浊酒相呼,疏帘自卷,微月照清饮。


Tip:

: 本文的目的只有一个就是学习更多的逆向技巧和思路,如果有人利用本文技术去进行非法商业获取利益带来的法律责任都是操作者自己承担,和本文以及作者没关系,本文涉及到的代码项目可以去 奋飞的朋友们 知识星球自取,欢迎加入知识星球一起学习探讨技术。有问题可以加我wx: fenfei331 讨论下。


关注微信公众号:奋飞安全,最新技术干货实时推送

目录
打赏
0
0
0
0
15
分享
相关文章
圈子系统公众号app小程序系统源码圈子系统带即时通讯 多级圈子系统源码 兴趣小组系统开源 私密圈子系统代码 会员制社区系统
本圈子系统解决方案提供即时通讯、多级圈子、兴趣小组、私密社区及会员制管理功能。支持开源与商业方案,推荐ThinkSNS+、EasyClub及OpenFire等系统,并提供前后端技术选型建议,助力快速搭建社交平台。
21 0
【03】微信支付商户申请下户到配置完整流程-微信开放平台创建APP应用-填写上传基础资料-生成安卓证书-获取Apk签名-申请+配置完整流程-优雅草卓伊凡
【03】微信支付商户申请下户到配置完整流程-微信开放平台创建APP应用-填写上传基础资料-生成安卓证书-获取Apk签名-申请+配置完整流程-优雅草卓伊凡
240 28
【03】微信支付商户申请下户到配置完整流程-微信开放平台创建APP应用-填写上传基础资料-生成安卓证书-获取Apk签名-申请+配置完整流程-优雅草卓伊凡
【05】2025年1月首发完整版-篇幅较长-苹果app如何上架到app store完整流程·不借助第三方上架工具的情况下无需花钱但需仔细学习-优雅草央千澈详解关于APP签名以及分发-们最关心的一篇来了-IOS上架app
【05】2025年1月首发完整版-篇幅较长-苹果app如何上架到app store完整流程·不借助第三方上架工具的情况下无需花钱但需仔细学习-优雅草央千澈详解关于APP签名以及分发-们最关心的一篇来了-IOS上架app
802 75
【03】完整flutter的APP打包流程-以apk设置图标-包名-签名-APP名-打包流程为例—-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈 章节内容【03】
【03】完整flutter的APP打包流程-以apk设置图标-包名-签名-APP名-打包流程为例—-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈 章节内容【03】
322 18
【03】完整flutter的APP打包流程-以apk设置图标-包名-签名-APP名-打包流程为例—-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈 章节内容【03】
【04】flutter补打包流程的签名过程-APP安卓调试配置-结构化项目目录-完善注册相关页面-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程
【04】flutter补打包流程的签名过程-APP安卓调试配置-结构化项目目录-完善注册相关页面-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程
299 12
【04】flutter补打包流程的签名过程-APP安卓调试配置-结构化项目目录-完善注册相关页面-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程
【03】优雅草央千澈详解关于APP签名以及分发-上架完整流程-第三篇安卓APP上架华为商店后面的步骤-华为应用商店相对比较麻烦一些-华为商店安卓上架
【03】优雅草央千澈详解关于APP签名以及分发-上架完整流程-第三篇安卓APP上架华为商店后面的步骤-华为应用商店相对比较麻烦一些-华为商店安卓上架
107 16
【Azure App Service】部署在App Service上的.NET应用内存消耗不能超过2GB的情况分析
x64 dotnet runtime is not installed on the app service by default. Since we had the app service running in x64, it was proxying the request to a 32 bit dotnet process which was throwing an OutOfMemoryException with requests >100MB. It worked on the IaaS servers because we had the x64 runtime install
120 5
|
10月前
|
【Azure App Service】App service无法使用的情况分析
App Service集成子网后,如果子网网段中的剩余IP地址非常少的情况下,会在App Service实例升级时( 先加入新实例,然后在移除老实例 )。新加入的实例不能被分配到正确的内网IP地址,无法成功的访问内网资源。 解决方法就是为App Service增加子网地址, 最少需要/26 子网网段地址。
102 4
【App Service】在Azure App Service中分析.NET应用程序的性能的好帮手(Review Stack Traces)
【App Service】在Azure App Service中分析.NET应用程序的性能的好帮手(Review Stack Traces)

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等

登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问