Lazy loaded image
安卓逆向
Crakeme01实战分析 IDA动态静态分析
字数 365阅读时长 1 分钟
2021-9-18
2024-7-5
type
status
date
slug
summary
tags
category
icon
password

一、APK下载

Crakeme01:Crakeme01.apk

二、jadx分析java代码

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

三、IDA静态分析

上来一看,发现没有java_开头,敲定是动态注册,直接看伪代码。
notion image
 
跟进去AD()看下,发现里面全是各种反调试,动态调试的时候直接nop掉就ok。
notion image
 

四、IDA动态调试

在JNI_OnLoad开头下断点,nop掉反调试的部分。
notion image
 
JNI_OnLoad有三个函数,找最后一个的函数就是RegisterNatives,然后找RegisterNatives中的第三个参数,里面包含着对应关系。
notion image
 
notion image
 
跟进去按C,找到个bc函数。
notion image
 
在静态分析中找到bc,分析逻辑,dh主要做的是调试检测,如果没有被反调试,则return 1,否则kill 然后再return 0,ds这个函数猜测是加解密用的,flag没准就是v4的返回值,动态调试试一下。
notion image
 
ds函数打断点,对照静态调试的伪代码,找到指令,BLX后的返回值推测是flag,查看R0寄存器。
notion image
 
找到flag=hello5.1,还不算难.jpg。
notion image
 
上一篇
实战分析自毁程序Crackme IDA动态调试
下一篇
IDA安卓10动态调试

评论
Loading...