Andriod游戏逆向还原算法完整步骤

【特别声明:本文章仅限交流学习,其中涉及技术不得用于非法目的,本人不承担任何相关法律责任。】

一、分析安卓app adjust nsgin 加密算法:

思路:Frida + IDA静态分析

Step1. 检查是否加壳

       用IDA Pro工具打开lib/arm64_v8a/libsigner.so,Expost Tab查找需要的函数名称,找到我们需要逆向的函数,双击打开查看函数的汇编发现已被加壳;

Step2. 静态脱壳

  1. 使用dd指令对libsigner.so脱壳

      因为这个此APP会判断手机系统是否被root,所以自己写了一套自动化bash脚本来实现在APP启动到自动关闭这个时间段内抓取加载到内存中的libsigner.so;

 

b、使用frida对dex脱壳(脱壳过程还需要用到Magisk、MT、js脚本等),然后用jadx解析出脱壳后的dex中的java原代码,根据IDA中找到的函数名称正则查找到jni接口,确定参数与返回值;

Step3. 导出函数c伪代码

打开脱壳后的libsigner.so补正Section Table,然后IDA打开函数汇编页面按F5键(需要安装Hex-Rays插件)反编译出jni函数Java_com_adjust_sdk_sig_NativeLibHelper_nSign的c伪代码;

二、体外还原算法离机部署:

1、还原算法:使用unidbg-boot-server框架来建立虚拟环境模拟调用libsigner.so的jni函数(函数名:"nSign(Landroid/content/Context;Ljava/lang/Object;[BI)[B" )并补齐环境,这个方案相比传统IDA伪代码逐行分析还原的优点是更高效。

2、调试完成后,打包成Jar包,然后通过Docker  Hub部署到服务器。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值