记一次RATEL脱壳配合Il2CppDumper解密完成的样本分析
今天分析一个网赚类的样本,业务方要我搞清楚为什么每次完成任务出现红包时,总会随之弹出一个插屏广告。
大概就是下图这样,说实话,弹几层广告确实挺恶心,关起来都麻烦
先在测试机装上应用,发现有root检测,试过几个通用的过root检测的frida脚本,发现不行
看了下代码,是网易的壳
正好,最近在看Ratel,刚好来练练手,试试在非root环境下Ratel的脱壳怎么样
Ratel用起来没frida那么随意,有兴趣大家去他的github看看:virjarRatel · GitHub
Ratel大概脱壳步骤:
1 装上Ratal
2 装上目标应用
3 感染应用
4 写脱壳插件
5 应用跑起来,就开始脱壳了
下面是脱壳代码,在主框架入口调一下entry就行
public class Unpack {public static final String tag = "RATEL-YOOHA";public static void entry(RC_LoadPackage.LoadPackageParam lpparam) {// TODO 抽取壳要把这个选项打开//UnPackerToolKit.autoEnable(true);UnPackerToolKit.unpack(new UnPackerToolKit.UnpackEvent() {@Overridepublic void onFinish(File file) {try {FileUtils.copyFile(file, new File("/sdcard/crack.apk")); Log.i(tag, "unpacked over");} catch (IOException e) {Log.e(tag, "unpacked error", e);e.printStackTrace();}}});}
}
跑起来后,壳果然脱了,效果还行
先看看代码,发现有个函数非常可以
严重怀疑就是他干的坏事,怎么办,hook他呗,试试Ratel的hook好不好使
Ratel写代码跟xposed差不多,记住一点就行,把类开头的X改成R。结果果然没让我失望,就是这个函数干的
从调用栈来看,这个函数是被Native调用的,看了下框架Unity + libil2cpp.so ,这个框架下,需要用到一个开源工具来解密Il2CppDumper,解密方法大家可以去github看,顺便给他个星星:GitHub - Perfare/Il2CppDumper: Unity il2cpp reverse engineer
解密出来的内容如下:
一般情况下,在 /DummyDll/ 下的dll文件用dnSpy 打开后,都能看到函数体,然后继续分析,但今天这个样本,解出来的dll 打开函数都是空的
好吧,那只能看 libil2cpp.so 的代码了,上图中Address 的偏移就是这个函数在so文件中的偏移,首先我们需要先跑一下脚本,将这个符号和结构体等信息先载入IDA,具体方法:
1 IDA先打开libil2cpp.so
2 加载 ida_with_struct.py 脚本(该脚本在你下载的)Il2CppDumper工具包里面
3 加载 script.json (解密出来的文件里面)
4 加载 il2cpp.h 文件 (解密出来的文件里面)
5 漫长的等待
看到这个就加载完了:
OK,开始干活,既然确认是调用Java函数showImageInterstitialAd,那么so中肯定会用到字符串“showImageInterstitialAd”,先到解密出来的 stringliteral.json 文件中找该字符串
然后在IDA中 跳转到这个地址,看到一个变量,先改个名字,防止跟丢了
对变量查找引用,找到调用他的地方,AndroidJavaObject_CallStatic, 这个函数会根据传进来的字符串函数名反射调用java函数
接着再查找引用
再查,找到了,这个红包物体被激活时,会调用OnEnable函数,在该函数中,会调用ShowinterAd来弹出插屏广告,也就是说,出现这个过关红包就会弹一次插屏,也真够烦的
OK,先到这吧
记一次RATEL脱壳配合Il2CppDumper解密完成的样本分析相关推荐
- 记一次lpk劫持样本分析
lpk.dll病毒是比较常见的一类病毒,系统本身的lpk.dll文件位于C:\WINDOWS\system32和C:WINDOWS\system\dllcache目录. lpk.dll病毒的典型特征是 ...
- 记一次应急响应之ssh日志和apache2日志分析
文章目录 学习笔记连接 第一部分 查看系统情况 0x01 查看端口 0x02 账号安全 0x03 查看ssh日志信息 第一步 查看登陆成功的日志 第二步 查看正常退出的日志 第三步 连接到服务器,提示 ...
- 三级等保之数据库加解密技术方案预言分析篇(一)
系列文章目录 三级等保之数据库加解密技术方案预言分析篇(一) 三级等保之SpringBootMybatis数据安全(二) 数据库内容加密后支持模糊搜索功能(三) 文章目录 系列文章目录 前言 一.项目 ...
- 加脱壳、加解密、破解辅助及其源码
PE辅助工具 程序名称 作者 说明 PETool v0.45 beta MackT PE文件信息查看编辑工具,VC源码. PE Labs 1.0 Latigo PE文件信息查看工具,Win32ASM源 ...
- 记一次 .NET医疗布草API程序 内存暴涨分析
一:背景 1. 讲故事 我在年前写过一篇关于CPU爆高的分析文章 再记一次 应用服务器 CPU 暴高事故分析 ,当时是给同济做项目升级,看过那篇文章的朋友应该知道,最后的结论是运维人员错误的将 IIS ...
- java rsa 解密_Java中RSA加密解密的实现方法分析
本文实例讲述了Java中RSA加密解密的实现方法.分享给大家供大家参考,具体如下: public static void main(String[] args) throws Exception { ...
- 记最近Linux中遇到cpu使用率低loadavg高的分析过程
首先明确一下CPU使用率和loadavg这两个概念: CPU使用率 指当前CPU正在执行指令的繁忙程度,越高表面CPU正在执行很多指令即有进程一直在cpu上运行着 Loadavg 指的是CPU负载程度 ...
- 记一次 .NET 某消防物联网 后台服务 内存泄漏分析
一:背景 1. 讲故事 去年十月份有位朋友从微信找到我,说他的程序内存要炸掉了...截图如下: 时间有点久,图片都被清理了,不过有点讽刺的是,自己的程序本身就是做监控的,结果自己出了问题,太尴尬了
- 记一次 .NET 某电商定向爬虫 内存碎片化分析
一:背景 1. 讲故事 上个月有位朋友wx找到我,说他的程序存在内存泄漏问题,寻求如何解决? 如下图所示: 从截图中可以看出,这位朋友对 windbg 的操作还是有些熟悉的,可能缺乏一定的实操经验,所 ...
最新文章
- 5教程 watchout_Unit 5单元复习学案设计
- ibatis基础(三):查询指定id的单个对象
- 【C 语言】字符串拷贝 ( 函数形参使用推荐方法 | 凡是涉及 修改指针指向 的操作一律创建新的 指针变量 执行 | 引入 辅助 局部 指针变量 )
- 借助LDA主题分析的短文本相似性计算 - 综述帖
- 彻底理解ThreadLocal
- 深度学习之基于卷积神经网络(VGG16)实现性别判别
- 基本数据类型与字符串的转换
- Token Based Authentication using ASP.NET Web API 2, Owin, and Identity
- C#实现两个时间相减的方法
- python爬虫什么意思-python爬虫可以爬什么
- 外星人笔记本 键盘灯不亮解决 Alienware 13
- pionner软件操作笔记
- STM32F407读取ADS1115数据
- Win11打印机任务在哪里?Win11查看打印机任务列表的方法
- RNN基本原理以及基于Pytorch实践
- 代换密码的密码分析—详细分析过程
- 旋转屏幕猫狗游戏java_java-猫狗继承案例
- Day3-T31项目 异常处理与日志——2021-11-02
- Hive常用函数(日期函数,取整函数,字符串操作函数,集合操作函数)
- 天威诚信:数字认证体系助推车联网积极稳妥发展
热门文章
- 十三、学习分布式爬虫之字体反爬
- Notes Twenty-third days-渗透攻击-红队-红队自研
- mongodb java api chm_MongoDB中文手册chm版
- 用C语言求最小公倍数和最大公约数
- non-compatible bean definition of same name and class [com.echo.util.FileUploadDispatcher]
- 40079 钉钉_钉钉获取免登陆授权码CODE,返回:不存在的临时授权码40078
- 思维模型 MECE原则
- H-A + B用于投入产出实践(VIII)
- 小程序:浅谈小程序更新机制,发版后多久能全覆盖
- AiraNg配合RileRun下载及观看神器,包括(Aria搭建方法,AriaNg搭建问题)