脱壳系列—— *加密脱壳(Android使用手册破解)

好久没有写文了,要好好开动一下了。很多事情要忙。这篇文章本来很早之前就要写的,但是因为很多事情就拖了很久。

作者:i春秋作家HAI_ZHU

0×00 前言

好久没有写文了,要好好开动一下了。很多事情要忙。这篇文章本来很早之前就要写的,但是因为很多事情就拖了很久。

前置内容

HAI_使用手册

知识总结

0×01 smali层静态分析

反编译,不多说。

然后来看启动的class。

image.png

调用run方法,和load方法。

image.png

这里有两个so文件载入。

exec

execmain

image.png

0×02 so层分析

libexec.so

image.png

查看JNIonload,发现并没有我们需要的内容。

image.png

这个时候,我们可以先尝试进行一下动态调试。

0×03 动态调试

首先要明确断点dexfileopen。

前置配置不啰嗦了。可以去看一下之前的文章。

勾选三项,停在这里。

image.png

下端点。


155851zzwfhbvmgbgb8pam.png

端点的位置在libdvm.so->dexfileopen.

jdb转发。

160636sgo7my12dy1xxyhn.png

F9运行,发现端点停在这里了。

160734oh0nnbui7451ziu5.png

同步R0寄存器。

160905idllhmvr91vwcl9w.png

这里很明显看到了一个dex文件。

0×04 dump dex

通过dex文件判断大小和偏移。

使用脚本进行dump

static main(void){
    auto fp, begin, end, dexbyte;
    //打开或创建一个文件
    fp = fopen("e:\\dumpss.dex", "wb");
    //dex基址
    begin = 0x772C06DC;    
//dex基址 + dex文件大小
end = begin + 0x000FAEB4;
    for ( dexbyte = begin; dexbyte < end;     dexbyte ++ ){
//按字节将其dump到本地文件中
fputc(Byte(dexbyte), fp);
}
}

成功dump

0×05 偷梁换柱

把dex反编译后放入Android killer中进行分析。

通过使用app发现“请先激活用户”

搜索

170300l42adnvdvwquld6v.png

然后对跳转方法进行更改。进行暴力破解。

测试:破解成功。

0×06 脱壳修复

去掉android:name=”com.shell.SuperApplication”,然后进行回编译。
170417blexflxtlkfpn4vm.png

最后大功告成

取消
Loading...
css.php