Android逆向:9某某ds本地加密JavaScript文件逆向分析

声明:案例分析仅供学习交流使用,勿用于任何非法用途。如学习者进一步逆向并对版权方造成损失,请自行承担法律后果,本人概不负责。

简介

本次逆向的apk拥有较为简单的加固和JavaScript源码加密,分析起来并不困难,旨在分享心得——当逆向分析遇到“死胡同”的时候,换个思路也许能拨云见日。
 

目标

获取apk中有关“91kds播放逻辑”的信息。
 

逆向流程

首先用jadx分析apk文件,发现其拥有360加固。
在这里插入图片描述
尝试使用drizzleDumper获取内存中真正的dex,成功。
在这里插入图片描述
再次用jadx分析真正的dex,没有找到与字符串“91kds”相关的有用信息,陷入僵局。
在这里插入图片描述
 

突破口——JavaScript文件

无意间翻看其官网,发现这个应用同时拥有Android版和IOS网页版,以此推测其安卓版有可能使用了JavaScript做混合开发。
在这里插入图片描述
于是猛然回想起之前分析apk data目录文件时看到的一堆*.js,当时不以为然,现在想起来它们兴许就是突破口,立马导出。
在这里插入图片描述
jquery-2.1.1.min.js库不多赘述,native_layer.js提供了大量工具方法,并由方法名中的片段yk(优酷),bst(百事通)等推测这是播放逻辑需要用到的方法。
在这里插入图片描述
但是当打开其他js文件时,发现被加密了。如encrypt_root.js。
在这里插入图片描述
回到dex中找线索,发现在apk初始化数据时,会解压下载的js.zip。
在这里插入图片描述
 

找到解密函数

顺藤摸瓜即可找到其读取js并解密的入口。
在这里插入图片描述
解密逻辑大致如下。
在这里插入图片描述
读取文件用的是java.util.Scanner的方法,不用担心是继承、重载做过手脚的类,也就不用再深入分析。
在这里插入图片描述
小插曲:将代码复制到java项目中运行,报错。
在这里插入图片描述
猜测为AES加密方法的平台兼容性导致,经过多次修改仍旧报错。
在这里插入图片描述
再次换个思路,将代码放入Android项目运行,正常获得解密js文件。encrypt_root.js即为url处理入口。
在这里插入图片描述
在encrypt_other_live.js中可以找到最关键的sign字段生成方式,至此就完成了对91kds播放逻辑的逆向分析。
在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值