安卓逆向:Crakeme01实战分析 IDA动态静态分析

一、APK下载

Crakeme01:https://github.com/404nofoundx/Cloud/blob/main/Crakeme01.apk

在这里插入图片描述

二、jadx分析java代码

根据AndroidManifest.xml找到程序入口
在这里插入图片描述
第一眼看到的System.loadLibrary(),就知道有NDK开发SO了,首先判断输入是否是空,非空的话调用
NI.greywolf(this, this.editText.getText().toString());,而greywolf是

在这里插入图片描述在这里插入图片描述

三、IDA静态分析

上来一看,发现没有java_开头,敲定是动态注册,直接看伪代码。

在这里插入图片描述
跟进去AD()看下,发现里面全是各种反调试,动态调试的时候直接nop掉就ok。

在这里插入图片描述

四、IDA动态调试

在JNI_OnLoad开头下断点,nop掉反调试的部分。

在这里插入图片描述
JNI_OnLoad有三个函数,找最后一个的函数就是RegisterNatives,然后找RegisterNatives中的第三个参数,里面包含着对应关系。

在这里插入图片描述在这里插入图片描述

跟进去按C,找到个bc函数。

在这里插入图片描述
在静态分析中找到bc,分析逻辑,dh主要做的是调试检测,如果没有被反调试,则return 1,否则kill 然后再return 0,ds这个函数猜测是加解密用的,flag没准就是v4的返回值,动态调试试一下。

在这里插入图片描述

ds函数打断点,对照静态调试的伪代码,找到指令,BLX后的返回值推测是flag,查看R0寄存器。

在这里插入图片描述
找到flag=hello5.1,还不算难.jpg。

在这里插入图片描述

console.log("wx:spiderskill")
欢迎大家前来交流
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

404NooFound

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值