纯Java实现,不涉及so, flag加密之后与指定字符串 “wigwrkaugala"比较判断,循环一个个字符加的,那可以一个个字符对应还原。
加密算法就在a,b类里面,代码直接复制到idea ,枚举暴力破解。
每一位输入范围a-z , 找到对应的加密字符"wigwrkaugala”
a,b 类直接复制就行,没什么需要改的。
一位一位的找,执行12次就可以了。
public static void main(String[] args) {
String old = ""; //这里填对应的结果
char ch = 'a';
for (int i = 0; i < 26; i++) { //a-z 循环
String temp = String.valueOf((char)(ch + i));
String s = old + temp;
System.out.println("s = " + s);
b b0 = new b(2);
a a0 = new a(3);
StringBuilder stringBuilder0 = new StringBuilder();
int v1 = 0;
for(int v = 0; v < s.length(); ++v) {
stringBuilder0.append(new easyjava().d((s.charAt(v) + ""), b0, a0));
Integer integer0 = b0.b() / 25;
if(integer0 > v1 && integer0 >= 1) {
++v1;
}
}
System.out.println("sb= " + stringBuilder0);
b.reset(); //重置b类的静态变量
a.reset(); //重置a类的静态变量
}
}
private char d(String s, b b0, a a0) {
return a0.a(b0.a(s));
}
大致流程就是每一位都遍历a-z,找到加密结果和wigwrkaugala 对应上。
对应的加密结果:最后算出来是有多个解。
v->w
ve->wi
ven->wig
veni->wigw
veniv->wigwr
venivi->wigwrk
venivia->wigwrka 有2个 venivid->wigwrka 第7位两个解
veniviai->wigwrkau
veniviaiv->wigwrkaug
veniviaivi->wigwrkauga 又有2个 veniviaivk ->wigwrkauga 第10位两个解
veniviaivic->wigwrkaugal
veniviaivici->wigwrkaugala 又有2个 veniviaivicr->wigwrkaugala 第12位两个解
注意点1:
jeb的自动解密导致代码错误。
jeb自动把b.b解密成“abcdefghijklmnopqrstuvwxyz”,而b.b 运行中是会变化的。
关掉jeb 自动解密:
注意点2:
类a,b 执行过程中是变化的,执行不同次数结果是不一样的。
另外a,b类里面有静态变量,遍历完一次需要重置恢复到初始值不然加密结果不对。