《攻防世界》MOBILE--app1
1. 将app1.apk拉进JEB分析发现题目很简单,就是java层的分析,简单的分析下,就是我们输入的字符串长度要等于versionName的长度、然后就是字符串逐个字符要等于versionName.charAt(v0) ^ v4)、那么就好办了。this.btn.setOnClickListener(new View$OnClickListener() {public void onClick(View arg10) {
try {
String v1 = MainActivity.this.text.getText().toString();
PackageInfo v2 = MainActivity.this.getPackageManager().getPackageInfo("com.example.yaphetshan.tencentgreat", 0x4000);
String v3 = v2.versionName;
int v4 = v2.versionCode;
int v0 = 0;
while(v0 < v1.length()) {
if(v0 >= v3.length()) {
break;
}
if(v1.charAt(v0) != (v3.charAt(v0) ^ v4)) {
Toast.makeText(MainActivity.this, "再接再厉,加油~", 1).show();
return;
}
else {
++v0;
continue;
}
}
if(v1.length() != v3.length()) {
goto label_39;
}
Toast.makeText(MainActivity.this, "恭喜开启闯关之门!", 1).show();
return;
}
catch(PackageManager$NameNotFoundException v5) {
}
label_39:
Toast.makeText(MainActivity.this, "年轻人不要耍小聪明噢", 1).show();
}
});2.将versionName.charAt(v0) ^ v4 的值输出,因为输出的值都是int值,所以需要进行对ASCLL码转换@Test
public void demo2() {
String versionName = "X<cP[?PHNB<P?aj";
int versionCode = 15;
for (int i = 0; i < versionName.length(); i++) {
System.out.print((char) (versionName.charAt(i) ^ versionCode));
}
//输出:W3l_T0_GAM3_0ne
} 感谢楼主分享,学习学习。
页:
[1]