Catatan: Pada 03/11/2020 Avast mengumumkan bahwa mereka telah memutuskan untuk menonaktifkan penerjemah ini secara global!
Proses antivirus AVAST utama disebut avastsvc.exe, yang berjalan sebagai sistem.

Layanan itu memuat mesin antivirus tingkat rendah, dan menganalisis data yang tidak dipercaya yang diterima dari sumber -sumber seperti minifilter sistem file atau lalu lintas jaringan yang dicegat.
Meskipun sangat istimewa dan memproses input yang tidak dipercaya oleh desain, itu tidak diandbox dan memiliki cakupan mitigasi yang buruk. Kerentanan apa pun dalam proses ini sangat penting, dan mudah diakses oleh penyerang jarak jauh.
Jadi .. mungkin tidak bagus bahwa itu termasuk juru bahasa javascript kustom .... ???? ?

Repositori ini berisi shell interaktif yang memungkinkan Anda menguji penerjemah di Linux untuk penelitian kerentanan.
Inilah cara mencobanya, pertama -tama instal dependensi.
$ sudo apt install libreadline-dev:i386 libc6-dev-i386 gcc-multilib
$ sudo yum install readline-devel.i686 glibc-devel.i686 libgcc.i686
Sekarang Anda dapat mengkloning repositori ini.
$ git clone https://github.com/taviso/avscript.git
$ cd avscript
$ git submodule update --init --recursive
Jika semuanya terlihat bagus, bangun dan avscript harus siap.
$ make
Untuk alasan kinerja, Avast tidak menafsirkan setiap file JavaScript yang mereka temui, mereka menggunakan heuristik untuk menentukan apakah itu perlu. Saya telah menemukan bahwa menambahkan file javascript.txt yang disertakan dalam repositori ini sudah cukup untuk selalu memicu heuristik.
Misalnya, jika Anda telah menemukan kerentanan dan ingin mereproduksi di Windows, Anda akan terlebih dahulu melakukan ini:
$ cat yourtestcase.js javascript.txt > ReproForWindows.js
Sekarang verifikasi bahwa itu masih melakukan apa yang Anda harapkan, misalnya
$ ./avscript ReproForWindows.js
main(): File ReproForWindows.js` loaded, about to initialize interpreter...
Segmentation fault (core dumped)
Kemudian verifikasi kerusakan yang direproduksi pada Windows.
Layanan AVAST adalah proses yang dilindungi, yang berarti men -debug dari ruang pengguna itu rumit. Jika Anda memiliki KD yang dikonfigurasi, Anda dapat membatalkan ini dan kemudian men -debug di Userspace berfungsi dengan baik.
Solusi cepat dan mudah yang berfungsi pada 32-bit adalah melakukan ini (perhatikan bahwa PatchGuard tidak akan mengizinkan ini pada x64, tetapi Anda dapat melakukan sesuatu yang serupa dengan perintah breakpoint).

Ada juga pengaturan di bawah "Pemecahan Masalah" yang disebut "Aktifkan Bela Diri" yang harus dinonaktifkan. Saya percaya pengaturan ini menonaktifkan Hooking OpenProcess() di SSDT, di mana mereka biasanya membuat daftar hitam proses mereka sendiri.
Anda mungkin perlu menonaktifkan sementara "perisai" di AVAST UI saat Anda melampirkan sehingga operasi sistem file tidak menemui jalan buntu saat layanan ditangguhkan.
Avast tidak mempublikasikan simbol apa pun untuk mesin mereka, tetapi debugging dengan IDA atau GDB masih mungkin. Ada beberapa catatan tentang debugging windows code dari Linux dalam dokumentasi LoadLibrary.
Jika Anda ingin menggunakan IDA, saya akan merekomendasikan menggunakan backend gdbserver .
Cukup gunakan sesuatu seperti ini, Anda mungkin perlu menginstal paket GDBServer terlebih dahulu:
$ gdbserver 0.0.0.0:23946 ./avscript
Ini bekerja dengan sangat baik, bahkan breakpoint pseudocode berfungsi.

Jika Anda menemukan kerentanan, kemungkinan besar kritis dan cacing .
Harap laporkan ini segera.