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