التشويش في التعليمات البرمجية المصدر مستوى أكثر فعالية من obfuscators?

StackOverflow https://stackoverflow.com/questions/413415

  •  03-07-2019
  •  | 
  •  

سؤال

التعلم من السؤال الأخير, معظم أسماء الأعضاء يبدو أن الحصول على المدرجة في إخراج المشروع.

تبحث في بعض الطفولية مثل 9rays, السمندل, الغابة, العديد من التعتيم على تقنيات يبدو أنه قد هزم بالفعل ، هناك هذا واحد المخيف المطالبة:

تلقائيا يزيل سلسلة التشفير بواسطة حقن obfuscators ~ السمندل

ذلك هو الدليل ، المصدر-رمز المستوى تشويش أكثر فعالية من بوست-ترجمة / منتصف تجميع مرغى, 'سطحية' التشويش من قبل المعروفة (هزم بسهولة??) تشويش البرامج ؟

هل كانت مفيدة؟

المحلول

التعتيم على المصدر-مدونة ستكون هزيمة الذات من حيث الصيانة.

إذا كان المشروع الخاص بك هو 'سر', أعتقد أن لديك خيارين:

  • مكان 'السرية' proprietry رمز وراء خدمة على ملقم الذي يمكنك التحكم

  • الرمز في اللغة لذلك ليس من السهل فك مثل C/C++

نصائح أخرى

ربما ديباتابلي ، ولكن عليك تدمير الصيانة للقيام بذلك.

هذا هو حقا يستحق كل هذا العناء ؟

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

كما قال الناس التشويش حول رفع البار.إذا كنت تعتم التجميع الخاص بك وسوف تتوقف عارضة المطور الذي مجرد فضول ولكن لن تتوقف قليلا دوافع الشخص من الهندسة العكسية.

إذا كنت ترغب في رفع مستوى أبعد قليلا العديد من التشويش أدوات تتيح لك استخدام الأحرف غير القابلة للطباعة مثل أسماء الأعضاء.استخدام عاكس على نفسها نظرة.سيؤدي هذا إلى إيقاف الكثير من الناس, قد تبدو في مدونة غموض في فهم ذلك, ولكن إذا كنت لا تستطيع قراءة ذلك, أنا لن أذهب من خلال الألم الإغراق إلى IL, و إعادة تسمية جميع أعضاء يدويا ، لا motiviation بالنسبة لي أن أضيع الكثير من الوقت.

ومع ذلك بالنسبة لبعض الناس هناك motiviation لذلك عليك أن تذهب خطوة أخرى إذا كان عملك متطلبات nessecitate ذلك.ولكن بغض النظر عن ما يمكنك القيام به إذا كان جهاز الكمبيوتر يمكن قراءة ذلك ، سيكون هناك شخص ما هناك الذين يمكن قراءة ذلك أيضا.الهدف هو الحد من عدد الأشخاص الذين يمكن قراءتها أو أن يكون الدافع إلى قراءتها.

هناك أيضا بعض الحيل التي يمكنك استخدامها لجعل عاكس كسر (Obfuscator من وقائية فواصل عاكس في بعض الحالات ولكن بالطبع لا يزال بإمكانك قراءة IL).كان لي محادثة مثيرة للاهتمام مرة واحدة مع المطور من obfusction أداة وأنا لن تكون قادرة على القيام بذلك العدالة لكنه كان وسيلة لجعل عاكس كلي كسر من خلال وجود قانون القفز حيوي في جميع أنحاء.على سبيل المثال لحظة واحدة في وظيفة الخاص بك ثم تقفز إلى منتصف وظيفة ب.Doign هذا يسبب PEVerify لرفع الأخطاء حتى أنها لم تنفذ فعلا ولكن نوع من أنيق فكرة.

annakata هو الصحيح.حقا كل ما يمكنك القيام به هو جعل الأمر أكثر صعوبة (ومكلفة) للشخص عكس هندسة البرمجيات.

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

العديد من المجالات الحيوية (دونجل حماية الاتصال مع المعادن آلات القطع) يقيمون في Win32DLL.مما يعني أن عليهم أن تعرف الجمعية و كيفية جعل DLL التي تحاكي الأخرى DLLs التوقيعات من أجل عكس هندسة البرمجيات لدينا.بالإضافة إلى التصميم لدينا مع كاميرا البرنامج هو أنه هو درجة عالية من التفاعلية مع آلة قطع (المعلومات التي يتم تبادلها في كل وقت)

من بعض الوقت سمعنا عن المنافسين في محاولة للتعامل مع الآلات وحدها الجرح استبدال الالكترونيات مع الخاصة بهم من أجل إنهاء المهمة.باكز كبيرة للقيام بذلك.

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

عن الحالة الخاصة بك ، عليك أن تسأل نفسك ما هو الجزء من البرنامج سوف تكون ذات فائدة منافسيك وننطلق من هناك.إذا كنت من السوق العمودي المطور (آلة التحكم المتخصصة المحاسبة ، الخ) أقترح باستخدام USB دونجل مراقبة البرامج.

وإلا استخدام رقم تسلسلي النظام يقبل أن الناس سوف القراصنة البرمجيات الخاصة بك وبناء ذلك في نموذج الأعمال التجارية الخاصة بك.الغرض من الرقم التسلسلي مخطط نسبيا أونينتروسيفي و يعيق السببية نسخ بالإضافة إلى إعطاء فرصة بعيدة تعقب فيها نسخ جاءت من.

المشكلة هناك سوف تكون التضحية القراءة للقيام بذلك.إذا كان المشروع الخاص بك هو مقدس لحماية, وأعتقد أنه من الأسلم أن نفترض أمرين:

  1. المشروع هو كبير بما فيه الكفاية أن ضرب في القراءة سوف يعود إلى لدغة لك.
  2. الناس الذين يرغبون في الهندسة العكسية انها لن تفعل ذلك على أي حال.أنها سوف تأخذ فقط أكبر قليلا الفذ الاستخبارات لتحديد ما الأشياء (بدلا من مجرد قراءة أسماء الأعضاء).

أنا قلق من أن كنت تفكر في التعليمات البرمجية مستوى التشويش.لا يكون تشويش الكود لنفسك أيضا ؟ كيف تنوي أن تعمل من أي وقت مضى على ذلك مرة أخرى ؟ أجل الصيانة هذا لا ينبغي القيام به.

ولكن النظر في هذا:-

لنفترض كان هناك نص/التطبيق أنه يمكنك تشغيل هذا من شأنه أن يفتح المشروع الخاص بك بذكاء obfuscate كل سلسلة/اسم المتغير في المشروع الخاص بك وأنت جمعت بعد ذلك في حين الخاص بك رمز الأصلي هو آمن يمسها في موقع منفصل.

الآن هذا هو فكرة.

في الواقع رمز المستوى التشويش أقل أمنا مما obfuscators هناك يمكن القيام به.هذا هو في المقام الأول لأن obfuscators يمكن الاستفادة من الصارم CLI تنفيذ التفاصيل التي لا يسمح بها اللغة المجمعين.على سبيل المثال, هو قانوني تماما عن حقول خاصة إلى كل نفس الاسم ولكن ليس هناك مترجم هناك والتي سوف تسمح لك أن تفعل ذلك.

يمكنك استخدام تقنية مثل هذا : http://g.palem.in/SecureAssembly.html باستخدام هذه الكتابة في .صافي ولكن يمكنك تضمين في c++ القابل للتنفيذ الخاص بك .صافي قابل للتنفيذ ،

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top