Π’Π°Π²ΠΈΡ ΠΡΠΌΠ°Π½Π΄ΠΈ (), ΠΈΠ·ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π» ΠΏΠΎ ΡΠΈΠ³ΡΡΠ½ΠΎΡΡΡΠ° Π² Google, ΡΠ°Π·Π²ΠΈΠ²Π° ΠΏΡΠΎΠ΅ΠΊΡ , ΡΠ΅Π»ΡΡ ΠΊΡΠΌ ΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π΅ Π½Π° ΡΡΠ±ΡΠ°Π½ΠΈ Π·Π° Windows DLL Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π·Π° Linux. ΠΡΠΎΠ΅ΠΊΡΡΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°-ΡΠ»ΠΎΠΉ, Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΠΊΠΎΡΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ Π·Π°ΡΠ΅Π΄ΠΈ DLL ΡΠ°ΠΉΠ» Π² PE/COFF ΡΠΎΡΠΌΠ°Ρ ΠΈ Π΄Π° ΡΠ΅ ΠΈΠ·Π²ΠΈΠΊΠ°Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈ Π² Π½Π΅Π³ΠΎ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΠ°ΡΠ΅ΠΆΠ΄Π°ΡΡΡ PE/COFF Π΅ Π±Π°Π·ΠΈΡΠ°Π½ Π½Π° ΠΊΠΎΠ΄ . ΠΠΎΠ΄ΡΡ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π·ΠΈΡ GPLv2.
LoadLibrary ΠΏΠΎΠ΅ΠΌΠ° ΡΡΠ½ΠΊΡΠΈΠΈΡΠ΅ Π·Π° Π·Π°ΡΠ΅ΠΆΠ΄Π°Π½Π΅ Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° Π² ΠΏΠ°ΠΌΠ΅ΡΡΠ° ΠΈ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠ°Π½Π΅ Π½Π° Π½Π°Π»ΠΈΡΠ½ΠΈΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»ΠΈ, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΡΠΉΠΊΠΈ Π½Π° Linux ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ API Π² ΡΡΠΈΠ» dlopen. Π‘Π²ΡΡΠ·Π°Π½ΠΈΡΡ ΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΎΡΠ΄Π΅Π±ΡΠ³Π²Π°Π½ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° gdb, ASAN ΠΈ Valgrind. ΠΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ ΡΠ΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΠΊΠΎΡΠ΅ΠΊΡΠΈΡ Π½Π° ΠΈΠ·ΠΏΡΠ»Π½ΡΠ΅ΠΌΠΈΡ ΠΊΠΎΠ΄ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ ΡΡΠ΅Π· ΡΠ²ΡΡΠ·Π²Π°Π½Π΅ Π½Π° Ρ ΡΠΊ ΠΈ Π½Π°Π»Π°Π³Π°Π½Π΅ Π½Π° ΠΏΠ°ΡΠΎΠ²Π΅ (runtime patching). ΠΠΎΠ΄Π΄ΡΡΠΆΠ°Ρ ΡΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΈ ΡΠ°Π·ΠΏΠ»ΠΈΡΠ° Π½Π° ΠΈΠ·ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π·Π° C++.
Π¦Π΅Π»ΡΠ° Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° Π΅ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΠΌΠ°ΡΠ°Π±ΠΈΡΡΠ΅ΠΌΠΎ ΠΈ Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΎ fuzzing ΡΠ΅ΡΡΠ²Π°Π½Π΅ Π½Π° DLL Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π² ΡΡΠ΅Π΄Π°, Π±Π°Π·ΠΈΡΠ°Π½Π° Π½Π° Linux. Π Windows ΠΏΡΠΎΠ²Π΅ΠΆΠ΄Π°Π½Π΅ΡΠΎ Π½Π° fuzzing ΠΈ coverage ΡΠ΅ΡΡΠ²Π°Π½Π΅ Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΠΏΠΎΡΡΠΈΠ³Π°Π½Π΅ Π½Π° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠ°ΡΠ° Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡ ΠΈ ΡΠ΅ΡΡΠΎ ΠΈΠ·ΠΈΡΠΊΠ²Π° ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΎΡΠ΄Π΅Π»Π΅Π½ Π²ΠΈΡΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ Π΅ΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ Π½Π° Windows, ΠΎΡΠΎΠ±Π΅Π½ΠΎ ΠΏΡΠΈ ΠΎΠΏΠΈΡ Π·Π° Π°Π½Π°Π»ΠΈΠ· Π½Π° ΡΠ»ΠΎΠΆΠ½ΠΈ ΠΏΡΠΎΠ΄ΡΠΊΡΠΈ, ΠΊΠ°ΡΠΎ Π°Π½ΡΠΈΠ²ΠΈΡΡΡΠ΅Π½ ΡΠΎΡΡΡΠ΅Ρ, ΠΎΠ±Ρ Π²Π°ΡΠ°ΡΠΈ ΡΠ°Π±ΠΎΡΠ° Π½Π° Π½ΠΈΠ²ΠΎ ΡΠ΄ΡΠΎ ΠΈ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ Π½Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ. Π‘ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° LoadLibrary ΠΈΠ·ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΠΈΡΠ΅ ΠΎΡ Google ΡΡΡΡΡΡ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ Π² Π²ΠΈΠ΄Π΅ΠΎΠΊΠΎΠ΄Π΅ΡΠΈ, Π°Π½ΡΠΈΠ²ΠΈΡΡΡΠ½ΠΈ ΡΠΊΠ΅Π½Π΅ΡΠΈ, Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π·Π° ΡΠ°Π·Π°ΡΡ ΠΈΠ²ΠΈΡΠ°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ, Π΄Π΅ΠΊΠΎΠ΄Π΅ΡΠΈ Π½Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΈ Π΄Ρ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° LoadLibrary ΡΡΠΏΡΡ Π° Π΄Π° ΠΏΠΎΡΡΠΈΡΡΡΡ Π°Π½ΡΠΈΠ²ΠΈΡΡΡΠ½ΠΈΡ Π΄Π²ΠΈΠΆΠΎΠΊ Windows Defender Π·Π° ΡΠ°Π±ΠΎΡΠ° Π² Linux. ΠΠ·ΡΠ»Π΅Π΄Π²Π°Π½Π΅ΡΠΎ Π½Π° mpengine.dll, ΠΊΠΎΠΉΡΠΎ Π΅ ΠΎΡΠ½ΠΎΠ²Π°ΡΠ° Π½Π° Windows Defender, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° Π°Π½Π°Π»ΠΈΠ· Π½Π° Π³ΠΎΠ»ΡΠΌ Π±ΡΠΎΠΉ ΡΠ»ΠΎΠΆΠ½ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π°ΡΠΈ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΠΎΡΠΌΠ°ΡΠΈ, Π΅ΠΌΡΠ»Π°ΡΠΎΡΠΈ Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ ΠΈ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠΈ Π½Π° Π΅Π·ΠΈΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»Π½ΠΎ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Ρ Π²Π΅ΠΊΡΠΎΡΠΈ Π·Π° .
LoadLibrary ΡΡΡΠΎ ΡΠ°ΠΊΠ° Π±Π΅ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ ΠΏΡΠΈ ΠΎΡΠΊΡΠΈΡΠΈΡ Π² Π°Π½ΡΠΈΠ²ΠΈΡΡΡΠ½ΠΈΡ ΠΏΠ°ΠΊΠ΅Ρ Avast. ΠΡΠΈ Π°Π½Π°Π»ΠΈΠ· Π½Π° DLL ΠΎΡ ΡΠΎΠ·ΠΈ Π°Π½ΡΠΈΠ²ΠΈΡΡΡ Π±Π΅ΡΠ΅ ΡΡΡΠ°Π½ΠΎΠ²Π΅Π½ΠΎ, ΡΠ΅ ΠΊΠ»ΡΡΠΎΠ²ΠΈΡΡ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡΠΎΠ²Π°Π½ ΠΏΡΠΎΡΠ΅Ρ Π½Π° ΡΠΊΠ°Π½ΠΈΡΠ°Π½Π΅ Π²ΠΊΠ»ΡΡΠ²Π° ΠΏΡΠ»Π΅Π½ JavaScript ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ Π·Π° Π΅ΠΌΡΠ»Π°ΡΠΈΡ Π½Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΡΡΠΎΡΠΎΠ½Π΅Π½ JavaScript ΠΊΠΎΠ΄. Π’ΠΎΠ·ΠΈ ΠΏΡΠΎΡΠ΅Ρ Π½Π΅ Π΅ ΠΈΠ·ΠΎΠ»ΠΈΡΠ°Π½ Π² sandbox ΡΡΠ΅Π΄Π°, Π½Π΅ Π΄Π΅ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΡΠ° ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈΡΠ΅ ΠΈ ΠΈΠ·Π²ΡΡΡΠ²Π° Π°Π½Π°Π»ΠΈΠ· Π½Π° Π½Π΅ΠΏΡΠΎΠ²Π΅ΡΠ΅Π½ΠΈ Π²ΡΠ½ΡΠ½ΠΈ Π΄Π°Π½Π½ΠΈ ΠΎΡ ΡΠ°ΠΉΠ»ΠΎΠ²Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° ΠΈ ΠΏΡΠΈΡ Π²Π°Π½Π°ΡΠΈΡ ΠΌΡΠ΅ΠΆΠΎΠ² ΡΡΠ°ΡΠΈΠΊ. Π’ΡΠΉ ΠΊΠ°ΡΠΎ Π²ΡΡΠΊΠ° ΡΡΠ·Π²ΠΈΠΌΠΎΡΡ Π² ΡΠΎΠ·ΠΈ ΡΡΠ»ΠΎΠΆΠ½Π΅Π½ ΠΈ Π½Π΅Π·Π°ΡΠΈΡΠ΅Π½ ΠΏΡΠΎΡΠ΅Ρ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»Π½ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ Π΄ΠΈΡΡΠ°Π½ΡΠΈΠΎΠ½Π½Π° ΠΊΠΎΠΌΠΏΡΠΎΠΌΠ΅ΡΠ°ΡΠΈΡ Π½Π° ΡΡΠ»Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ°, Π½Π° Π±Π°Π·Π°ΡΠ° Π½Π° LoadLibrary Π±Π΅ΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ΅Π½Π° ΡΠΏΠ΅ΡΠΈΠ°Π»Π½Π° ΠΎΠ±Π²ΠΈΠ²ΠΊΠ°. Π·Π° Π°Π½Π°Π»ΠΈΠ· Π½Π° ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ Π² Π°Π½ΡΠΈΠ²ΠΈΡΡΡΠ½ΠΈΡ ΡΠΊΠ°Π½Π΅Ρ Avast Π² ΡΡΠ΅Π΄Π° Π½Π° Π±Π°Π·Π°ΡΠ° Π½Π° Linux.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
