Heute stieß ich auf eine verschleierte Klasse (auch viele verschleierten Klassen in einem Glas), und ich habe keine Ahnung, wie man diese Art von Verschleierung erfolgt.Wie wird die Verschleierung in Java getan?
Ein Beispiel:
protected void a(ChannelHandlerContext ☃, ByteBuf ☃, ByteBuf ☃)
throws Exception
{
int ☃ = ☃.readableBytes();
if (☃ < this.c)
{
☃.b(0);
☃.writeBytes(☃);
}
else
{
byte[] ☃ = new byte[☃];
☃.readBytes(☃);
☃.b(☃.length);
this.b.setInput(☃, 0, ☃);
this.b.finish();
while (!this.b.finished())
{
int ☃ = this.b.deflate(this.a);
☃.writeBytes(this.a, 0, ☃);
}
this.b.reset();
}
}
}
Wie Sie oben sehen, werden alle Parameter-Variablen sind ein Schneemann. Wie kann dies rückgängig gemacht werden? Wie wird es überhaupt gemacht? Wie kann die JVM diese "verarbeiten" und den Code ohne Probleme ausführen?
Um zu verdeutlichen, werde ich diesen Code nicht verwenden, es ist nur für Bildungszwecke. Ich nehme den Computerwissenschaften-Kurs in der Schule, da wir Java lernen und über Einschränkungen wie Dekompilierungen sprechen. Ich bin daran interessiert, mehr zu lernen, also habe ich beschlossen, größere Projekte, insbesondere Server, zu betrachten. Dieses Stück Code wird aus dem Spigot Server für Minecraft (ein Spiel) gezogen, das ist eine Gabel von Bukkit Server für Minecraft, die Open Source sein sollte.
Das ist ein Unicode-Zeichen wie jedes andere Unicode-Zeichen ist. Warum würdest du erwarten, dass es nicht funktioniert? – SLaks
Nun, ich Ihren Punkt sehen, ich weiß, es ist, und es ist „\ u2603“ speziell, aber ich verstehe nicht, wie es getan werden kann, und wieder rückgängig gemacht ...: -) Dank. –
Es ist wie jeder andere Variablenname. Sie können beispielsweise eine Variable "x" benennen.Dies ist nur eine Variable mit dem Namen '☃'. Es gibt keine "erledigt" oder "rückgängig gemacht", es ist nur, dass Sie einen Variablennamen mit beliebigen Zeichen schreiben können. –