2019SCTF中的android逆向详解

SCTF中的strange android题,可能对经验丰富的师傅们并不认为很难,但对于我android逆向初级选手来讲还是有点难度的。

题目运行的时候并没有什么异常,和大多数题目一样。

所以第一步:用jeb反汇编,看看代码

看了一下配置文件,发现主活动在反编译中并没有找到。这就有点超乎想象了。后来发现是经过反调试处理了的。把主活动文件给隐藏起来了。

接着往下面分析,看是怎样进行反调试的。

2019SCTF中的android逆向详解_第1张图片

这里是重写了attachBaseContext这个方法,从而要在data中提取数据。

但是在提取data前,就经过了函数的处理

找到这两个函数,分析一下功能

2019SCTF中的android逆向详解_第2张图片

分析一下,这是对文件进行了异或加密。在这个题中降低了难度,就是data文件可以直接复制出来。这样我们写一个文件,然后我们就对data进行解密操作。

Python脚本如下:

2019SCTF中的android逆向详解_第3张图片

转化后我们的到解密后的文件

2019SCTF中的android逆向详解_第4张图片

因为我们是转换成为16进制数据,英雌我们需要用winhex转换成apk文件

 

2019SCTF中的android逆向详解_第5张图片

将这些数据用winhex填充,保存成新文件

 

得到一个android文件,然后依然用jeb进行分析

2019SCTF中的android逆向详解_第6张图片

总共的输入字符是30,然后s1是输入的前12,然后调用函数进行base64加密。

2019SCTF中的android逆向详解_第7张图片

上面的加密函数是对后面部分进行处理,C的长度的32,

2019SCTF中的android逆向详解_第8张图片

对syclover进行MD5加密处理

分析一下就是将key的第0位进行插入。第0位是8。因此进行就是直接奇数位。

两段拼接在一起:sctf {W3lc0me~t0_An4r0id-w0rld} 

你可能感兴趣的:(android逆向)