这是一个安卓逆向题。用安卓逆向工具进行分析,我在这里用的jeb
工具,附上资源和无法正常启动解决方案的链接:https://www.52pojie.cn/thread-722648-1-1.html运行jeb
,将app-release. apk拉入jeb
进行分析

展开Bytecode查看该应用代码结构

发现有两个java源码文件,分别查看,发现a中使用了MainActivity

查看MainActivity的内容,发现一个加密循环,是将一串字符的每一个字符都和18进行异或

结合a的代码确定,将一串字符串通过MainActivity内的加密得到的密文和
PXEJPMQFTiS|v`\"#vMDw`KMA3_b~w3o
进行对比,若一样则显示Contratulations! You Got Correct Flag.
那么将
PXEJPMQFTiS|v`\"#vMDw`KMA3_b~w3o
与18异或一次即可得到应输入的字符串脚本如下
#include<iostream> using namespace std; int main() { char a[]={"PXEJPMQFTiS|v`\"#vMDw`KMA3_b~w3o"}; for(int n=0;n<39;n++) { a[n]^=18; } cout<<a<<endl; return 0; }
文章来源: https://blog.csdn.net/qq_30097049/article/details/89840169