Re----第一个安卓逆向
之前做Jarvis OJ上的Re的题目,分值最少的是一道安卓题目,可是我对安卓逆向一窍不通…………
链接:https://pan.baidu.com/s/1271cwGI-taQ5-8xdrIoo1Q 密码:iwwh
然后就开始第一个安卓Re,自己梳理一下最基础的流程
从网上首先下载两个工具:
dex2jar
作用:将apk反编译成java源码(classes.dex转化成jar文件)
jd-gui
作用:查看APK中classes.dex转化成出的jar文件,即源码文件
没错,最后可以将apk文件的源码反编译成JAVA代码的形式
第一步将手里的apk文件的文件尾改为rar或者zip,然后解压,可以看到一个文件叫classes.dex
这个文件就是我们接下去要处理的
第二步,把这个文件放到dex2jar 文件的目录下,在命令行下定位到dex2jar.bat所在目录,输入d2j-dex2jar.bat
运行之后会发现
(我之前忘记加d2j了,但结果是一样的)
因为没有添加路径(Windows 10 是真的坑)
给个链接:https://jingyan.baidu.com/article/7908e85ccccbf7af491ad26e.html 这里详细介绍了怎么添加路径
添加完后就可以看到有一大堆相关指令了
看了很多感觉有点迷糊,不过直接对文件直接操作就好
之后会看见生成了一个jar文件
最后用jd-gui打开这个文件就好了,我自己想的是JAVA和C也差不多,估计就是在main里面,如下图
然后作为一个从来没学过JAVA的人大概看一下,基本上就是有一个数组s,里面有一大堆数
然后当定义的check函数返回的是true时,可以得到flag
然后定义了一个arrayOfByte数组,如果每个元素与0x17异或后和s数组的每个元素相等,才能使check函数为ture
hint:异或再异或为本身
用python写个脚本
bingo!