ملاحظة: في 03/11/2020 أعلن Avast أنهم قرروا تعطيل هذا المترجم على مستوى العالم!
وتسمى عملية Avast الرئيسية لمكافحة الفيروسات Avastsvc.exe ، والتي تعمل كنظام.

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

يحتوي هذا المستودع على قشرة تفاعلية تتيح لك اختبار المترجم المترجم على Linux لأبحاث الضعف.
إليك كيفية تجربتها ، قم أولاً بتثبيت التبعيات.
$ sudo apt install libreadline-dev:i386 libc6-dev-i386 gcc-multilib
$ sudo yum install readline-devel.i686 glibc-devel.i686 libgcc.i686
الآن يمكنك استنساخ هذا المستودع.
$ git clone https://github.com/taviso/avscript.git
$ cd avscript
$ git submodule update --init --recursive
إذا كان كل شيء يبدو جيدًا ، فيجب أن يكون إنشاءه ويجب أن يكون avscript جاهزًا.
$ make
لأسباب في الأداء ، لا تفسر Avast كل ملف JavaScript الذي يواجهونه ، ويستخدمون مجريات الأمور لتحديد ما إذا كان ذلك ضروريًا. لقد وجدت أن إلحاق الملف javascript.txt المدرج في هذا المستودع يكفي لإثارة الاستدلال دائمًا.
على سبيل المثال ، إذا وجدت ثغرة أمنية وترغب في إعادة إنتاجها على Windows ، فستقوم أولاً بذلك:
$ cat yourtestcase.js javascript.txt > ReproForWindows.js
تحقق الآن من أنه لا يزال يفعل ما تتوقعه ، على سبيل المثال
$ ./avscript ReproForWindows.js
main(): File ReproForWindows.js` loaded, about to initialize interpreter...
Segmentation fault (core dumped)
ثم تحقق من التصادم المستنسخ على النوافذ.
خدمة AVAST هي عملية محمية ، مما يعني أن تصحيح الأخطاء من مساحة المستخدمين أمر صعب. إذا كنت قد قمت بتكوين KD ، فيمكنك ببساطة التراجع عن هذا ، ثم تصحيح الأخطاء في مساحة المستخدمين يعمل بشكل جيد.
يتمثل الحل السريع والسهل الذي يعمل على 32 بت هو القيام بذلك (لاحظ أن PatchGuard لن يسمح بذلك على X64 ، ولكن يمكنك القيام بشيء مماثل مع أوامر Breakpoint).

هناك أيضًا إعداد تحت "استكشاف الأخطاء وإصلاحها" يسمى "تمكين الدفاع عن النفس" الذي ينبغي تعطيله. أعتقد أن هذا الإعداد يعطل التثبيت OpenProcess() في SSDT ، حيث عادة ما يكونون في قائمة السوداء الخاصة بهم.
قد تحتاج إلى تعطيل "الدروع" مؤقتًا في واجهة المستخدم AVAST أثناء إرفاقها حتى لا يتم تعليق عمليات نظام الملفات أثناء تعليق الخدمة.
لا تنشر Avast أي رموز لمحركهم ، ولكن لا يزال التصحيح مع IDA أو GDB ممكنًا. هناك بعض الملاحظات على رمز Windows تصحيح الأخطاء من Linux في وثائق التحميل.
إذا كنت ترغب في استخدام IDA ، فإنني أوصي باستخدام الواجهة الخلفية gdbserver .
ما عليك سوى استخدام شيء من هذا القبيل ، قد تحتاج إلى تثبيت حزمة GDBServer أولاً:
$ gdbserver 0.0.0.0:23946 ./avscript
هذا يعمل بشكل مدهش بشكل مدهش ، حتى نقاط التوقف الكاذبة تعمل.

إذا وجدت ضعفًا ، فمن المحتمل أن يكون ذلك أمرًا بالغ الأهمية .
الرجاء الإبلاغ عن ذلك على وجه السرعة.