आज मैं एक obfuscated कक्षा (अच्छी तरह से एक जार में obfuscated कक्षाओं) में आया था और मुझे इस बात का कोई संकेत नहीं है कि इस तरह के obfuscation कैसे किया जाता है।जावा में obfuscation कैसे किया जाता है?
एक उदाहरण:
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();
}
}
}
ऊपर दिखने के रूप में, सभी पैरामीटर चर एक बर्फ आदमी हैं। इसे पूर्ववत कैसे किया जा सकता है? यह भी पहली जगह में कैसे किया जाता है; JVM कैसे "प्रक्रिया" करने में सक्षम है और बिना किसी समस्या के कोड निष्पादित करता है?
स्पष्टीकरण के लिए, मैं इस कोड का उपयोग नहीं करने जा रहा हूं, यह केवल शैक्षणिक उद्देश्यों के लिए है। मैं स्कूल में कंप्यूटर साइंस कोर्स ले रहा हूं, इसलिए हम जावा सीख रहे हैं और विकृतियों जैसे सीमाओं की बात कर रहे हैं। मुझे और सीखने में दिलचस्पी है, इसलिए मैंने बड़ी परियोजनाओं विशेष रूप से सर्वरों पर नजर डालने का फैसला किया। कोड का यह टुकड़ा माइग्राफ्ट (ए गेम) के लिए स्पिगॉट सर्वर से निकाला गया है जो का कांटा है Minecraft के लिए बुक्किट सर्वर जो ओपन सोर्स माना जाता था।
किसी अन्य यूनिकोड वर्ण की तरह एक यूनिकोड वर्ण है यही कारण है कि। आप इसकी अपेक्षा क्यों नहीं करेंगे? – SLaks
वैसे मैं आपका बिंदु देखता हूं, मुझे पता है कि यह है और यह विशेष रूप से "\ u2603" है लेकिन मुझे नहीं पता कि यह कैसे किया जा सकता है, और पूर्ववत किया गया है ...: - धन्यवाद। –
यह किसी भी अन्य चर नाम की तरह है। उदाहरण के लिए, आप एक चर 'x' नाम दे सकते हैं।यह सिर्फ एक चर है जिसका नाम '☃' है। कोई "पूर्ण" या "पूर्ववत" नहीं है, यह सिर्फ इतना है कि आप जो भी पात्र चाहते हैं उसके साथ एक वैरिएबल नाम लिख सकते हैं। –