
أداة للعب مع التشفير، موجهة لتحليل برامج الفدية.
أداة للعب بالتشفير، موجهة نحو تحليل برامج الفدية.

جميع طرق العرض السداسية المستخدمة في CryptoTester تقدم بعض الإمكانيات المحسّنة.
0D 0A) ملونة بالأرجوانيفي العديد من طرق العرض (مثل Input و Output)، يؤدي النقر على صف الإزاحة (الـ 00 01 02 03... أعلى العرض المعني) إلى فتح حوار يظهر البايتات إلى جانب العرض المفكوك.
معظم المدخلات التي تقبل عددًا صحيحًا تقبل أيضًا قيمًا ووظائف خاصة.
أمثلة:
x10 -> 16len -> 400block -> 16 (حجم كتلة الخوارزمية المحددة)up(60, 16) -> 64down(60, 16) -> 48يمكن استخدام العمليات الحسابية البسيطة مع هذه الدوال.
up(len-x100, b) - يطرح 256 من طول المدخل، ثم يقرب لأعلى إلى أقرب حجم كتلة للخوارزمية المحددة (مثل 16 لـ AES)أي قيم سالبة تُفترض أنها len - value، أي نسبة إلى نهاية المدخل.
تحتوي اللوحة الرئيسية على أدوات لاستخدام الأساسيات التشفيرية على أحد المدخلات. يقبل العرض السداسي Input اللصق المباشر للبايتات، أو يمكن استخدام قائمة File لتحميل ملف، نص، بايتات مشفرة بـ base64، إلخ. يمكن أيضًا سحب وإفلات ملف مباشرة في العرض.
يسمح بتحديد مفتاح بعدة صيغ، ويحتوي على خيارات للعديد من دوال التجزئة (hashing) واشتقاق المفاتيح (key derivation)؛ تتكيف هذه الحقول مع الخوارزمية المحددة حاليًا وما يمكنها دعمه.
ملاحظة: تتم معالجة المفتاح بنفس الترتيب الذي يظهر به في واجهة المستخدم؛ أولاً يتم فك ترميز المفتاح وفقًا لـ
Format، ثم يتم تجزئته باستخدام معلماتHash، وأخيرًا يتم اشتقاقه باستخدام معلماتDeriveقبل تسليمه إلى الخوارزمية التشفيرية. اعتبارًا من الإصدار 1.7.0.0، يمكنك تبديل ترتيب معالجةHashوDerive.
يتم عرض طول المخرجات النهائي للمفتاح فوق مربع الإدخال. النقر عليه سيعرض المفتاح المحسوب النهائي في حوار منفصل.

يسمح بتحديد خوارزمية تشفير ومعاملاتها، إذا كان مدعومًا.
ملاحظة: سيتم ملء
IV Bytes(أوNonce، اعتمادًا على الخوارزمية) تلقائيًا كبايتات00بالطول المناسب للخوارزمية إذا تُرك فارغًا.
يمكن تحديد المدخل باستخدام وضعين مختلفين: "نطاق" (Range) و "قطع" (Chunks).
نطاق بسيط يبدأ عند Offset، ويأخذ Length بايت.
سيتم تحديث Length تلقائيًا كلما تم تغيير Input، ما لم يتم تحديد خانة الاختيار Lock Parameters.
إذا قمت بإجراء بعض الحسابات في حقل Length، وتريد العودة إلى الطول الفعلي لـ Input، يمكنك ببساطة الضغط على زر Reset Length.
إذا تم تحديد Splice Remaining Bytes، فسيتم إضافة أي بايتات قبل Offset إلى بداية Output، وأي بايتات بعد Offset+Length تُلحق بالنهاية.

يأخذ Take بايت، ثم يتخطى Skip بايت، ويأخذ Take بايت، ويتخطى Skip بايت... حتى نهاية Input. يمكن استخدام هذا للنص المشفر (ciphertext) الذي هو في الواقع "متداخل" (interleaved) بين أجزاء من النص العادي (plaintext). يتم تشغيل الخوارزمية التشفيرية على الأجزاء الناتجة كقطعة واحدة متسلسلة، دون إعادة تعيين المفتاح/IV/nonce إلخ.
إذا تم تحديد Splice Remaining Bytes، فسيتم إعادة دمج أي بايتات في قسم Skip في Output.

يعرض هذا القسم معلومات بسيطة عن Input مثل حجم الملف، نوع MIME المكتشف (إذا كان ملفًا)، الإنتروبيا الكلية، وما إذا كان قابلاً للقسمة على 16 (حجم كتلة شائع).
طريقتا عرض Input و Output لهما تمرير متزامن؛ لتعطيل هذا، قم بإلغاء تحديد خانة الاختيار Syncronized scrolling بينهما.
يمكن استخدام الزر 🡨 بين Input و Output لنقل Output إلى عرض Input.
يمكن تجزئة (hashing) Input أو Output باستخدام القوائم المنسدلة الخاصة بهما أسفل كل عرض. يمكن أيضًا تشغيل خوارزمية تحقق (verify) على Output (دعم محدود لـ ECDSA حاليًا).
تتيح هذه اللوحة مقارنة ملف مشفر مع نسخته الأصلية. يدعم كلا العرضين السحب والإفلات، أو يمكن استخدام File -> Open File لفتح Original و Encrypted بالتتابع.
يمكن أيضًا ملء عرض Original باستخدام أي من خيارات File -> Input؛ على سبيل المثال، المقارنة مع طول معين من البايتات الصفرية أو صورة Windows النموذجية Chrysanthemum.jpg.
طريقتا عرض Original و Encrypted لهما تمرير متزامن؛ لتعطيل هذا، قم بإلغاء تحديد خانة الاختيار Syncronized scrolling بينهما.
يمكن استخدام الزر ⇆ بين عرضي Original و Encrypted لتبديل محتوياتهما.
سيتم عرض أي بايتات تختلف بين العرضين باللون الأحمر الداكن.

يعرض معلومات أساسية عن عرضي Original و Encrypted على التوالي.
بمجرد ملء كلا العرضين، يتم إجراء تحليل سريع عليهما.
Original موجودة في EncryptedEncryptedEncrypted (UTF-8 أو UTF-16)Encrypted (بأشكال وترميزات مختلفة)Encryptedتتيح هذه اللوحة الاستخدام الأساسي لمجموعة من خوارزميات الضغط، ولها وظائف مشابهة للوحة Encrypt/Decrypt.
أداة لتحليل blobs الخاصة بـ CryptoAPI و CNG.
يمكن استيراد/تصدير BLOBs من/إلى صيغ ثنائية، base64، PEM، XML، و ASN.1، حيثما كان مدعومًا.

أدوات إضافية متعلقة بـ BLOB والتي يتم تفعيلها فقط لأنواع BLOB المدعومة حسب الاقتضاء.
يقوم بتوليد blob من CryptoAPI. يتم تحديث Bit Length تلقائيًا بقيم مدعومة لـ aiKeyAlg المحددة. لاحظ أن بعض مجموعات bType و aiKeyAlg غير صالحة، وستؤدي إلى خطأ من مزود CryptoAPI.

ملاحظة: يتم إنشاء المفاتيح داخليًا باستخدام CryptGenRandom، لكنني لا أستطيع ضمان الأمان التشفيري لاستخدام المفاتيح المُنشأة من هذه الأداة.
أداة لتحليل/حساب مفاتيح RSA. يتم عرض معلمات المفتاح المنفصلة، ويمكن إظهارها كعدد عشري أو سداسي. إذا كانت المعلمات كافية، يمكن حساب باقي المفتاح.
يمكن تصدير المفتاح بعدة صيغ بما في ذلك blob من CryptoAPI، blob من CNG، PEM، XML، و ASN.1، إما إلى ملف، الحافظة، أو النافذة الرئيسية (تشفير/فك تشفير). بالإضافة إلى ذلك، إذا تم التصدير إلى النافذة الرئيسية، يمكن تصدير الأعداد الصحيحة الأولية لخوارزمية Raw RSA.

أداة تبحث في ملف عن مفتاح تشفير بعدة صيغ.
أمثلة على الصيغ المدعومة:

أداة لاختبار خوارزميات PRNG المعروفة المختلفة.

تعيين Seed الأولي لـ PRNG.
تعيين Algorithm لـ PRNG، مع Length للمخرجات المراد إنتاجها، و Modulus اختياري لتطبيقه على كل مخرج. على سبيل المثال، يمكن استخدام Modulus بقيمة xFF لتحويل كل مخرج إلى بايت.
إذا تم تحديد Alpha:
يتم أيضًا عرض الإنتروبيا للمخرجات المنتجة لمخرجات Alpha. هذا تقدير تقريبي للإنتروبيا (أو عدد الاحتمالات) للتخمين الأعمى للمخرجات (بدون مهاجمة PRNG مباشرة).
أداة لاستخدام ترميزات قواعد مختلفة. تدعم مجموعات الأحرف الافتراضية القياسية، أو قم بتوفير مجموعة أحرف مخصصة خاصة بك.
باستثناء المشفرات التي تستخدم مجموع اختباري (checksum) (مثل Base58Check في Bitcoin)، يتم فك الترميز دون التحقق من الحشو (padding)، لذلك حتى الترميزات الجزئية أو التالفة سيتم فك ترميزها خامًا.

أداة لعرض النص أو البايتات كـ ASCII و UTF-8 و UTF-16 في وقت واحد.

أداة للتحقق من نقاط المنحنى البيضاوي (elliptical curve). يمكن الاستيراد/التصدير من/إلى ECPoint (بصيغ غير مضغوطة أو مضغوطة)، PEM، أو blob من CNG.

عمليات متنوعة يمكن تنفيذها بناءً على اللوحة الحالية.
تأخذ Original و Encrypted من لوحة Compare، وتطبق عملية XOR أو AND، وتعرض دفقًا.
يستخدم معلومات الخوارزمية من لوحة Encrypt/Decrypt ويولد keystream بطول معين لحفظه في ملف.
يعرض رسمًا بيانيًا للفرق بين البيكسلات في لوحة Compare.

يستخدم مواد المفتاح المقدمة و Input من لوحة Encrypt/Decrypt، ومخرجات متوقعة معينة، ويحصر جميع الخيارات الممكنة في قسم Encryption Options لمحاولة العثور على تطابق.
يمكن استخدام هذه الأداة لاختبار قائمة أو مجلد من المفاتيح المعروفة ضد Input باستخدام معلمات الشفرات المحددة.
Byte Count بايت من الملف في كل مرة.إذا تمت مطابقة مفتاح بنجاح، سيتم تفعيل زر Select للسماح بتمرير المفتاح ومعلماته إلى النافذة الرئيسية.

باستخدام حجم كتلة الشفرة المحددة، يحصر كل كتلة ممكنة ويحاول فك التشفير باستخدام المفتاح المحدد.
مثال: لديك مفتاح خاص RSA-2048، وكتلة بايتات بحجم 0x1000 من نص مشفر محتمل كـ Input. باستخدام هذه العملية سيتم تجربة فك تشفير Input[0x00:0x100]، ثم Input[0x01:0x101]، ثم Input[0x02:0x102]، وهكذا...
ملاحظة: تدعم هذه العملية حاليًا خوارزمية RSA فقط. وهي أيضًا محدودة بحد أقصى 10000 بايت إدخال.
استخدام endian الصغير داخليًا (إذا كانت الخوارزمية تدعمه).
يسمح بتعيين معلمات مخصصة إذا كانت الخوارزمية المحددة تدعم أيًا منها. على سبيل المثال، عائلة خوارزميات Salsa20 تدعم جولات مخصصة، ثابت، موضع، أو إدخال مصفوفة خام.
خيارات لـ IV، مثل الإدخال من نص أو base64، واستعادة IV من نص عادي معروف.
إعدادات مسبقة لأنظمة تشفير معينة، مثل OpenSSL.
أدوات صغيرة للتحويل.
تحويل عدد صحيح إلى DWORD، أو بايتات DWORD إلى عدد صحيح.

تحويل بايتات سداسية إلى قائمة أعداد صحيحة، أو قائمة أعداد صحيحة إلى بايتات. يمكن تعيين المسافات والفواصل للمخرجات اختياريًا.
