吾爱论坛2023年春节红包安卓题,随便玩一玩;
https://www.52pojie.cn/thread-1738015-1-1.html
第三题:https://www.52pojie.cn/home.php?mod=task&do=view&id=22
首先我们下载后,打开apk是提示要点击 999次即可通关;
注意: 在非自己环境下,建议做题把手机声音关闭,hhhh (只可意会不可言传)
直接上jadx反编译吧;
了解安卓启动流程直接看一下就明白了了;
流程:onCreate -> onClick -> m60onCreate$lambda0
public static final void m60onCreate$lambda0(MainActivity this$0, TextView key, View view) {
Intrinsics.checkNotNullParameter(this$0, "this$0");
Intrinsics.checkNotNullParameter(key, "$key");
MainActivity mainActivity = this$0;
this$0.jntm(mainActivity);
key.setText(String.valueOf(this$0.num));
if (this$0.check() == 999) {
Toast.makeText(mainActivity, "快去论坛领CB吧!", 1).show();
key.setText(this$0.decrypt("hnci}|jwfclkczkppkcpmwckng\u007f", 2));
}
}
当点击999次直接走 decrypt 方法:
public final String decrypt(String encryptTxt, int i) {
Intrinsics.checkNotNullParameter(encryptTxt, "encryptTxt");
char[] charArray = encryptTxt.toCharArray();
Intrinsics.checkNotNullExpressionValue(charArray, "this as java.lang.String).toCharArray()");
StringBuilder sb = new StringBuilder();
for (char c : charArray) {
sb.append((char) (c - i));
}
String sb2 = sb.toString();
Intrinsics.checkNotNullExpressionValue(sb2, "with(StringBuilder()) {\n… toString()\n }");
return sb2;
}
再看下传参:“hnci}|jwfclkczkppkcpmwckng\u007f”, 2
所以直接可以的出来 flag 了,这道题手动分析都可以知道结果了;