https://www.52pojie.cn/thread-949997-1-1.html
dex2jar 2.0版都不能反编译某些dex了,刚找到2.1版可以
1.首先找到Android软件安装包中的class.dex
把apk文件改名为.zip,然后解压缩找到其中的class.dex,它就是java文件编译再通过dx工具打包成的,所以现在我们就用dex2jar工具来逆向导出java源文件;
2.把class.dex拷贝到dex2jar.bat所在目录,即dex2jar目录下。cmd进入dex2jar所在的目录然后运行
d2j-dex2jar.bat classes.dex,生成classes-dex2jar.jar就是所要转化的jar包。
apk解包用apktool
java -jar apktool.jar d -f D:\tool\Reverse\Transformers.apk -o rank
解包完发现 liboo000oo.so
在kali里面解析它,可以看到一些基本信息。
放入IDA进行反编译
loc_B52 B66 B7A是咱们输入的三个参数所对应的位置,
这三行是整体的条件,内部其实类似于一个for循环,不断异或
后面两个跟第一个差不多,只是第三个步骤多了一些
for循环的判断条件是R0=0x25,在那之前一直异或
RC4算法:https://blog.csdn.net/huangyimo/article/details/82970903
搞清楚数据的存储,还有运算。对应到汇编码的数据,存储上就行了。汇编代码只是直接调用,只需要把那段字符串找到,构造密钥(见解析),解密的过程是另外单独做的。初始化临时向量的目的是确定了解密的唯一性,只是说明在这个时间,这个人开这把锁,来确保身份的固定化和唯一性。算法内容没关系,只是确保了这次通信的合法性而已。(了解一下数据安全中的哈希校验)