หมายเหตุ: เมื่อวันที่ 03/11/2020 Avast ประกาศว่าพวกเขาตัดสินใจที่จะปิดการใช้งานล่ามนี้ทั่วโลก!
กระบวนการ Avast Antivirus หลักเรียกว่า Avastsvc.exe ซึ่งทำงานเป็นระบบ

บริการนั้นโหลดเอ็นจิ้นป้องกันไวรัสระดับต่ำและวิเคราะห์ข้อมูลที่ไม่น่าเชื่อถือที่ได้รับจากแหล่งข้อมูลเช่นระบบไฟล์ minifilter หรือการรับส่งข้อมูลเครือข่ายที่สกัดกั้น
แม้จะมีสิทธิพิเศษสูงและการประมวลผลอินพุตที่ไม่น่าเชื่อถือโดยการออกแบบ แต่ก็ไม่ได้รับการตอบรับและมีความคุ้มครองการบรรเทาที่ไม่ดี ช่องโหว่ใด ๆ ในกระบวนการนี้มีความสำคัญและสามารถเข้าถึงผู้โจมตีระยะไกลได้อย่างง่ายดาย
ดังนั้น .. อาจจะไม่ดีที่จะมีล่าม 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 เป็นกระบวนการที่ได้รับการป้องกันซึ่งหมายถึงการดีบักจาก Userspace นั้นยุ่งยาก หากคุณมีการกำหนดค่า KD คุณสามารถเลิกทำสิ่งนี้ได้แล้วการดีบักใน UsersPace นั้นใช้งานได้ดี
ทางออกที่ง่ายและง่ายดายที่ใช้งานได้บน 32 บิตคือการทำเช่นนี้ (โปรดทราบว่า PatchGuard จะไม่อนุญาตให้ใช้กับ X64 แต่คุณสามารถทำสิ่งที่คล้ายกันกับคำสั่งเบรกพอยต์)

นอกจากนี้ยังมีการตั้งค่าภายใต้ "การแก้ไขปัญหา" ที่เรียกว่า "เปิดใช้งานการป้องกันตนเอง" ที่ควรปิดใช้งาน ฉันเชื่อว่าการตั้งค่านี้ปิดใช้งานการเชื่อมต่อ OpenProcess() ใน SSDT ซึ่งปกติแล้วพวกเขาจะขึ้นบัญชีของตัวเอง
คุณอาจต้องปิดการใช้งาน "โล่" ชั่วคราวใน Avast UI ในขณะที่คุณแนบเพื่อให้การดำเนินงานของระบบไฟล์ไม่หยุดยั้งในขณะที่บริการถูกระงับ
Avast ไม่ได้เผยแพร่สัญลักษณ์ใด ๆ สำหรับเครื่องยนต์ของพวกเขา แต่การดีบักด้วย IDA หรือ GDB ยังคงเป็นไปได้ มีบันทึกบางอย่างเกี่ยวกับการดีบักรหัส Windows จาก Linux ในเอกสารประกอบ LoadLibrary
หากคุณต้องการใช้ IDA ฉันขอแนะนำให้ใช้แบ็กเอนด์ gdbserver
เพียงแค่ใช้สิ่งนี้คุณอาจต้องติดตั้งแพ็คเกจ GDBSERVER ก่อน:
$ gdbserver 0.0.0.0:23946 ./avscript
สิ่งนี้ใช้งานได้ดีอย่างน่าประหลาดใจแม้กระทั่งจุดพัก Pseudocode ก็ใช้ได้ผล

หากคุณพบช่องโหว่อาจ มีความสำคัญ และ เป็นหนอน
โปรดรายงานอย่างเร่งด่วน