注:2020年3月11日、アバストは、この通訳をグローバルに無効にすることを決定したと発表しました!
主なアバストアンチウイルスプロセスは、システムとして実行されるavastsvc.exeと呼ばれます。

そのサービスは、低レベルのウイルス対策エンジンをロードし、ファイルシステムのミニフィルターや傍受されたネットワークトラフィックなどのソースから受け取った信頼できないデータを分析します。
非常に特権があり、設計による信頼されていない入力を処理しているにもかかわらず、それは保護されていないものであり、緩和策の補償が不十分です。このプロセスの脆弱性は重要であり、リモート攻撃者が簡単にアクセスできます。
だから..多分それにはカスタムJavaScriptインタープリターが含まれているのは素晴らしいことではない.... ???? ?

このリポジトリには、脆弱性研究のために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)
次に、Windowsで再現されたクラッシュを確認します。
Avastサービスは保護されたプロセスです。つまり、ユーザースペースからデバッグするのは難しいことです。 KDを構成している場合は、これを元に戻してから、ユーザースペースでデバッグするだけで正常に動作します。
32ビットで動作する迅速で簡単なソリューションはこれを行うことです(PatchGuardはX64でこれを許可しないことに注意してくださいが、BreakPointコマンドで同様のことをすることができます)。

また、「トラブルシューティング」の下にある「Enable Self Defense」と呼ばれる設定が無効になるはずです。この設定は、SSDTでHookprocess OpenProcess()を無効にしていると思います。
添付中にアバストUIで「シールド」を一時的に無効にする必要がある場合があり、サービスが中断されている間にファイルシステム操作がデッドロックしないようにする必要があります。
Avastはエンジンのシンボルを公開していませんが、IDAまたはGDBでデバッグすることはまだ可能です。 LoadLibraryドキュメントにLinuxのWindowsコードのデバッグに関するメモがいくつかあります。
IDAを使用する場合は、 gdbserverバックエンドを使用することをお勧めします。
このようなものを使用するだけで、最初にGDBServerパッケージをインストールする必要がある場合があります。
$ gdbserver 0.0.0.0:23946 ./avscript
これは驚くほどうまく機能し、擬似コードのブレークポイントでさえも機能します。

脆弱性を見つけた場合、それはおそらく批判的で装飾可能です。
緊急に報告してください。