App逆向百例|17|某音乐App分析

简介: App逆向百例|17|某音乐App分析

观前提示:

本文章仅供学习交流,切勿用于非法通途,如有侵犯贵司请及时联系删除

样本:aHR0cHM6Ly9wYW4uYmFpZHUuY29tL3MvMXRQbnROMkc0R20yYlFKaVNHYzU2SlE/cHdkPWxpbm4=

0x1 抓包

本次受害参数为aversionid

直接把样本放到JADX 发现搜索不到aversionid

0x2 脱壳

前面在JADX里面搜索不到aversionid

但是发现了libexec.so字眼

众所周知 这是爱加密的壳

直接用dexdump 很快 一下子就脱光光了

0x3 aversionid

直接搜索 这次可以搜索得到结果了

看到encodedecode字眼

跳转过来 发现调用SecurityNative.encode

但却无法进入 搜索类也搜索不到 难道另有蹊跷

尝试使用Frida也找不到

奇奇怪怪 有点意思

那咱就搜索classloader看看吧 反正总要加载类的

function classloader_search(ClassName) {
    Java.perform(function () {
        Java.enumerateClassLoaders({
            "onMatch": function (loader) {
                try {
                    if (loader.findClass(ClassName)) {
                        Java.classFactory.loader = loader;
                        console.log('Find ClassName->' + ClassName);
                        console.log(loader);
                    }
                } catch (e) {}
            },
            "onComplete": function () {
            }
        });
    });
}

运行成功搜索到com.xxx.security.SecurityNative

找之前 先验证一下是否正确

function hook() {
    var ClassName = "com.xxx.security.SecurityNative"
    Java.perform(function () {
        Java.enumerateClassLoaders({
            "onMatch": function (loader) {
                try {
                    if (loader.findClass(ClassName)) {
                        Java.classFactory.loader = loader;
                        var SecurityNative = Java.classFactory.use(ClassName);
                        SecurityNative.encode.implementation = function (str1, str2) {
                            var result = this.encode(str1, str2);
                            console.log('str1->' + str1)
                            console.log('str2->' + str2)
                            console.log('result->' + result)
                            return result;
                        }
                    }
                } catch (e) { }
            },
            "onComplete": function () {
            }
        });
    });
}

没问题 能hook到类 并且也证明了前面的分析是对的

根据前面找到的类对应文件 去手机里面对应的文件夹一个一个找

虽然出现的东西很多 但总出现了一个方向

最后找到com.xxx.security.SecurityNativelibraries_feature-master.apk出现

最终调用的是Native方法 而对应的so在相应的文件夹里同样能找到

大姐姐进入到SO 能直接在导出表搜索到是静态注册

进到encode看伪代码可以知道 主要的还是在mg_encode方法里

进去后看不出是什么算法 有可能是我太菜了 不过代码量不多 完全可以直接复制粘贴

留给大家自己还原吧 祝大家情人节快乐 我要去浪了



感谢各位大佬观看

感谢大佬们的文章分享

如有错误 还请海涵

共同进步 带带弟弟


点赞 在看 分享是你对我最大的支持

逆向lin狗

相关文章
|
4月前
【Azure 应用服务】App Service频繁出现 Microsoft.WindowsAzure.Diagnostics.DiagnosticMonitorTraceListener 异常分析
【Azure 应用服务】App Service频繁出现 Microsoft.WindowsAzure.Diagnostics.DiagnosticMonitorTraceListener 异常分析
|
1月前
|
开发框架 监控 .NET
【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
|
3月前
|
安全
【Azure App Service】App service无法使用的情况分析
App Service集成子网后,如果子网网段中的剩余IP地址非常少的情况下,会在App Service实例升级时( 先加入新实例,然后在移除老实例 )。新加入的实例不能被分配到正确的内网IP地址,无法成功的访问内网资源。 解决方法就是为App Service增加子网地址, 最少需要/26 子网网段地址。
|
4月前
【Azure Function App】本地运行的Function发布到Azure上无法运行的错误分析
【Azure Function App】本地运行的Function发布到Azure上无法运行的错误分析
|
4月前
|
开发框架 缓存 .NET
【App Service】在Azure App Service中分析.NET应用程序的性能的好帮手(Review Stack Traces)
【App Service】在Azure App Service中分析.NET应用程序的性能的好帮手(Review Stack Traces)
|
4月前
|
C# 开发工具
【Azure 应用服务】Azure Function App使用SendGrid发送邮件遇见异常消息The operation was canceled,分析源码渐入最源端
【Azure 应用服务】Azure Function App使用SendGrid发送邮件遇见异常消息The operation was canceled,分析源码渐入最源端
|
4月前
|
网络协议 NoSQL 网络安全
【Azure 应用服务】由Web App“无法连接数据库”而逐步分析到解析内网地址的办法(SQL和Redis开启private endpoint,只能通过内网访问,无法从公网访问的情况下)
【Azure 应用服务】由Web App“无法连接数据库”而逐步分析到解析内网地址的办法(SQL和Redis开启private endpoint,只能通过内网访问,无法从公网访问的情况下)
|
6月前
|
移动开发 小程序 开发工具
微信支付的类型分析(JSAPI+APP+H5+NATIVE+付款码+合单)
微信支付的类型分析(JSAPI+APP+H5+NATIVE+付款码+合单)
637 1
|
6月前
|
数据采集 JSON 算法
使用Python爬取华为市场APP应用进行分析
这个网站也是作者最近接触到的一个APP应用市场类网站。讲实话,还是蛮适合新手朋友去动手学习的。毕竟爬虫领域要想进步,还是需要多实战、多分析!该网站中的一些小细节也是能够锻炼分析能力的,也有反爬虫处理。甚至是下载APP的话在Web端是无法拿到APK下载的直链,需要去APP端接口数据获取
|
6月前
|
存储 Android开发 Kotlin
Kotlin开发安卓app,在使用 MediaPlayer 播放 res/raw 中的音乐时遇到突然中断的问题,而 onErrorListener 没有接收到任何报错
在使用 Android MediaPlayer 播放 res/raw 中的音乐时遇到中断问题,可能的原因包括资源问题、媒体文件编码格式、生命周期管理和设备资源配置。要排查问题,检查音频文件是否正确包含,格式编码是否支持,MediaPlayer 是否正确管理及释放,以及设备是否有足够存储和配置。通过设置 onErrorListener 日志和确保在 onDestroy 中释放资源来调试。如果文件过大,考虑使用 AssetManager。遵循这些步骤可帮助诊断并解决播放中断的问题。

热门文章

最新文章