[BUUCTF]简单注册器 WP
这是一道安卓的逆向题,因为刚开始做逆向,没怎么见过这种题,记录一下
使用的工具 jadx
下载地址:https://github.com/skylot/jadx/releases/
链接: link
一
下载后是一个Apk文件,直接放入jadx中
找到主函数,发现关键代码
if (flag == 1) {
char[] x = "dd2940c04462b4dd7c450528835cca15".toCharArray();
x[2] = (char) ((x[2] + x[3]) - 50);
x[4] = (char) ((x[2] + x[5]) - 48);
x[30] = (char) ((x[31] + x[9]) - 48);
x[14] = (char) ((x[27] + x[28]) - 97);
for (int i = 0; i < 16; i++) {
char a = x[31 - i];
x[31 - i] = x[i];
x[i] = a;
}
String bbb = String.valueOf(x);
textview.setText("flag{" + bbb + "}");
return;
flag就是对这个x数组进行下面的操作后得到的字符串,因此,就写个脚本进行同样的操作即可得到flag
#include<bits/stdc++.h>
using namespace std;
int main()
{
char x[] ="dd2940c04462b4dd7c450528835cca15";
x[2] = ((x[2] + x[3]) - 50 );
x[4] = (char) ((x[2] + x[5]) - 48);
x[30] = (char) ((x[31] + x[9]) - 48);
x[14] = (char) ((x[27] + x[28]) - 97);
for (int i = 0; i < 16; i++) {
char a = x[31 - i];
x[31 - i] = x[i];
x[i] = a;
}
cout<<"flag{"<<x<<"}"<<endl;
}
Note:本题就是对jadx的初步使用