
إخفاء كود مصدر جافا لحمايته من الهندسة العكسية، وفك الترجمة، وسرقة الملكية الفكرية. يعيد تسمية المتغيرات/الدوال، ويشفر السلاسل النصية، ويُعمّي تدفق التحكم.
JObfuscator هو أداة تشويش لكود مصدر لغة البرمجة جافا. يمكنه حماية كود مصدر جافا والخوارزميات الخاصة بك من الاختراق، والكسر، والهندسة العكسية، وفك الترجمة، وسرقة التقنية.
يستخدم JObfuscator مجموعة متنوعة من تقنيات التشويش لحماية وإخفاء الوظيفة الحقيقية لكود مصدر جافا الخاص بك.
يقوم بإعادة تسمية جميع المتغيرات والدوال، ويشوّش تدفق الكود بجعله غير خطي، ويقوم بتشفير جميع السلاسل النصية باستخدام محرك تشفير السلاسل متعدد الأشكال المتطور لدينا.
مزيد من التفاصيل التقنية، والتنزيلات، والوثائق متاحة على:
https://www.pelock.com/products/jobfuscator

وهو متاح لنظامي ويندوز ولينكس (يتطلب Mono):
https://www.pelock.com/products/jobfuscator/download
واجهات برمجة تطبيقات متعددة متاحة:
https://www.pelock.com/products/jobfuscator/api
واجهة تشويش عبر الإنترنت:
https://www.pelock.com/jobfuscator/
التطبيقات المكتوبة بلغة جافا والمترجمة إلى صيغ JAR أو WAR أو CLASS معرّضة لفك الترجمة.
هناك عدد من أدوات فك الترجمة التي يمكنها إعادة إنشاء الكود المترجم تقريبًا بالكامل إلى كود مصدر جافا.
المشكلة هي أن كود جافا المترجم يُكتب فيما يُسمى بايت كود لصالح JVM (على عكس كود وحدة المعالجة المركزية الأصلي مثل x86 أو x86-64).
بالإضافة إلى كونه موثقًا بشكل مثالي، فإن هذا الشكل من الكود يسمح بإعادة إنتاج دقيقة جدًا للتعليمات الأصلية في كود مصدر جافا عالي المستوى.
ألقِ نظرة على هذا المثال:

هذا كود جافا مفكوك الترجمة! جميع أسماء المتغيرات والخصائص والدوال قابلة للقراءة. يمكنك حتى التنقل بسهولة عبر المشروع المفكوك بالكامل، والانتقال من فئة إلى أخرى.
هل أنت متفاجئ؟ قد يكون برنامجك هو ما يحلله المنافسون، أو المخترقون، أو الكاسرون، أو أي شخص آخر.
ماذا يمكنهم أن يفعلوا به؟ في معظم الأحيان، يُسرق البرنامج أو خوارزمياته أو يُنسخ في منتجات منافسة.
في حالات أخرى، يُكسر البرنامج، ويتم تصحيح فحوصات الترخيص الواضحة في كود المصدر المفكوك، أو حتى يُعاد تجميع البرنامج المكسور بالكامل ويُنشر على مواقع القرصنة.
التشويش هو عملية تحويل كود مصدر جافا إلى نسخة محمية من نفسه.
تبقى الوظيفة دون تغيير، كل شيء يعمل بنفس الطريقة، لكن كود المصدر والبايت كود المترجم النهائي محميان من تحليل الهندسة العكسية، حتى بعد فك الترجمة.
import java.util.; import java.lang.; import java.io.*;
// // you must include a custom annotation // to enable the entire class or a single // method obfuscation // @Obfuscate class Ideone { //@Obfuscate public static double calculateSD(double numArray[]) { double sum = 0.0, standardDeviation = 0.0; int length = numArray.length;
for(double num : numArray) {
sum += num;
}
double mean = sum/length;
for(double num: numArray) {
standardDeviation += Math.pow(num - mean, 2);
}
return Math.sqrt(standardDeviation/length);
}
//
// selective obfuscation strategies
// can be applied for the entire
// class or a single method (by
// default all obfuscation strategies
// are enabled when you use @Obfuscate
// annotation alone)
//
//@Obfuscate(
// array_int_crypt = true,
// array_char_crypt = true,
// array_double_crypt = true,
// array_string_crypt = true,
// split_strings = true,
// crypt_strings = true,
// rename_methods = false,
// shuffle_methods = true,
// ints_math_crypt = true,
// dbls_math_crypt = true,
// rename_variables = true,
// mix_code_flow = true,
// string_char_vault = true,
// ints_from_double_math = true,
// opaque_mixer_chain = true,
// complexify_booleans = true,
// try_finally_noise = true,
// ints_to_arrays = true,
// dbls_to_arrays = true
// )
public static void main(String[] args) {
double[] numArray = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
double SD = calculateSD(numArray);
System.out.format("Standard Deviation = %.6f", SD);
}
}
### نفس كود مصدر Java بعد التعتيم```java
////////////////////////////////////////////////////////////////////////////////
//
// An output from JObfuscator v1.30 - Bartosz Wójcik
//
// Website : https://www.pelock.com/products/jobfuscator
// Version : v1.30
// Params : /MixCodeFlow /RenMethods /RenVars /ShuffleMethods /ArrayIntCrypt
// /ArrayDoubleCrypt /ArrayCharCrypt /ArrayStringCrypt
// /IntsMathCrypt /DblsMathCrypt /StringSplit /CryptStr
// /StringCharVault /IntsFromDoubleMath /OpaqueMixerChain
// /ComplexifyBooleans /TryFinallyNoise /IntsToArray /DblsToArray
// New lines : Windows (CRLF - \r\n)
// Date : 12.05.2026
//
////////////////////////////////////////////////////////////////////////////////
import java.util.*;
import java.lang.*;
import java.io.*;
import java.lang.Math.*;
class Ideone {