مضاهاة حدث استدعاء الوظيفة. وظيفة استدعاء حدث مضاهاة ماذا يعني استدعاء مضاهاة؟


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

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

على الأرجح ، لن أحتاج أبدًا إلى استخدام مثل هذه الأداة ، ولكن ، من الناحية النظرية البحتة ، ربما يكون لدى شخص ما مهمة تتبع مكالمة إلى وظيفة معينة ، وتلقي تقرير عن كل مكالمة ، ويتألف من:

  1. نتيجة التنفيذ
  2. مرت الحجج
  3. سياق المكالمة (ما هذا عندما يسمى)
  4. عدد استدعاءات الوظائف بعد إنشاء المعالج
(هذه القائمة متوافقة تمامًا مع الوسائط التي تم تمريرها إلى المعالج)

addCallListener = function (func، callback) (var callNumber = 0؛ return function () (var args = .slice.call (arguments)؛ var result؛ try (result = func.apply (this، arguments)؛ callNumber ++؛) catch (هـ) (رد الاتصال (e ، args ، this ، callNumber) ؛ رمي e ؛) رد الاتصال (نتيجة ، أرغس ، هذا ، رقم المكالمة) ؛ نتيجة إرجاع ؛))

بسيط جدا وقصير ، أليس كذلك؟

ثم نعيد تعريف بعض الوظائف على النحو التالي:

SomeFunct = addCallListener (someFunct، function (result، args، self، callNumber) (// Do Something)) ؛ // أو Constructor.prototype.method = addCallListener (Constructor.prototype.method، function (result، args، self، callNumber) (// Do Something)) ؛

من الواضح أنه يجب أن يكون "مرئيًا" في جزء الكود الذي يحدث فيه.

بعض الأمثلة
لتشغيل الأمثلة ، يجب أن يكون لديك وحدة تحكم مفتوحة (في الكروم يطلق عليها Ctrl + Shift + i).

بفضل الرفاق من منتدى javascript.ru للنقد والإضافات.

محدث
وسّع الوظيفة قليلاً: الآن بدلاً من رد نداء واحد ، يتم تمرير الكائن كمتغير ثانٍ

  1. قبل (يسمى قبل أن تبدأ الوظيفة)
  2. نجاح (يسمى إذا نجحت الوظيفة)
  3. خطأ (إذا حدث خطأ)
  4. بعد (يسمى على أي حال ، بغض النظر عن النجاح)
كل معالج يتم تمرير كائن
  1. النفس (السياق)
  2. الاسم (اسم الوظيفة)
  3. الحالة ("خطأ" أو "نجاح")
  4. SuccessNumber (عدد المكالمات الناجحة)
  5. errorNumber (عدد المكالمات التي بها خطأ)
  6. النتيجة (النتيجة ، إن وجدت)
  7. خطأ (خطأ ، إن وجد)
بالإضافة إلى ذلك ، أصبحت وظيفة addCallListener الآن جزءًا من كائن مُنشئ الوظيفة لتجنب الاصطدام بالنافذة أو العملية.

يمكنك شوكة واختبار هنا.

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

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

على الأرجح ، لن أحتاج أبدًا إلى استخدام مثل هذه الأداة ، ولكن ، من الناحية النظرية البحتة ، ربما يكون لدى شخص ما مهمة تتبع مكالمة إلى وظيفة معينة ، وتلقي تقرير عن كل مكالمة ، ويتألف من:

  1. نتيجة التنفيذ
  2. مرت الحجج
  3. سياق المكالمة (ما هذا عندما يسمى)
  4. عدد استدعاءات الوظائف بعد إنشاء المعالج
(هذه القائمة متوافقة تمامًا مع الوسائط التي تم تمريرها إلى المعالج)

addCallListener = function (func، callback) (var callNumber = 0؛ return function () (var args = .slice.call (arguments)؛ var result؛ try (result = func.apply (this، arguments)؛ callNumber ++؛) catch (هـ) (رد الاتصال (e ، args ، this ، callNumber) ؛ رمي e ؛) رد الاتصال (نتيجة ، أرغس ، هذا ، رقم المكالمة) ؛ نتيجة إرجاع ؛))

بسيط جدا وقصير ، أليس كذلك؟

ثم نعيد تعريف بعض الوظائف على النحو التالي:

SomeFunct = addCallListener (someFunct، function (result، args، self، callNumber) (// Do Something)) ؛ // أو Constructor.prototype.method = addCallListener (Constructor.prototype.method، function (result، args، self، callNumber) (// Do Something)) ؛

من الواضح أنه يجب أن يكون "مرئيًا" في جزء الكود الذي يحدث فيه.

بعض الأمثلة
لتشغيل الأمثلة ، يجب أن يكون لديك وحدة تحكم مفتوحة (في الكروم يطلق عليها Ctrl + Shift + i).

بفضل الرفاق من منتدى javascript.ru للنقد والإضافات.

محدث
وسّع الوظيفة قليلاً: الآن بدلاً من رد نداء واحد ، يتم تمرير الكائن كمتغير ثانٍ

  1. قبل (يسمى قبل أن تبدأ الوظيفة)
  2. نجاح (يسمى إذا نجحت الوظيفة)
  3. خطأ (إذا حدث خطأ)
  4. بعد (يسمى على أي حال ، بغض النظر عن النجاح)
كل معالج يتم تمرير كائن
  1. النفس (السياق)
  2. الاسم (اسم الوظيفة)
  3. الحالة ("خطأ" أو "نجاح")
  4. SuccessNumber (عدد المكالمات الناجحة)
  5. errorNumber (عدد المكالمات التي بها خطأ)
  6. النتيجة (النتيجة ، إن وجدت)
  7. خطأ (خطأ ، إن وجد)
بالإضافة إلى ذلك ، أصبحت وظيفة addCallListener الآن جزءًا من كائن مُنشئ الوظيفة لتجنب الاصطدام بالنافذة أو العملية.

يمكنك شوكة واختبار هنا.

طوال حياتي كنت أستخدم الهواتف البسيطة ، وأعطيت الأفضلية لعلامة نوكيا التجارية فقط. لكن الحياة لا تقف مكتوفة الأيدي ، بمجرد أن أردت هاتفًا به كاميرا واتصال بالإنترنت - إنه مريح للغاية! في متجر الهواتف المحمولة ، لم يكن النطاق النموذجي لأزرار الضغط من Nokia كبيرًا ، ولكن تم النظر على الفور إلى البديل 301 Dual. أحب أن تكون بسيطة ، ولكن لذيذة ، دون تفاصيل مزعجة غير ضرورية. هذا الهاتف من حيث المظهر يرضيني 100٪. طلبت رؤيته عن قرب - أحببت كل شيء. كلفني الشراء أربعة آلاف. لقد اشتريت أيضًا حقيبة جلدية.

لدي انطباعين عن الهاتف. في المرة الأولى التي اعتدت فيها على ذلك ، بدا كل شيء أنيقًا. منذ وقت ليس ببعيد ، قمت بتغيير Oka القديم الخاص بي إلى Renault Logan - وهكذا ، كانت المقارنة مماثلة. لقد أحببت حقًا حقيقة أن كل شيء في الهاتف يتم التفكير فيه بأدق التفاصيل. أنيق ومريح. ماذا تحتاج. لكن مع مرور الوقت ، بالطبع ، ظهرت السلبيات أيضًا ، ولكن أول الأشياء أولاً.

خارجيا ، أنا أحب الهاتف. أنيق وأنيق ورقيق. بلاستيك جيد جدا. حجم الهاتف كبير نسبيًا ، لكنه يناسب الجيب. شاشة الهاتف كبيرة ، لونها غير مزعج ، والظلال ناعمة ومرضية للعين. الأزرار مريحة ، بالإضافة إلى أنها لن تبلى بمرور الوقت ، ولكن هناك فرصة لتضخمها (كان لدي بالفعل هاتف به لوحة مفاتيح "صلبة" مماثلة ، وكان دائمًا منتفخًا من الاستخدام المنتظم ، وآمل أن يكون هذا لن يحدث مع هذا الهاتف). تعدد الأصوات في الهاتف واضح ، لكنه هادئ نسبيًا. في الشارع وأحيانًا في المنزل ، لا أستطيع سماعه ودائمًا ما أفتقد المكالمات. وهذا ينطبق على كل من الإشارات "الأصلية" والموسيقى التي تم تنزيلها. يغضب. ولكن للاستماع إلى الموسيقى ، على سبيل المثال ، فإن السماعة مثالية. أحيانًا في المنزل أستمع إلى الراديو على مكبر الصوت - يبدو أنه مسجل شرائط جيد. تعجبني حقًا القائمة الموجودة في الهاتف ، فهي مريحة ، وهناك العديد من التطبيقات المتاحة. دفتر الهاتف رائع! هنا لديك رسم بياني تحت الاسم وتحت اللقب. يمكنك إضافة مجموعة من الأرقام إلى خيارات الاتصال - البحر. لكن لا يوجد شيء رئيسي ، أعتقد أنه يجب أن يكون في كل هاتف - قائمة سوداء. تتفاقم المشكلة بسبب حقيقة أن مشغل الهاتف المحمول الخاص بي لا يوفر خدمة لحظر الأرقام. حاولت ، بناء على مطالبة شخص مطلع ، أن أجد التطبيق المناسب - ولكن دون جدوى. لذلك كان علي أن أغير الرقم وأن أكون حذرًا فيما يتعلق بدائرة الأشخاص الذين يعرفونه.

الإنترنت .... هذه محادثة منفصلة. بدائية جميلة. إذا كنت تبحث عن هاتف يسمح لك بالتواصل بشكل مريح على الشبكات الاجتماعية ، مع نسيان الكمبيوتر - فمرر. من هذا الهاتف ، اعرض التحديثات فقط. أثناء تحميل الصفحات ، سوف تعض أظافرك. وأنا معتاد بالفعل على الثغرات المستمرة: فالأفعال في كثير من الأحيان لا تذهب إلى أي مكان. ينطبق هذا أيضًا على إرسال الرسائل والتعليقات وتحميل الصفحات (من المرة الأولى ، كقاعدة عامة ، يتبين أن كل شيء "لا شيء"). الرسائل ، قبل الإرسال ، أقوم دائمًا بنسخها: إذا لم ينجح الإجراء ، فسيكون النص بأكمله في هجرة. يحدث ذلك ، ويتم إرسال نفس الشيء مائة مرة. أما الإعجابات فهي قصة مختلفة. ها أنت ، عندما تنظر عبر الشريط ، ضع إعجابات على ما أعجبك وقم بالتمرير أكثر ، أليس كذلك؟ كل شيء معقد هنا. يتم وضع أول مثل ، كقاعدة عامة ، والثاني يرسل موجز الأخبار إلى البداية. وبانتظام! في الآونة الأخيرة ، كنت أفكر أكثر فأكثر في شراء هاتف يعمل باللمس جديد يعمل بنظام Android ، حيث أصبحت كل هذه العيوب مزعجة إلى حد ما: فهي تستغرق الكثير من الوقت والأعصاب.

والهاتف غالبًا ما يكون به عربات التي تجرها الدواب ، وهذا ، بصراحة ، لم أكن أتوقعه من نوكيا. بدون سبب ، تتحول الشاشة إلى اللون الأبيض ويعيد تشغيل النظام بالكامل مرة أخرى. لا أحب حقيقة أنه لا يمكنك رؤية الحروف في الشمس أثناء الكتابة ، فأنت لا تحب الكاميرا ... من الواضح أنه ليس 3.2! بحد أقصى 2 ميغا بكسل تسحب. نعم ، ويعمل الهاتف نظرًا لبطء سرعته قليلاً ، على الرغم من أن ذاكرتي فارغة تقريبًا في نفس الوقت (يتم تحميل أغنية واحدة فقط لكل مكالمة). من حيث الخيارات ، يبدو الهاتف ذكيًا ، ولكن يوجد بالداخل الكثير من الأسماء التي لا أفهمها. على سبيل المثال ، "Call emulation" - ما هو؟

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

أقوم بتحديث مراجعتي بعد ستة أشهر من الشراء.اليوم هو 3 يناير 2015. مع الهاتف وانطلق ، على الرغم من وجود رغبة جامحة في البداية لتغييره. مع مرور الوقت ، اعتدت على ذلك ، والآن يعجبني ولا أريد شيئًا آخر. للعمل على الإنترنت ، قمت بتثبيت متصفح Opera بنفسي ، والآن يعمل كل شيء بشكل جيد. والكاميرا لم تكن بهذا السوء. أود أن أقول إن جودة الصور ستكون على الأرجح أفضل من طرز الهواتف الأخرى في هذه الفئة السعرية ، وحتى بعض الموديلات الأغلى ثمناً. يمكن طباعتها وعدم الخجل من نشرها على الشبكات الاجتماعية. التحذير الوحيد هو أنه لسبب ما ، فإنه يأخذ صورًا في الداخل أفضل من تلك التي في الشارع. الأزرار لم تنتفخ بمرور الوقت ، كنت قلقة عبثا. والهاتف نفسه لم يفقد مظهره "السلعي". بشكل دوري ، كما كان من قبل ، كان يعاني من مواطن الخلل ، ولكن ليس في كثير من الأحيان. حدث عدة مرات أن الهاتف أغلق من تلقاء نفسه ولم أتمكن من تشغيله لفترة طويلة. مع ما كان متصلا - لا أعرف. ذاكرتي ليست ممتلئة على الإطلاق (لا أقوم بتخزين الصور والموسيقى عليها ، فقط الرسائل القصيرة وجهات الاتصال). أقوم بتغيير "ثلاث" إلى "أربع" نقاط. ليس مثل هذا الهاتف السيئ.


أصحاب براءة الاختراع RU 2514141:

المجال التقني

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

مثال رائع من الفن

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

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

لمواجهة محاكاة رمز البرنامج ، يستخدم منشئو البرامج الضارة حيلًا مختلفة ، والتي قد تستند إلى القيود المرتبطة بعملية المحاكاة وتنفيذ المحاكي في حلول مكافحة الفيروسات. تتمثل إحدى هذه الطرق في إضافة عدد كبير من التعليمات إلى رمز البرنامج التي لا تحتوي على مكون ضار ، ولكنها تستغرق وقتًا في محاكاتها. نظرًا لحقيقة أن الوقت المخصص لمحاكاة رمز البرنامج محدود حتى لا يتسبب في استياء المستخدم (كقاعدة عامة ، يمكن أن تكون هذه المرة عدة ثوانٍ) ، يمكن أن تتوقف عملية المحاكاة قبل بدء تنفيذ التعليمات البرمجية الضارة حقًا. تم وصف إحدى طرق مكافحة نهج مكافحة المحاكاة هذا في US7603713 ، والذي يعمل من خلال تنفيذ عدد من التعليمات على معالج حقيقي ، مما يسرع بشكل كبير عملية محاكاة التطبيقات غير المعروفة من أجل الوصول إلى أكثر التعليمات البرمجية الخبيثة. نهج آخر ، تم الكشف عنه في التطبيق US20110225655 ، يعتبر خيار تعريف التطبيق على أنه مشبوه إذا كان يتعارض مع المحاكاة. يعتمد هذا النهج على حقيقة أن تطبيقًا آمنًا (شرعيًا) ، كقاعدة عامة ، يُظهر تحذيرًا بشأن استحالة التنفيذ في المحاكي ، بينما ينهي التطبيق الخبيث التنفيذ بهدوء أو يغير متجه التنفيذ (المنطق) فجأة.

هناك طريقة أخرى لمواجهة المحاكاة تعتمد على تحديد حقيقة أن التطبيق يعمل حاليًا على المحاكي ، وليس على نظام التشغيل الحقيقي. وتجدر الإشارة إلى أن المحاكي يقوم بإنشاء نسخة افتراضية من المعالج ومكونات الكمبيوتر ونظام التشغيل (OS) فقط إلى حد محدود بقدرات مقتطعة ، نظرًا لأن إعادة إنشاء جميع إمكانات نفس المعالج أو وظائف واجهة برمجة التطبيقات للنظام أمر مستحيل لعدد من الأسباب: ، وجود وظائف غير موثقة ، انخفاض كبير في الأداء عند تشغيل مثل هذا المحاكي. وبالتالي ، يمكن لمنشئي البرامج الضارة استخدام الحيل التالية لاكتشاف حقيقة التنفيذ في بيئة تمت مضاهاتها:

استدعاء وظيفة API غير موثقة أو نادراً ما تستخدم.

قم بتنفيذ مجموعة من تعليمات وحدة المعالجة المركزية ثم تحقق ، على سبيل المثال ، من مجموعة من العلامات. مع عدم دقة محاكاة أوامر المعالج ، قد يكون لعدد من العلامات قيم مختلفة عن تلك التي سيتم تعيينها عند تنفيذها على المعالج.

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

ذاكرة البحث عن بايت معين. على سبيل المثال ، بحث بايت عن رأس MZ في الذاكرة بعد تحميل kernel32.dll عند بدء العملية. في Vista 64 ، يستخدم kernel32.dll محاذاة 64 كيلو بايت ، ولن يتم تعيين المنطقة بين الرأس والقسم الأول لمساحة عنوان العملية ، وسيتم طرح استثناء إذا حاولت الوصول إليه. إذا لم يتم تسجيل أي استثناء ، فسيتم استدعاء معالج استثناء نظام التشغيل القياسي وإنهاء العملية.

يتم استخدام النهج الأخير في كل مكان ، نظرًا لأنه يسمح لك بتجاوز المحاكيات الحالية باستمرار ، فمن المستحيل تنفيذ المحاكاة الصحيحة لكل وظيفة API للأسباب الموضحة أعلاه.

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

جوهر الاختراع

تتمثل النتيجة التقنية للاختراع الحالي في تمكين محاكاة استدعاءات وظائف النظام.

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

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

وفقًا لمتغير تنفيذ معين آخر ، فإن شرط طلب محاكاة استدعاءات وظائف النظام هو عدم وجود حد لوقت المحاكاة.

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

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

وفقًا لتطبيق معين آخر ، فإن المكالمة منخفضة المستوى هي تعليمات لغة التجميع.

وفقًا لخيارات التنفيذ الخاصة الأخرى ، فإن المكالمة منخفضة المستوى هي مكالمة متسلسلة لجميع وظائف النظام ذات الصلة.

وفقًا لأحد خيارات التنفيذ الخاصة ، يتم إنهاء محاكاة استدعاء دالة النظام عند التبديل إلى وضع kernel.

وصف مختصر للرسومات

ستظهر الأشياء والميزات والمزايا الإضافية للاختراع الحالي واضحة من قراءة الوصف التالي لنموذج من الاختراع مع الإشارة إلى الرسومات المصاحبة ، حيث:

يوضح الشكل 1 مثالاً لعمل المحاكي الكلاسيكي عند معالجة استدعاء وظيفة API.

يوضح الشكل 2 مثالاً على تنفيذ وظيفة API في بيئة تشغيل Windows.

يوضح الشكل 3 طريقة لمحاكاة استدعاءات وظيفة API في إطار عمل الاختراع الحالي.

يوضح الشكل 4 نظامًا يمكن من خلاله تنفيذ الاختراع الحالي.

يوضح الشكل 5 طريقة لتنفيذ الاختراع الحالي.

الشكل 6 هو مثال لنظام كمبيوتر للأغراض العامة يمكن من خلاله تنفيذ الاختراع الحالي.

وصف تجسيدات الاختراع

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

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

يوضح الشكل 2 مثالاً على تنفيذ وظيفة API على نظام تشغيل Windows. تم اختيار WriteFile كمثال لوظيفة API. في الكتلة 210 ، يحاول تطبيق Windows (على سبيل المثال ، Microsoft Word أو Notepad) كتابة البيانات إلى الملف عن طريق استدعاء وظيفة Win32 API المناسبة WriteFile في Kernel32.dll. بعد ذلك ، في الخطوة 220 ، يتم استدعاء NtWriteFile في Ntdll.dll (على سبيل المثال ، يتم استدعاء جميع وظائف النظام ذات الصلة بالتسلسل) ، مما يؤدي بدوره إلى فخ في الخطوة 230 والبحث عن المعالج المناسب (والذي يتم إجراؤه بواسطة KiSystemService تعمل في Ntoskrnl.dll) عند استدعاء NtWriteFile. لاحظ أن هذه العملية تحدث في وضع المستخدم ، وبعد استدعاء المقاطعة ، يحدث الانتقال إلى وضع kernel. في الخطوة 240 ، يتم استدعاء NtWriteFile مباشرة في Ntoskrnl.dll ويتم كتابة الملف مباشرة في الخطوة 250 (يتم إخفاء التفاصيل المتعلقة بتشغيل برنامج تشغيل نظام الملفات هنا أيضًا). بناءً على ذلك ، يتضح أنه حتى عند استدعاء وظيفة API واحدة في نظام التشغيل الحديث ، يحدث عدد كبير من العمليات (أي الأحداث ذات المستوى الأدنى في إطار النظر في بنية نظام التشغيل نفسها) ، بما في ذلك انتقال تنفيذ التطبيق من وضع المستخدم إلى وضع kernel. عند النظر في هذه العمليات من وجهة نظر تنفيذ التعليمات بلغة التجميع ، يتضح أنه من الصعب جدًا محاكاة استدعاء وظيفة API بشكل صحيح نظرًا للحاجة إلى مراعاة حالة جميع سجلات المعالج وحالة الكل هياكل نظام التشغيل الداخلية.

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

يوضح الشكل 3 طريقة لمحاكاة استدعاءات وظيفة API في إطار عمل الاختراع الحالي. في الخطوة 310 ، تحدث المحاكاة الكلاسيكية للتطبيق ، على سبيل المثال ، في حالة محاكاة تطبيق المفكرة (يظهر جزء صغير من رمز التطبيق عند تصحيحه في مصحح أخطاء OllyDbg):

سيتم محاكاة تعليمات مثل MOV و PUSH و SUB و LEA وما شابه ذلك كما هي ، على سبيل المثال عن طريق محاكاة تعليمات المجمع باستخدام معالج افتراضي في المحاكي. بمجرد حدوث استدعاء دالة API (كما هو محدد في الكتلة 320) ، مثل

ثم ستحدث محاكاة مثل هذه المكالمة وفقًا لإرشادات الجهاز (الخطوة 330) ، مع مراعاة جميع المكالمات المتداخلة ، كما هو موضح ، على سبيل المثال ، في الشكل 2. عند الوصول إلى الانتقال إلى وضع kernel عند تنفيذ وظيفة API ، والتي سيتم التحقق منها في الخطوة 340 ، سيتم نقل المحاكاة إلى الوضع القياسي (العادي ، الكلاسيكي) ، أي لن تتم معالجة الاستدعاءات الإضافية بالتتابع لكل تعليمات ، ولكن سيتم إرجاع نتيجة استدعاء الوظيفة فقط. بعد ذلك ، تعود الطريقة من الخطوة 350 إلى الخطوة 310 لمزيد من المحاكاة.

يوضح الشكل 4 نظامًا يمكن من خلاله تنفيذ الاختراع الحالي. لنفترض أن هناك ملف تنفيذي غير معروف 410 على كمبيوتر المستخدم ، والذي يجب محاكاته لتحديد ما إذا كان قد يكون ضارًا. يجب توضيح أن الملف القابل للتنفيذ يجب أن يُفهم ليس فقط كملفات قابلة للتنفيذ لها تنسيق PE أو ELF ، ولكن أيضًا ملفات أخرى تحتوي على أكواد متنوعة ، مثل ملفات .class أو .jar (للتنفيذ في جهاز Java الظاهري) ، ملفات نصية مختلفة ، مثل .vbs والعديد من الملفات الأخرى. يحتوي الملف 410 نفسه على التعليمات 420 ، والتي تستنسخ المحاكاة التسلسلية لها تنفيذ الملف 410. لاحظ أن المحاكاة التسلسلية تتضمن تنفيذ جميع القفزات ، المشروطة وغير المشروطة ، بالإضافة إلى استدعاء الوظائف المختلفة داخل الملف القابل للتنفيذ 410. في المسلسل مضاهاة ، تصل كل تعليمات 420 إلى إدخال وحدة تحليل التعليمات 430 داخل المحاكي 405 ، بينما تحدد هذه الوحدة ما إذا كانت التعليمات عبارة عن استدعاء لوظيفة واجهة برمجة تطبيقات النظام ، وإذا كانت الإجابة إيجابية ، فإن المحاكي 405 يحاكي الدعوة إلى هذه الوظيفة (معروضة كـ 450) في شكل سلسلة من الأحداث ذات المستوى الأدنى ، كما هو موضح ، على سبيل المثال ، في الشكل 2 (أي الخطوات 210-230 في الشكل 2 قبل الدخول في وضع kernel). خلاف ذلك ، يحاكي المحاكي 405 تنفيذه كجزء من المحاكاة الكلاسيكية (كما هو موضح 440) ، أي تُرجع النتيجة المحاكاة للوظيفة (أي بدون محاكاة جميع المراحل الموضحة في الشكل 2). في بعض الحالات ، يمكن محاكاة التعليمات الخاصة باستدعاء وظيفة API ، تمامًا كما يحدث في حالة مضاهاة 440 الكلاسيكية. على سبيل المثال ، تحتوي وظيفة URLDownloadToFile في التمثيل ذي المستوى المنخفض على سلسلة معقدة من المكالمات إلى TCP / IP driver والمحاكاة التسلسلية لمثل هذه السلسلة قد لا تكون عملية. في أحد التطبيقات ، يتم تحديد الرغبة في استخدام محاكاة استدعاء النظام من خلال محلل التعليمات 430 ، على سبيل المثال ، بناءً على المعلومات المعروفة حول سرعة محاكاة مكالمات معينة.

يوضح الشكل 5 طريقة لتنفيذ الاختراع الحالي. في الكتلة 510 ، جرت محاولة لمحاكاة الملف القابل للتنفيذ 410 على كمبيوتر المستخدم. في الكتلة 520 ، يتم التحقق مما إذا كانت محاكاة وظائف API للنظام مطلوبة.

متطلبات محاكاة وظائف النظام:

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

مطلوب إجراء محاكاة أعمق للملف القابل للتنفيذ 410. يحدث هذا إذا لم يتم مصادفة الملف القابل للتنفيذ 410 من قبل ، مما يعني أنه لا توجد معلومات عن ملف غير معروف من تطبيق مكافحة الفيروسات الذي يوجد بداخله المحاكي قيد التشغيل (أي أنه غير مصنف وغير موجود في قواعد بيانات تطبيقات مكافحة الفيروسات كتطبيق ضار أو آمن).

اكتشف المحاكي الكلاسيكي طرقًا لمواجهة المحاكاة ، مثل: استدعاء وظائف API مع معلمات غير صحيحة بشكل واضح متبوعة بفحص حالة (رمز) الخطأ ، والتحقق من السجلات المتقلبة بعد استدعاء وظائف API ، ومسح محتويات وحدات النظام ، ومحاولة اكتشاف مصحح الأخطاء في النظام ، بالإضافة إلى استدعاء الأساليب القياسية لاكتشاف التنفيذ تحت جهاز افتراضي (RedPill).

الكشف عن استخدام تقنيات التفريغ الذاتي أو الحماية الذاتية (ماكينات التعبئة والتغليف).

الحاجة إلى محاكاة تطبيق يحتمل أن يكون ضارًا كجزء من نظام تشغيل المستخدم مع وجود جميع المكتبات والمترجمين الفوريين (على سبيل المثال ، .NET أو Java). أيضًا ، تتيح لك طريقة المحاكاة المقترحة محاكاة ملفات الدُفعات والتحكم ، مثل ملف دفعي (ملف دفعي) بامتداد .bat أو .cmd ، والنصوص النصية بوويرشيل ، وملفات reg لإدخال البيانات في التسجيل وأنواع أخرى من الملفات ، يؤدي إطلاقه إلى رمز التنفيذ على جهاز الكمبيوتر الخاص بالمستخدم.

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

يؤدي استيفاء واحد على الأقل من هذه المتطلبات إلى محاكاة استدعاءات النظام 450 في الكتلة 530 لمحاكاة وظائف API من خلال تعليمات الجهاز ، كما هو موضح في الشكل 4. بخلاف ذلك ، في الخطوة 540 ، يتم استخدام المحاكاة الكلاسيكية فقط 440. يتيح استخدام هذه المتطلبات نهجًا أكثر مرونة لعملية المحاكاة داخل تطبيق مكافحة الفيروسات دون التسبب في استياء المستخدم ، والذي يرتبط بحمل إضافي بسبب الحاجة إلى محاكاة وظائف واجهة برمجة التطبيقات حسب تعليمات الجهاز.

يوضح الشكل 6 مثالاً لنظام كمبيوتر للأغراض العامة ، أو كمبيوتر شخصي أو خادم 20 ، يشتمل على وحدة معالجة مركزية 21 ، وذاكرة نظام 22 ، وناقل نظام 23 يحتوي على مكونات نظام مختلفة ، بما في ذلك الذاكرة المرتبطة بوحدة المعالجة المركزية 21. يتم تنفيذ ناقل النظام 23 ، مثل أي هيكل ناقل معروف من الفن السابق ، والذي يحتوي بدوره على ذاكرة ناقل أو وحدة تحكم في ذاكرة الناقل ، وناقل طرفي ، وناقل محلي قادر على التفاعل مع أي بنية ناقل أخرى. تحتوي ذاكرة النظام على ذاكرة للقراءة فقط (ROM) 24 ، وذاكرة وصول عشوائي (RAM) 25. يحتوي نظام الإدخال / الإخراج الرئيسي (BIOS) 26 على الإجراءات الرئيسية التي توفر نقل المعلومات بين عناصر الكمبيوتر الشخصي 20 ، على سبيل المثال ، في وقت تحميل أنظمة التشغيل باستخدام ROM 24.

يحتوي الكمبيوتر الشخصي 20 بدوره على قرص صلب 27 لقراءة البيانات وكتابتها ، ومحرك قرص مغناطيسي 28 للقراءة والكتابة على أقراص مغناطيسية قابلة للإزالة 29 ومحرك ضوئي 30 للقراءة والكتابة على أقراص ضوئية قابلة للإزالة 31 ، مثل CD-ROM و DVD -ROM ووسائط التخزين الضوئية الأخرى. القرص الصلب 27 ، محرك القرص المغناطيسي 28 ، محرك الأقراص الضوئية 30 متصل بناقل النظام 23 عبر واجهة القرص الصلب 32 ، واجهة القرص المغناطيسي 33 ، وواجهة محرك الأقراص الضوئية 34 ، على التوالي. تعد محركات الأقراص ووسائط تخزين الكمبيوتر ذات الصلة وسائل غير متطايرة لتخزين تعليمات الكمبيوتر وهياكل البيانات ووحدات البرامج وغيرها من البيانات الخاصة بالكمبيوتر الشخصي 20.

يكشف الوصف الحالي عن تنفيذ نظام يستخدم القرص الصلب 27 وقرص مغناطيسي قابل للإزالة 29 وقرص ضوئي قابل للإزالة 31 ، ولكن يجب أن يكون مفهوماً أن الأنواع الأخرى من وسائط تخزين الكمبيوتر 56 قادرة على تخزين البيانات في نموذج يمكن قراءته بواسطة الكمبيوتر (محركات الأقراص ذات الحالة الصلبة ، وبطاقات الذاكرة المحمولة ، والأقراص الرقمية ، وذاكرة الوصول العشوائي (RAM) ، وما إلى ذلك) ، والتي يتم توصيلها بناقل النظام 23 من خلال وحدة التحكم 55.

يحتوي الكمبيوتر 20 على نظام ملفات 36 حيث يتم تخزين نظام التشغيل المسجل 35 ، بالإضافة إلى تطبيقات البرامج الإضافية 37 ، ووحدات البرامج الأخرى 38 وبيانات البرنامج 39. للمستخدم القدرة على إدخال الأوامر والمعلومات في الكمبيوتر الشخصي 20 من خلال أجهزة الإدخال (لوحة المفاتيح 40 ، مناور "الماوس" 42). يمكن استخدام أجهزة إدخال أخرى (غير معروضة): ميكروفون ، عصا تحكم ، وحدة تحكم ألعاب ، ماسح ضوئي ، إلخ. عادةً ما يتم توصيل أجهزة الإدخال هذه بنظام الكمبيوتر 20 عبر المنفذ التسلسلي 46 ، والذي يكون بدوره متصلًا بناقل النظام ، ولكن قد يتم توصيله بطرق أخرى ، مثل من خلال منفذ متوازي أو منفذ ألعاب أو ناقل تسلسلي عالمي (USB) . يتم أيضًا توصيل شاشة 47 أو أي نوع آخر من أجهزة العرض بحافلة النظام 23 عبر واجهة مثل محول الفيديو 48. بالإضافة إلى الشاشة 47 ، قد يكون الكمبيوتر الشخصي مزودًا بأجهزة إخراج طرفية أخرى (غير معروضة) ، مثل مكبرات الصوت أو الطابعة أو ما شابه.

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

قد تشكل اتصالات الشبكة شبكة محلية (LAN) 50 وشبكة واسعة (WAN). تُستخدم هذه الشبكات في شبكات الكمبيوتر الخاصة بالشركات ، والشبكات الداخلية للشركات ، وكقاعدة عامة ، يمكنها الوصول إلى الإنترنت. في شبكات LAN أو WAN ، يتم توصيل الكمبيوتر الشخصي 20 بشبكة المنطقة المحلية 50 عبر محول شبكة أو واجهة شبكة 51. عند استخدام الشبكات ، قد يستخدم الكمبيوتر الشخصي 20 مودم 54 أو وسائل أخرى للاتصال بشبكة واسعة النطاق مثل الإنترنت. المودم 54 ، وهو جهاز داخلي أو خارجي ، متصل بناقل النظام 23 عبر المنفذ التسلسلي 46. يجب توضيح أن اتصالات الشبكة هي فقط نموذجية وليست مطلوبة لتمثيل التكوين الدقيق للشبكة ، i. في الواقع ، هناك طرق أخرى لإنشاء اتصال من خلال وسائل الاتصال التقنية من كمبيوتر إلى آخر.

في الختام ، يجب ملاحظة أن المعلومات الواردة في الوصف هي أمثلة لا تحد من نطاق الاختراع الحالي المحدد بواسطة الصيغة. سيقدر أي شخص ماهر في المجال أنه قد تكون هناك تجسيدات أخرى للاختراع الحالي تتفق مع روح ومجال الاختراع الحالي.

1. طريقة لمحاكاة استدعاءات وظيفة النظام لتجاوز إجراءات المحاكاة المضادة ، حيث:
أ) تلقي ملف قابل للتنفيذ عند إدخال المحاكي ؛
ب) التحقق من شروط متطلبات محاكاة استدعاءات وظائف النظام ؛
ج) إذا تم استيفاء واحد على الأقل من الشروط المذكورة أعلاه ، فسيتم استخدام محاكاة استدعاء النظام ؛
د) محاكاة تنفيذ ملف قابل للتنفيذ وفقًا للتنفيذ المتسلسل للتعليمات ؛
هـ) عند اكتشاف استدعاء لوظيفة النظام ، يتم تحويل عملية المحاكاة إلى محاكاة استدعاء النظام ؛
و) محاكاة استدعاء وظيفة النظام في شكل سلسلة من المكالمات منخفضة المستوى.

2. طريقة المطالبة 1 ، حيث يكون شرط طلب محاكاة استدعاءات وظائف النظام هو إكمال محاكاة الملف القابل للتنفيذ بسرعة.

3. طريقة عنصر الحماية 1 ، حيث يكون شرط طلب محاكاة استدعاءات وظائف النظام هو عدم وجود حد زمني للمحاكاة.

4. الطريقة وفقًا لعنصر الحماية 1 ، والتي يكون فيها شرط محاكاة المكالمات لوظائف النظام هو عدم وجود معلومات عن ملف غير معروف من تطبيق مكافحة الفيروسات.

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

6. الطريقة وفقًا لعنصر الحماية 1 ، حيث تكون المكالمة منخفضة المستوى عبارة عن تعليم لغة التجميع.

7. طريقة المطالبة 1 ، حيث تكون المكالمة منخفضة المستوى عبارة عن استدعاء متسلسل لجميع وظائف النظام المرتبطة.

8. الطريقة وفقًا لعنصر الحماية 1 ، والتي تنهي محاكاة وظيفة النظام عند الانتقال إلى وضع kernel.

براءات الاختراع المماثلة:

يتعلق الاختراع بتكنولوجيا الكمبيوتر. تتمثل النتيجة الفنية في تحسين جودة اكتشاف البرامج الضارة.

المادة: يتعلق الاختراع بوسائل التحقق من شهادات المفاتيح العامة. تتمثل النتيجة الفنية في تقليل احتمالية الوصول غير المصرح به.

يتعلق الاختراع بمجال التكوين التلقائي لأدوات الأمان أثناء تنفيذ برامج التطبيق. وتتمثل النتيجة الفنية في تقليل موارد الحوسبة التي تستهلكها أداة الأمان أثناء تنفيذ برنامج التطبيق دون فقدان جودة الأمان.

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

يتعلق الاختراع بنظام لإدارة حقوق وصول المستخدم إلى المعلومات المتعلقة بسلامة الطيران والطائرة. والنتيجة الفنية هي ضمان تحديد هوية المستخدمين الذين يمكنهم الوصول إلى المعلومات المحددة. يُقترح نظام لإدارة حقوق الوصول إلى برامج وبيانات التطبيقات على متن الطائرة وطريقة يستخدمها هذا النظام ، بالإضافة إلى طائرة تحتوي على هذا النظام. يحتوي نظام إدارة حقوق الوصول إلى المعلومات الموجودة على متن الطائرة لمستخدم على متن طائرة على جهاز تعريف واحد على الأقل (10) تم تكوينه لقراءة المعلومات حول هوية المستخدم الموجودة في بطاقته الشخصية وجهاز كمبيوتر على متن الطائرة (1) ، تحتوي على الوسائل (11) لإدارة حقوق الوصول ، والتي تم تكوينها لمصادقة المستخدم وتحديد حقوق الوصول إلى المعلومات الموجودة على متن الطائرة اعتمادًا على هوية المستخدم. 3 ن. و 7 ز. و- لي ، 2 مريض.

يتعلق الاختراع بجهاز وطريقة معالجة المعلومات ووسيط تسجيل مع برنامج للتحكم في جهاز معالجة المعلومات. والنتيجة التقنية هي زيادة سرعة معالجة البيانات. تم تكوين الجهاز لقراءة برنامج التطبيق من وسيط التسجيل الذي يعمل عليه البرنامج التطبيقي كمحتوى ، وشهادة الجذر الأولى الصادرة لبرنامج التطبيق ، والشهادة الجذر الثانية الصادرة قبل إصدار الشهادة الجذر الأولى لبرنامج التطبيق يتم تسجيله ، ولتنفيذ برنامج التطبيق. حيث يشتمل جهاز معالجة المعلومات على: وسائل توليد لتشكيل في جهاز التخزين مجلد أول لتخزين البيانات التي ستتم معالجتها بواسطة برنامج التطبيق ، ويكون المجلد الأول مرتبطًا بشهادة الجذر الأولى ؛ والنسخة تعني نسخ البيانات الموجودة في المجلد الثاني إلى المجلد الأول ، ويكون المجلد الثاني مرتبطًا بشهادة الجذر الثانية في حالة وجود المجلد الثاني في جهاز التخزين. 3 ن. و 7 ز. f-ly ، 19 مريضًا.

يتعلق الاختراع بتوزيع مفتاح سري مشفر بين طرفي الإرسال والاستقبال. تتمثل النتيجة الفنية في إمكانية التنظيم التلقائي للحماية ووقت الانتظار لإنشاء مفتاح سري للتشفير من خلال تحديد عدد التكرارات ، والتي على أساسها يكون عدد الرسائل التي سيتم تبادلها أثناء إنشاء مفتاح سري للتشفير خاضع للسيطرة. يحتوي الجهاز الخاص باستقبال ونقل البيانات بطريقة آمنة على وحدة تحكم في توليد المفاتيح ووحدة لتوفير عدد التكرارات. 4 ن. و 7 ز. f-ly ، 17 مريض.

يتعلق الاختراع بجهاز إرسال صورة يتطلب مصادقة لاستخدام الجهاز والوظيفة التي يوفرها. وتتمثل النتيجة الفنية في توفير إمكانية ضبط وراثة معلومات المصادقة لإرسال الصور وعرض شاشة لإدخال معلومات المصادقة وفقًا لطريقة ضبط الوجهة. تحقيقًا لهذه الغاية ، يتم إجراء معالجة المصادقة الأولى لمصادقة المستخدم في جهاز إرسال الصور ، ويتم تخزين معلومات المصادقة المستخدمة في الحالة التي يتم فيها إجراء معالجة المصادقة الأولى ، ويتم تعيين الوجهة التي ترسل إليها وسيلة الإرسال بيانات الصورة من خلال مجموعة متنوعة من طرق تحديد النقاط. بعد ذلك ، يتم تنفيذ معالجة المصادقة الثانية المطلوبة للمرسل لإرسال بيانات الصورة إلى الوجهة المحددة ، ويتم تحديد ما إذا كان سيتم استخدام معلومات المصادقة المخزنة في وسائل تخزين المعلومات عند إجراء معالجة المصادقة الثانية على أساس في طريقة تحديد الوجهة. 3 ن. و 5 ز. f-ly ، 17 مريض.

المادة: يتعلق الاختراع بالاتصال اللاسلكي ، أي بطريقة النقل الآمن لعميل التحكم في الوصول. والنتيجة التقنية هي زيادة الأمان. تتضمن الطريقة طلب عميل التحكم في وصول المستخدم من شبكة لاسلكية ، حيث يرتبط الطلب بشهادة التحقق الأولى ؛ تلقي عميل التحكم في وصول المستخدم وشهادة التحقق الثانية ، حيث يتم إصدار شهادات التحقق الأولى والثانية من قبل كيان موثوق به ؛ وتخزين عميل التحكم في وصول المستخدم في العنصر الآمن إذا كانت شهادة التحقق الثانية صالحة ؛ حيث يتم تخزين عميل التحكم في وصول المستخدم في مقطع فردي من بين مجموعة القطاعات التي تشكل العنصر الآمن ، ولا يمكن إجراء التعديلات اللاحقة على عميل التحكم في وصول المستخدم المخزن إلا باستخدام شهادة التأكيد الثانية ؛ والوصول إلى الشبكة اللاسلكية يقتصر على (1) الوصول من قبل عميل التحكم في الوصول للمستخدم و (2) الطلبات من عملاء التحكم في الوصول للمستخدم. 3 ن. و 19 ز. و- لي ، 8 مريض.

يتعلق الاختراع بتكنولوجيا الكمبيوتر والاتصالات السلكية واللاسلكية ، ويهدف إلى حل مشاكل حماية معلومات الكمبيوتر. النتيجة التقنية للاختراع هي تحسين الأداء عن طريق زيادة درجة التوازي. طريقة إجراء ثلاث جولات من التحويل هي على طول المحاور x و y و z. في الجولة الأولى ، يتم إجراء تحويلات تغيير طبقة N 2D L x0 ، L x1 ، ... ، L x (N-1) ؛ في الجولة الثانية ، يتم إجراء تحويلات استبدال الطبقة ثنائية الأبعاد N L y0 ، L y1 ، ... ، Ly (N-1) ؛ في الجولة الثالثة ، يتم إجراء تحويلات تغيير الطبقة ثنائية الأبعاد N L z0 ، L z1 ، ... ، L z (N-1). 5 سؤ ، 1 علامة تبويب.

يتعلق الاختراع بوسائل إدارة نتائج القياس. والنتيجة التقنية هي تقليل وقت معالجة المعلومات. توفير الإرسال بجهاز قياس المعلومات البيولوجية للمصادقة المتعلقة بمصادقة جهاز قياس المعلومات البيولوجية. التأثير: تحديد الحاجة إلى المصادقة بواسطة جهاز قياس المعلومات البيولوجية. تأكد من أن جهاز التحكم يتلقى كل من المعلومات المتعلقة بالمصادقة المتعلقة بالمصادقة والمعلومات البيولوجية من جهاز قياس المعلومات البيولوجية. تأكد من أن جهاز التحكم يقوم بإجراء المصادقة بناءً على المعلومات المتعلقة بالمصادقة. يتم تخزين المعلومات البيولوجية التي تتلقاها وسائل الاتصال في وسيلة التخزين ، بغض النظر عما إذا كانت نتيجة المصادقة على وسائل المصادقة إيجابية أم سلبية. يتم إرسال معلومات المصادقة المشروعة بواسطة وسائل الاتصال إذا تم تحديدها بوسائل تحديد ما إذا كانت المصادقة ضرورية أم لا ، ويتم نقل المعلومات الوهمية عن طريق وسائل الاتصال إذا تقرر أن المصادقة غير مطلوبة. 3 ن. و 2 ز. و- لي ، 10 م.

يتعلق الاختراع بوسائل ضمان أمن معاملات الشبكة الإلكترونية. والنتيجة التقنية هي زيادة أمان المعاملات الإلكترونية عبر الإنترنت. تنفيذ إجراءات المصادقة المحسّنة (متعددة العوامل) للعملاء والخوادم وإجراءات التجزئة والتوقيع بالتوقيع الإلكتروني والتحقق من التوقيع الإلكتروني للعملاء والخوادم. قم بإجراء عملية فحص بيئة برنامج العميل ، وبعد ذلك يتخذون قرارات بشأن مدى خطورة أو عدم أهمية الثغرات الأمنية في بيئة البرامج التي تم اكتشافها في عملاء النظام. في عملية التفاعل بين المشاركين ، يتم أرشفة نسخ من قرارات العملاء والخوادم ، موقعة بتوقيعاتهم الإلكترونية ، بشأن استمرار أو إغلاق الجلسات بين العملاء والخوادم. 2 ن. و 6 ز. f-ly ، 1 مريض.

يتعلق الاختراع بطريقة وجهاز لإجراء تحويل مشفر في مكون إلكتروني. تتمثل النتيجة الفنية في زيادة أمان إنشاء اتصالات بمصادقة كلمة المرور من خلال زيادة كفاءة تحويل التشفير. في الطريقة ، يتم الحصول على النقطة P (X ، Y) بناءً على المعلمة t على المنحنى الإهليلجي الذي يفي بالتعبير Y2 = f (X) ، واستنادًا إلى كثيرات الحدود X1 (t) ، X2 (t) ، X3 (t) و U (t) تحقق المساواة f (X1 (t)). f (X2 (t)). f (X3 (t)) = U (t) 2 في Fq ، مع q = 3 mod 4 ، ثم يتم الحصول على قيمة المعلمة t وتحديد النقطة P من خلال تنفيذ خطوات فرعية ، حيث (i) احسب X1 = X1 (t) و X2 = X2 (t) و X3 = X3 (t) و U = U (t)، (ii) إذا كان العنصر f (X1) .f (X2) مربعًا ، تحقق مما إذا كان العنصر f (X3) مربعًا في Fq ، وإذا كان كذلك ، فاحسب الجذر التربيعي لـ العنصر f (X3) للحصول على النقطة P (X3) ، (iii) تحقق مما إذا كان العنصر f (X1) مربعًا ، وإذا كان كذلك ، فاحسب الجذر التربيعي لـ f (X1) للحصول على النقطة P ( X1) ، (4) وإلا احسب الجذر التربيعي للعنصر f (X2) للحصول على النقطة P (X2) ، ثم تُستخدم هذه النقطة P في تطبيق تشفير. 2 ن. و 6 ز. و- لي ، 3 سوء.

تتعلق مجموعة الاختراعات بوسائل التحكم في عملية واحدة على الأقل تحدث في نظام متعلق بالسلامة. تتمثل النتيجة الفنية في توفير إمكانية الحصول على شهادة مرنة ومعممة للأنظمة المتعلقة بالأمن. تحقيقا لهذه الغاية ، تم اقتراح طريقة لرصد نظام متعلق بالسلامة عن طريق جهاز مراقبة مزود لمراقبة نظام متعلق بالسلامة ، حيث: اختيار عملية أولى من مجموعة عمليات تنفذ على جهاز المراقبة ، وتوليد استدعاء من خلال العملية الأولى ؛ تحويل المكالمة إلى جهاز يشكل على الأقل جزءًا من النظام المرتبط بالأمن ؛ اختيار عملية ثانية من مجموعة من العمليات المنفذة على النظام المرتبط بالأمن ؛ حساب ، من خلال العملية الثانية ، نتيجة معالجة عن طريق تطبيق وظيفة واحدة محددة مسبقًا على الأقل على المكالمة ؛ نقل ، من خلال العملية الثانية ، نتيجة المعالجة إلى العملية الأولى ؛ التحقق ، من خلال العملية الأولى ، من نتيجة المعالجة المحسوبة من خلال العملية الثانية مع نتيجة المعالجة المحسوبة بواسطة العملية الأولى ، ونتائج المعالجة المحسوبة بواسطة العملية الأولى التي تطبق نفس الوظيفة المحددة مسبقًا على الأقل ؛ وتقييم النظام المرتبط بالسلامة على أنه في حالة آمنة إذا وافقت نتيجة المعالجة المحسوبة من خلال العملية الأولى ونتائج المعالجة المحسوبة بواسطة العملية الثانية. 3 ن. و 8 ز. و- لي ، 2 مريض.

يتعلق الاختراع بطرق لمحاكاة استدعاءات وظائف النظام لتجاوز الإجراءات المضادة للمحاكاة. تتمثل النتيجة الفنية في توفير إمكانية محاكاة المكالمات لوظائف النظام. يتم تحقيق النتيجة باستخدام طريقة لمحاكاة استدعاءات وظائف النظام لتجاوز الإجراءات المضادة للمحاكاة ، وهي الطريقة التي تتضمن الخطوات التالية: استلام ملف قابل للتنفيذ كمدخل إلى المحاكي ؛ التحقق من شروط متطلبات محاكاة استدعاءات وظائف النظام ؛ في حالة استيفاء أحد الشروط المذكورة أعلاه على الأقل ، يتم استخدام محاكاة استدعاء النظام ؛ محاكاة تنفيذ ملف قابل للتنفيذ وفقًا للتنفيذ المتسلسل للتعليمات ؛ عند اكتشاف استدعاء لوظيفة النظام ، تحويل عملية المحاكاة إلى محاكاة استدعاء النظام ؛ إنتاج محاكاة لاستدعاء وظيفة النظام في شكل سلسلة من المكالمات منخفضة المستوى. 7 w.p. f-ly ، 6 مريض ، علامة تبويب واحدة.

يتعلق الاختراع بطرق لمحاكاة استدعاءات وظائف النظام لتجاوز الإجراءات المضادة للمحاكاة. تتمثل النتيجة الفنية في توفير إمكانية محاكاة المكالمات لوظائف النظام. يتم تحقيق النتيجة باستخدام طريقة لمحاكاة استدعاءات وظائف النظام لتجاوز الإجراءات المضادة للمحاكاة ، وهي الطريقة التي تتضمن الخطوات التالية: استلام ملف قابل للتنفيذ كمدخل إلى المحاكي ؛ التحقق من شروط متطلبات محاكاة استدعاءات وظائف النظام ؛ في حالة استيفاء أحد الشروط المذكورة أعلاه على الأقل ، يتم استخدام محاكاة استدعاء النظام ؛ محاكاة تنفيذ ملف قابل للتنفيذ وفقًا للتنفيذ المتسلسل للتعليمات ؛ عند اكتشاف استدعاء لوظيفة النظام ، تحويل عملية المحاكاة إلى محاكاة استدعاء النظام ؛ إنتاج محاكاة لاستدعاء وظيفة النظام في شكل سلسلة من المكالمات منخفضة المستوى. 7 w.p. f-ly ، 6 مريض ، علامة تبويب واحدة.

رسومات براءة اختراع RF 2514141

المجال التقني

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

مثال رائع من الفن

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

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

لمواجهة محاكاة رمز البرنامج ، يستخدم منشئو البرامج الضارة حيلًا مختلفة ، والتي قد تستند إلى القيود المرتبطة بعملية المحاكاة وتنفيذ المحاكي في حلول مكافحة الفيروسات. تتمثل إحدى هذه الطرق في إضافة عدد كبير من التعليمات إلى رمز البرنامج التي لا تحتوي على مكون ضار ، ولكنها تستغرق وقتًا في محاكاتها. نظرًا لحقيقة أن الوقت المخصص لمحاكاة رمز البرنامج محدود حتى لا يتسبب في استياء المستخدم (كقاعدة عامة ، يمكن أن تكون هذه المرة عدة ثوانٍ) ، يمكن أن تتوقف عملية المحاكاة قبل بدء تنفيذ التعليمات البرمجية الضارة حقًا. تم وصف إحدى طرق مكافحة نهج مكافحة المحاكاة هذا في US7603713 ، والذي يعمل من خلال تنفيذ عدد من التعليمات على معالج حقيقي ، مما يسرع بشكل كبير عملية محاكاة التطبيقات غير المعروفة من أجل الوصول إلى أكثر التعليمات البرمجية الخبيثة. نهج آخر ، تم الكشف عنه في التطبيق US20110225655 ، يعتبر خيار تعريف التطبيق على أنه مشبوه إذا كان يتعارض مع المحاكاة. يعتمد هذا النهج على حقيقة أن تطبيقًا آمنًا (شرعيًا) ، كقاعدة عامة ، يُظهر تحذيرًا بشأن استحالة التنفيذ في المحاكي ، بينما ينهي التطبيق الخبيث التنفيذ بهدوء أو يغير متجه التنفيذ (المنطق) فجأة.

هناك طريقة أخرى لمواجهة المحاكاة تعتمد على تحديد حقيقة أن التطبيق يعمل حاليًا على المحاكي ، وليس على نظام التشغيل الحقيقي. وتجدر الإشارة إلى أن المحاكي يقوم بإنشاء نسخة افتراضية من المعالج ومكونات الكمبيوتر ونظام التشغيل (OS) فقط إلى حد محدود بقدرات مقتطعة ، نظرًا لأن إعادة إنشاء جميع إمكانات نفس المعالج أو وظائف واجهة برمجة التطبيقات للنظام أمر مستحيل لعدد من الأسباب: ، وجود وظائف غير موثقة ، انخفاض كبير في الأداء عند تشغيل مثل هذا المحاكي. وبالتالي ، يمكن لمنشئي البرامج الضارة استخدام الحيل التالية لاكتشاف حقيقة التنفيذ في بيئة تمت مضاهاتها:

استدعاء وظيفة API غير موثقة أو نادراً ما تستخدم.

قم بتنفيذ مجموعة من تعليمات وحدة المعالجة المركزية ثم تحقق ، على سبيل المثال ، من مجموعة من العلامات. مع عدم دقة محاكاة أوامر المعالج ، قد يكون لعدد من العلامات قيم مختلفة عن تلك التي سيتم تعيينها عند تنفيذها على المعالج.

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

ذاكرة البحث عن بايت معين. على سبيل المثال ، بحث بايت عن رأس MZ في الذاكرة بعد تحميل kernel32.dll عند بدء العملية. في Vista 64 ، يستخدم kernel32.dll محاذاة 64 كيلو بايت ، ولن يتم تعيين المنطقة بين الرأس والقسم الأول لمساحة عنوان العملية ، وسيتم طرح استثناء إذا حاولت الوصول إليه. إذا لم يتم تسجيل أي استثناء ، فسيتم استدعاء معالج استثناء نظام التشغيل القياسي وإنهاء العملية.

يتم استخدام النهج الأخير في كل مكان ، نظرًا لأنه يسمح لك بتجاوز المحاكيات الحالية باستمرار ، فمن المستحيل تنفيذ المحاكاة الصحيحة لكل وظيفة API للأسباب الموضحة أعلاه.

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

جوهر الاختراع

تتمثل النتيجة التقنية للاختراع الحالي في تمكين محاكاة استدعاءات وظائف النظام.

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

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

وفقًا لمتغير تنفيذ معين آخر ، فإن شرط طلب محاكاة استدعاءات وظائف النظام هو عدم وجود حد لوقت المحاكاة.

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

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

وفقًا لتطبيق معين آخر ، فإن المكالمة منخفضة المستوى هي تعليمات لغة التجميع.

وفقًا لخيارات التنفيذ الخاصة الأخرى ، فإن المكالمة منخفضة المستوى هي مكالمة متسلسلة لجميع وظائف النظام ذات الصلة.

وفقًا لأحد خيارات التنفيذ الخاصة ، يتم إنهاء محاكاة استدعاء دالة النظام عند التبديل إلى وضع kernel.

وصف مختصر للرسومات

ستظهر الأشياء والميزات والمزايا الإضافية للاختراع الحالي واضحة من قراءة الوصف التالي لنموذج من الاختراع مع الإشارة إلى الرسومات المصاحبة ، حيث:

يوضح الشكل 1 مثالاً لعمل المحاكي الكلاسيكي عند معالجة استدعاء وظيفة API.

يوضح الشكل 2 مثالاً على تنفيذ وظيفة API في بيئة تشغيل Windows.

يوضح الشكل 3 طريقة لمحاكاة استدعاءات وظيفة API في إطار عمل الاختراع الحالي.

يوضح الشكل 4 نظامًا يمكن من خلاله تنفيذ الاختراع الحالي.

يوضح الشكل 5 طريقة لتنفيذ الاختراع الحالي.

الشكل 6 هو مثال لنظام كمبيوتر للأغراض العامة يمكن من خلاله تنفيذ الاختراع الحالي.

وصف تجسيدات الاختراع

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

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

يوضح الشكل 2 مثالاً على تنفيذ وظيفة API على نظام تشغيل Windows. تم اختيار WriteFile كمثال لوظيفة API. في الكتلة 210 ، يحاول تطبيق Windows (على سبيل المثال ، Microsoft Word أو Notepad) كتابة البيانات إلى الملف عن طريق استدعاء وظيفة Win32 API المناسبة WriteFile في Kernel32.dll. بعد ذلك ، في الخطوة 220 ، يتم استدعاء NtWriteFile في Ntdll.dll (على سبيل المثال ، يتم استدعاء جميع وظائف النظام ذات الصلة بالتسلسل) ، مما يؤدي بدوره إلى فخ في الخطوة 230 والبحث عن المعالج المناسب (والذي يتم إجراؤه بواسطة KiSystemService تعمل في Ntoskrnl.dll) عند استدعاء NtWriteFile. لاحظ أن هذه العملية تحدث في وضع المستخدم ، وبعد استدعاء المقاطعة ، يحدث الانتقال إلى وضع kernel. في الخطوة 240 ، يتم استدعاء NtWriteFile مباشرة في Ntoskrnl.dll ويتم كتابة الملف مباشرة في الخطوة 250 (يتم إخفاء التفاصيل المتعلقة بتشغيل برنامج تشغيل نظام الملفات هنا أيضًا). بناءً على ذلك ، يتضح أنه حتى عند استدعاء وظيفة API واحدة في نظام التشغيل الحديث ، يحدث عدد كبير من العمليات (أي الأحداث ذات المستوى الأدنى في إطار النظر في بنية نظام التشغيل نفسها) ، بما في ذلك انتقال تنفيذ التطبيق من وضع المستخدم إلى وضع kernel. عند النظر في هذه العمليات من وجهة نظر تنفيذ التعليمات بلغة التجميع ، يتضح أنه من الصعب جدًا محاكاة استدعاء وظيفة API بشكل صحيح نظرًا للحاجة إلى مراعاة حالة جميع سجلات المعالج وحالة الكل هياكل نظام التشغيل الداخلية.

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

يوضح الشكل 3 طريقة لمحاكاة استدعاءات وظيفة API في إطار عمل الاختراع الحالي. في الخطوة 310 ، تحدث المحاكاة الكلاسيكية للتطبيق ، على سبيل المثال ، في حالة محاكاة تطبيق المفكرة (يظهر جزء صغير من رمز التطبيق عند تصحيحه في مصحح أخطاء OllyDbg):

سيتم محاكاة تعليمات مثل MOV و PUSH و SUB و LEA وما شابه ذلك كما هي ، على سبيل المثال عن طريق محاكاة تعليمات المجمع باستخدام معالج افتراضي في المحاكي. بمجرد حدوث استدعاء دالة API (كما هو محدد في الكتلة 320) ، مثل

ثم ستحدث محاكاة مثل هذه المكالمة وفقًا لإرشادات الجهاز (الخطوة 330) ، مع مراعاة جميع المكالمات المتداخلة ، كما هو موضح ، على سبيل المثال ، في الشكل 2. عند الوصول إلى الانتقال إلى وضع kernel عند تنفيذ وظيفة API ، والتي سيتم التحقق منها في الخطوة 340 ، سيتم نقل المحاكاة إلى الوضع القياسي (العادي ، الكلاسيكي) ، أي لن تتم معالجة الاستدعاءات الإضافية بالتتابع لكل تعليمات ، ولكن سيتم إرجاع نتيجة استدعاء الوظيفة فقط. بعد ذلك ، تعود الطريقة من الخطوة 350 إلى الخطوة 310 لمزيد من المحاكاة.

يوضح الشكل 4 نظامًا يمكن من خلاله تنفيذ الاختراع الحالي. لنفترض أن هناك ملف تنفيذي غير معروف 410 على كمبيوتر المستخدم ، والذي يجب محاكاته لتحديد ما إذا كان قد يكون ضارًا. يجب توضيح أن الملف القابل للتنفيذ يجب أن يُفهم ليس فقط كملفات قابلة للتنفيذ لها تنسيق PE أو ELF ، ولكن أيضًا ملفات أخرى تحتوي على أكواد متنوعة ، مثل ملفات .class أو .jar (للتنفيذ في جهاز Java الظاهري) ، ملفات نصية مختلفة ، مثل .vbs والعديد من الملفات الأخرى. يحتوي الملف 410 نفسه على التعليمات 420 ، والتي تستنسخ المحاكاة التسلسلية لها تنفيذ الملف 410. لاحظ أن المحاكاة التسلسلية تتضمن تنفيذ جميع القفزات ، المشروطة وغير المشروطة ، بالإضافة إلى استدعاء الوظائف المختلفة داخل الملف القابل للتنفيذ 410. في المسلسل مضاهاة ، تصل كل تعليمات 420 إلى إدخال وحدة تحليل التعليمات 430 داخل المحاكي 405 ، بينما تحدد هذه الوحدة ما إذا كانت التعليمات عبارة عن استدعاء لوظيفة واجهة برمجة تطبيقات النظام ، وإذا كانت الإجابة إيجابية ، فإن المحاكي 405 يحاكي الدعوة إلى هذه الوظيفة (معروضة كـ 450) في شكل سلسلة من الأحداث ذات المستوى الأدنى ، كما هو موضح ، على سبيل المثال ، في الشكل 2 (أي الخطوات 210-230 في الشكل 2 قبل الدخول في وضع kernel). خلاف ذلك ، يحاكي المحاكي 405 تنفيذه كجزء من المحاكاة الكلاسيكية (كما هو موضح 440) ، أي تُرجع النتيجة المحاكاة للوظيفة (أي بدون محاكاة جميع المراحل الموضحة في الشكل 2). في بعض الحالات ، يمكن محاكاة التعليمات الخاصة باستدعاء وظيفة API ، تمامًا كما يحدث في حالة مضاهاة 440 الكلاسيكية. على سبيل المثال ، تحتوي وظيفة URLDownloadToFile في التمثيل ذي المستوى المنخفض على سلسلة معقدة من المكالمات إلى TCP / IP driver والمحاكاة التسلسلية لمثل هذه السلسلة قد لا تكون عملية. في أحد التطبيقات ، يتم تحديد الرغبة في استخدام محاكاة استدعاء النظام من خلال محلل التعليمات 430 ، على سبيل المثال ، بناءً على المعلومات المعروفة حول سرعة محاكاة مكالمات معينة.

يوضح الشكل 5 طريقة لتنفيذ الاختراع الحالي. في الكتلة 510 ، جرت محاولة لمحاكاة الملف القابل للتنفيذ 410 على كمبيوتر المستخدم. في الكتلة 520 ، يتم التحقق مما إذا كانت محاكاة وظائف API للنظام مطلوبة.

متطلبات محاكاة وظائف النظام:

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

مطلوب إجراء محاكاة أعمق للملف القابل للتنفيذ 410. يحدث هذا إذا لم يتم مصادفة الملف القابل للتنفيذ 410 من قبل ، مما يعني أنه لا توجد معلومات عن ملف غير معروف من تطبيق مكافحة الفيروسات الذي يوجد بداخله المحاكي قيد التشغيل (أي أنه غير مصنف وغير موجود في قواعد بيانات تطبيقات مكافحة الفيروسات كتطبيق ضار أو آمن).

اكتشف المحاكي الكلاسيكي طرقًا لمواجهة المحاكاة ، مثل: استدعاء وظائف API مع معلمات غير صحيحة بشكل واضح متبوعة بفحص حالة (رمز) الخطأ ، والتحقق من السجلات المتقلبة بعد استدعاء وظائف API ، ومسح محتويات وحدات النظام ، ومحاولة اكتشاف مصحح الأخطاء في النظام ، بالإضافة إلى استدعاء الأساليب القياسية لاكتشاف التنفيذ تحت جهاز افتراضي (RedPill).

الكشف عن استخدام تقنيات التفريغ الذاتي أو الحماية الذاتية (ماكينات التعبئة والتغليف).

الحاجة إلى محاكاة تطبيق يحتمل أن يكون ضارًا كجزء من نظام تشغيل المستخدم مع وجود جميع المكتبات والمترجمين الفوريين (على سبيل المثال ، .NET أو Java). أيضًا ، تتيح لك طريقة المحاكاة المقترحة محاكاة ملفات الدُفعات والتحكم ، مثل ملف دفعي (ملف دفعي) بامتداد .bat أو .cmd ، والنصوص النصية بوويرشيل ، وملفات reg لإدخال البيانات في التسجيل وأنواع أخرى من الملفات ، يؤدي إطلاقه إلى رمز التنفيذ على جهاز الكمبيوتر الخاص بالمستخدم.

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

يؤدي استيفاء واحد على الأقل من هذه المتطلبات إلى محاكاة استدعاءات النظام 450 في الكتلة 530 لمحاكاة وظائف API من خلال تعليمات الجهاز ، كما هو موضح في الشكل 4. بخلاف ذلك ، في الخطوة 540 ، يتم استخدام المحاكاة الكلاسيكية فقط 440. يتيح استخدام هذه المتطلبات نهجًا أكثر مرونة لعملية المحاكاة داخل تطبيق مكافحة الفيروسات دون التسبب في استياء المستخدم ، والذي يرتبط بحمل إضافي بسبب الحاجة إلى محاكاة وظائف واجهة برمجة التطبيقات حسب تعليمات الجهاز.

يوضح الشكل 6 مثالاً لنظام كمبيوتر للأغراض العامة ، أو كمبيوتر شخصي أو خادم 20 ، يشتمل على وحدة معالجة مركزية 21 ، وذاكرة نظام 22 ، وناقل نظام 23 يحتوي على مكونات نظام مختلفة ، بما في ذلك الذاكرة المرتبطة بوحدة المعالجة المركزية 21. يتم تنفيذ ناقل النظام 23 ، مثل أي هيكل ناقل معروف من الفن السابق ، والذي يحتوي بدوره على ذاكرة ناقل أو وحدة تحكم في ذاكرة الناقل ، وناقل طرفي ، وناقل محلي قادر على التفاعل مع أي بنية ناقل أخرى. تحتوي ذاكرة النظام على ذاكرة للقراءة فقط (ROM) 24 ، وذاكرة وصول عشوائي (RAM) 25. يحتوي نظام الإدخال / الإخراج الرئيسي (BIOS) 26 على الإجراءات الرئيسية التي توفر نقل المعلومات بين عناصر الكمبيوتر الشخصي 20 ، على سبيل المثال ، في وقت تحميل أنظمة التشغيل باستخدام ROM 24.

يحتوي الكمبيوتر الشخصي 20 بدوره على قرص صلب 27 لقراءة البيانات وكتابتها ، ومحرك قرص مغناطيسي 28 للقراءة والكتابة على أقراص مغناطيسية قابلة للإزالة 29 ومحرك ضوئي 30 للقراءة والكتابة على أقراص ضوئية قابلة للإزالة 31 ، مثل CD-ROM و DVD -ROM ووسائط التخزين الضوئية الأخرى. القرص الصلب 27 ، محرك القرص المغناطيسي 28 ، محرك الأقراص الضوئية 30 متصل بناقل النظام 23 عبر واجهة القرص الصلب 32 ، واجهة القرص المغناطيسي 33 ، وواجهة محرك الأقراص الضوئية 34 ، على التوالي. تعد محركات الأقراص ووسائط تخزين الكمبيوتر ذات الصلة وسائل غير متطايرة لتخزين تعليمات الكمبيوتر وهياكل البيانات ووحدات البرامج وغيرها من البيانات الخاصة بالكمبيوتر الشخصي 20.

يكشف الوصف الحالي عن تنفيذ نظام يستخدم القرص الصلب 27 وقرص مغناطيسي قابل للإزالة 29 وقرص ضوئي قابل للإزالة 31 ، ولكن يجب أن يكون مفهوماً أن الأنواع الأخرى من وسائط تخزين الكمبيوتر 56 قادرة على تخزين البيانات في نموذج يمكن قراءته بواسطة الكمبيوتر (محركات الأقراص ذات الحالة الصلبة ، وبطاقات الذاكرة المحمولة ، والأقراص الرقمية ، وذاكرة الوصول العشوائي (RAM) ، وما إلى ذلك) ، والتي يتم توصيلها بناقل النظام 23 من خلال وحدة التحكم 55.

يحتوي الكمبيوتر 20 على نظام ملفات 36 حيث يتم تخزين نظام التشغيل المسجل 35 ، بالإضافة إلى تطبيقات البرامج الإضافية 37 ، ووحدات البرامج الأخرى 38 وبيانات البرنامج 39. للمستخدم القدرة على إدخال الأوامر والمعلومات في الكمبيوتر الشخصي 20 من خلال أجهزة الإدخال (لوحة المفاتيح 40 ، مناور "الماوس" 42). يمكن استخدام أجهزة إدخال أخرى (غير معروضة): ميكروفون ، عصا تحكم ، وحدة تحكم ألعاب ، ماسح ضوئي ، إلخ. عادةً ما يتم توصيل أجهزة الإدخال هذه بنظام الكمبيوتر 20 عبر المنفذ التسلسلي 46 ، والذي يكون بدوره متصلًا بناقل النظام ، ولكن قد يتم توصيله بطرق أخرى ، مثل من خلال منفذ متوازي أو منفذ ألعاب أو ناقل تسلسلي عالمي (USB) . يتم أيضًا توصيل شاشة 47 أو أي نوع آخر من أجهزة العرض بحافلة النظام 23 عبر واجهة مثل محول الفيديو 48. بالإضافة إلى الشاشة 47 ، قد يكون الكمبيوتر الشخصي مزودًا بأجهزة إخراج طرفية أخرى (غير معروضة) ، مثل مكبرات الصوت أو الطابعة أو ما شابه.

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

قد تشكل اتصالات الشبكة شبكة محلية (LAN) 50 وشبكة واسعة (WAN). تُستخدم هذه الشبكات في شبكات الكمبيوتر الخاصة بالشركات ، والشبكات الداخلية للشركات ، وكقاعدة عامة ، يمكنها الوصول إلى الإنترنت. في شبكات LAN أو WAN ، يتم توصيل الكمبيوتر الشخصي 20 بشبكة المنطقة المحلية 50 عبر محول شبكة أو واجهة شبكة 51. عند استخدام الشبكات ، قد يستخدم الكمبيوتر الشخصي 20 مودم 54 أو وسائل أخرى للاتصال بشبكة واسعة النطاق مثل الإنترنت. المودم 54 ، وهو جهاز داخلي أو خارجي ، متصل بناقل النظام 23 عبر المنفذ التسلسلي 46. يجب توضيح أن اتصالات الشبكة هي فقط نموذجية وليست مطلوبة لتمثيل التكوين الدقيق للشبكة ، i. في الواقع ، هناك طرق أخرى لإنشاء اتصال من خلال وسائل الاتصال التقنية من كمبيوتر إلى آخر.

في الختام ، يجب ملاحظة أن المعلومات الواردة في الوصف هي أمثلة لا تحد من نطاق الاختراع الحالي المحدد بواسطة الصيغة. سيقدر أي شخص ماهر في المجال أنه قد تكون هناك تجسيدات أخرى للاختراع الحالي تتفق مع روح ومجال الاختراع الحالي.

مطالبة

1. طريقة لمحاكاة استدعاءات وظيفة النظام لتجاوز إجراءات المحاكاة المضادة ، حيث:

أ) تلقي ملف قابل للتنفيذ عند إدخال المحاكي ؛

ب) التحقق من شروط متطلبات محاكاة استدعاءات وظائف النظام ؛

ج) إذا تم استيفاء واحد على الأقل من الشروط المذكورة أعلاه ، فسيتم استخدام محاكاة استدعاء النظام ؛

د) محاكاة تنفيذ ملف قابل للتنفيذ وفقًا للتنفيذ المتسلسل للتعليمات ؛

هـ) عند اكتشاف استدعاء لوظيفة النظام ، يتم تحويل عملية المحاكاة إلى محاكاة استدعاء النظام ؛

و) محاكاة استدعاء وظيفة النظام في شكل سلسلة من المكالمات منخفضة المستوى.

2. طريقة المطالبة 1 ، حيث يكون شرط طلب محاكاة استدعاءات وظائف النظام هو إكمال محاكاة الملف القابل للتنفيذ بسرعة.

3. طريقة عنصر الحماية 1 ، حيث يكون شرط طلب محاكاة استدعاءات وظائف النظام هو عدم وجود حد زمني للمحاكاة.

4. الطريقة وفقًا لعنصر الحماية 1 ، والتي يكون فيها شرط محاكاة المكالمات لوظائف النظام هو عدم وجود معلومات عن ملف غير معروف من تطبيق مكافحة الفيروسات.

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

6. الطريقة وفقًا لعنصر الحماية 1 ، حيث تكون المكالمة منخفضة المستوى عبارة عن تعليم لغة التجميع.

7. طريقة المطالبة 1 ، حيث تكون المكالمة منخفضة المستوى عبارة عن استدعاء متسلسل لجميع وظائف النظام المرتبطة.

8. الطريقة وفقًا لعنصر الحماية 1 ، والتي تنهي محاكاة وظيفة النظام عند الانتقال إلى وضع kernel.

اختيار المحرر
كان بوني باركر وكلايد بارو من اللصوص الأمريكيين المشهورين الذين عملوا خلال ...

4.3 / 5 (30 صوتًا) من بين جميع علامات الأبراج الموجودة ، فإن أكثرها غموضًا هو السرطان. إذا كان الرجل عاطفيًا ، فإنه يتغير ...

ذكرى الطفولة - أغنية * الوردة البيضاء * والفرقة المشهورة * تندر ماي * التي فجرت مرحلة ما بعد الاتحاد السوفيتي وجمعت ...

لا أحد يريد أن يشيخ ويرى التجاعيد القبيحة على وجهه ، مما يدل على أن العمر يزداد بلا هوادة ، ...
السجن الروسي ليس المكان الأكثر وردية ، حيث تطبق القواعد المحلية الصارمة وأحكام القانون الجنائي. لكن لا...
عش قرنًا ، وتعلم قرنًا ، عش قرنًا ، وتعلم قرنًا - تمامًا عبارة الفيلسوف ورجل الدولة الروماني لوسيوس آنيوس سينيكا (4 قبل الميلاد - ...
أقدم لكم أفضل 15 لاعبة كمال أجسام بروك هولاداي ، شقراء بعيون زرقاء ، شاركت أيضًا في الرقص و ...
القطة هي عضو حقيقي في الأسرة ، لذلك يجب أن يكون لها اسم. كيفية اختيار الألقاب من الرسوم الكاريكاتورية للقطط ، ما هي الأسماء الأكثر ...
بالنسبة لمعظمنا ، لا تزال الطفولة مرتبطة بأبطال هذه الرسوم ... هنا فقط الرقابة الخبيثة وخيال المترجمين ...