"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيف يمكننا تشويش السلاسل المضمنة في الثنائيات القابلة للتنفيذ بشكل فعال؟

كيف يمكننا تشويش السلاسل المضمنة في الثنائيات القابلة للتنفيذ بشكل فعال؟

تم النشر بتاريخ 2024-12-22
تصفح:128

How Can We Effectively Obfuscate Strings Embedded in Executable Binaries?

تشويش السلاسل في الكود الثنائي

بيان المشكلة

يعد تشويش السلاسل المضمنة في الثنائيات القابلة للتنفيذ مفيدًا لحماية المعلومات الحساسة مثل مفاتيح التشفير من الوصول غير المصرح به. ومع ذلك، يمكن للطرق المباشرة مثل تخزين السلسلة في مصفوفة أحرف أن تكشف محتوياتها بسهولة أثناء التحليل.

الحل

لإخفاء السلاسل بشكل فعال في الثنائيات المجمعة، يمكن استخدام نهج أكثر تعقيدًا. خذ بعين الاعتبار المثال التالي:

#include "HideString.h"

DEFINE_HIDDEN_STRING(EncryptionKey, 0x7f, ('M')('y')(' ')('s')('t')('r')('o')('n')('g')(' ')('e')('n')('c')('r')('y')('p')('t')('i')('o')('n')(' ')('k')('e')('y'))
DEFINE_HIDDEN_STRING(EncryptionKey2, 0x27, ('T')('e')('s')('t'))

int main()
{
    std::cout 

يتضمن هذا الرمز ماكرو مخصص، "DEFINE_HIDDEN_STRING،" لتشفير السلسلة المحددة. يقوم الماكرو بتشفير كل حرف باستخدام مفتاح فريد مشتق من القيمة الأولية المتوفرة (على سبيل المثال، "مفتاح التشفير القوي الخاص بي" -> 0x7f). يتم تطبيق خوارزمية تشفير تعتمد على البذرة على تسلسل الأحرف، مما يجعل البيانات الناتجة تظهر عشوائية ويصعب التعرف عليها في الملف الثنائي المترجم.

#define CRYPT_MACRO(r, d, i, elem) (elem ^ (d - i))
#define DEFINE_HIDDEN_STRING(NAME, SEED, SEQ) \
static const char* BOOST_PP_CAT(Get, NAME)() \
{ \
    static char data[] = { \
        BOOST_PP_SEQ_ENUM(BOOST_PP_SEQ_FOR_EACH_I(CRYPT_MACRO, SEED, SEQ)), \
        '\0' \
    }; \
    static bool isEncrypted = true; \
    if (isEncrypted) \
    { \
        for (unsigned i = 0; i 

يؤدي هذا الأسلوب إلى تشويش السلاسل المضمنة داخل الكود الثنائي بشكل فعال، مما يجعل من الصعب استخراجها دون معرفة مفتاح التشفير والخوارزمية. فهو يحقق التوازن بين الأمان وسهولة الاستخدام، ويقدم طريقة ملائمة لحماية المعلومات الحساسة.

أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3