āĻā§āĻāϞ GWPSan āĻā§āϞāĻāĻŋāĻā§āϰ āϏā§āϰā§āϏ āĻā§āĻĄ āĻĒā§āϰāĻāĻžāĻļ āĻāϰā§āĻā§, āϝāĻž x86-64 āĻāĻŦāĻ ARM64 āĻāϰā§āĻāĻŋāĻā§āĻāĻāĻžāϰā§āϰ āĻāύā§āϝ āύāĻŋāϰā§āĻŽāĻŋāϤ āĻ ā§āϝāĻžāĻĒā§āϞāĻŋāĻā§āĻļāύāĻā§āϞāĻŋāϤ⧠āϰāĻžāύāĻāĻžāĻāĻŽ āϤā§āϰā§āĻāĻŋ āϏāύāĻžāĻā§āϤ āĻāϰāĻžāϰ āĻāύā§āϝ āĻĄāĻŋāĻāĻžāĻāύ āĻāϰāĻž āĻšāϝāĻŧā§āĻā§āĨ¤ GWPSan āĻāĻāĻāĻŋ āĻļā§āϝāĻŧāĻžāϰā§āĻĄ āϞāĻžāĻāĻŦā§āϰā§āϰāĻŋ āĻšāĻŋāϏāĻžāĻŦā§ āϤā§āϰāĻŋ āĻāϰāĻž āĻšāϝāĻŧā§āĻā§, āϝāĻž āĻ ā§āϝāĻžāĻĒā§āϞāĻŋāĻā§āĻļāύ āĻāĻžāϞ⧠āĻšāĻāϝāĻŧāĻžāϰ āϏāĻŽāϝāĻŧ LD_PRELOAD āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āϞāĻŋāĻā§āĻ āĻāϰāĻž āĻšāϝāĻŧ āĻāĻŦāĻ āĻĒā§āϰā§āĻā§āϰāĻžāĻŽ āύāĻŋāϰā§āĻŦāĻžāĻš āĻŦāĻŋāĻļā§āϞā§āώāĻŖ āĻāϰāĻžāϰ āĻāύā§āϝ āĻāĻžāϰā§āύā§āϞ-āĻ ā§āϝāĻžāĻā§āϏā§āϏāϝā§āĻā§āϝ āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāĻāĻžāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āĨ¤ Linux āĻĒā§āϰāϏā§āϏ āĻŦāύā§āϧ āĻāϰāĻž (PERF_TYPE_BREAKPOINT) āĻāĻŦāĻ āϏā§āϝāĻžāĻŽā§āĻĒāϞāĻŋāĻ āĻāϰāĻžāϰ āĻĒāĻĻā§āϧāϤāĻŋāĨ¤ āĻā§āĻĄāĻāĻŋ C++ āĻāĻžāώāĻžāϝāĻŧ āϞā§āĻāĻž āĻāĻŦāĻ āĻ ā§āϝāĻžāĻĒāĻžāĻāĻŋ ⧍.ā§Ļ āϞāĻžāĻāϏā§āύā§āϏā§āϰ āĻ āϧā§āύ⧠āĻŦāĻŋāϤāϰāĻŖ āĻāϰāĻž āĻšāϝāĻŧā§āĻā§āĨ¤
GWPSan āĻāĻāĻāĻŋ āĻŽāĻĄāĻŋāĻāϞāĻžāϰ āĻĢā§āϰā§āĻŽāĻāϝāĻŧāĻžāϰā§āĻ āĻšāĻŋāϏā§āĻŦā§ āĻĄāĻŋāĻāĻžāĻāύ āĻāϰāĻž āĻšāϝāĻŧā§āĻā§, āϝāĻž āĻŦāĻŋāĻāĻŋāύā§āύ āĻļā§āϰā§āĻŖā§āϰ āϤā§āϰā§āĻāĻŋāϰ āĻāύā§āϝ āĻĄāĻŋāĻā§āĻā§āĻāϰ āĻŦāĻžāϏā§āϤāĻŦāĻžāϝāĻŧāύāĻāĻžāϰ⧠āĻĒā§āϞāĻžāĻā§āĻŦāϞ āĻŽāĻĄāĻŋāĻāϞāĻā§āϞā§āĻā§ āϏāĻŽāϰā§āĻĨāύ āĻāϰā§āĨ¤ GWPSan āϏāĻŋāĻāύā§āϝāĻžāϞ āĻšā§āϝāĻžāύā§āĻĄāϞāĻžāϰā§āϰ āĻŽāĻžāϧā§āϝāĻŽā§ āĻĄāĻžāϝāĻŧāύāĻžāĻŽāĻŋāĻ āĻŦāĻŋāĻļā§āϞā§āώāĻŖ āϏāĻŽā§āĻĒāĻžāĻĻāύ āĻāϰā§, āϝāĻžāϰ āĻĢāϞ⧠āĻ ā§āϝāĻžāĻĒā§āϞāĻŋāĻā§āĻļāύāĻāĻŋāϰ āĻāĻā§āϏāĻŋāĻāĻŋāĻāĻā§āĻŦāϞ āĻā§āĻĄ āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āĻāϰāĻžāϰ āĻĒā§āϰāϝāĻŧā§āĻāύ āĻšāϝāĻŧ āύāĻžāĨ¤ āĻŦā§āĻļāĻŋāϰāĻāĻžāĻ āĻĄāĻŋāĻā§āĻā§āĻāϰ āĻāĻžāϰā§āϝāĻāϰāĻāĻžāĻŦā§ āĻāĻžāĻ āĻāϰāĻžāϰ āĻāύā§āϝ, āĻ ā§āϝāĻžāĻĒā§āϞāĻŋāĻā§āĻļāύāĻāĻŋāĻā§ āĻ āĻŦāĻļā§āϝāĻ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻāĻŽā§āĻĒāĻžāĻāϞāĻžāϰ āĻĢā§āϞā§āϝāĻžāĻ āĻĻāĻŋāϝāĻŧā§ āĻŦāĻŋāϞā§āĻĄ āĻāϰāϤ⧠āĻšāĻŦā§, āϝāĻž āĻĒā§āϰāϝāĻŧā§āĻāύā§āϝāĻŧ āĻŽā§āĻāĻžāĻĄā§āĻāĻž āϝā§āĻ āĻāϰā§āĨ¤ āύā§āϝā§āύāϤāĻŽ Clang 18 āĻāĻŦāĻ kernel 18 āĻĒā§āϰāϝāĻŧā§āĻāύāĨ¤ Linux 6.4.
āĻŦāϰā§āϤāĻŽāĻžāύ⧠āϤāĻŋāύāĻāĻŋ āĻĄāĻŋāĻā§āĻā§āĻāϰ āĻāĻĒāϞāĻŦā§āϧ āϰāϝāĻŧā§āĻā§:
- UAR (āĻŦā§āϝāĻŦāĻšāĻžāϰ-āĻāĻĢāĻāĻžāϰ-āϰāĻŋāĻāĻžāϰā§āύ) - āϝ⧠āĻĢāĻžāĻāĻļāύ⧠āĻ āĻŦāĻā§āĻā§āĻāĻāĻŋ āϏāĻāĻā§āĻāĻžāϝāĻŧāĻŋāϤ āĻāϰāĻž āĻšāϝāĻŧā§āĻāĻŋāϞ āϤāĻž āĻĨā§āĻā§ āĻĒā§āϰāϏā§āĻĨāĻžāύ āĻāϰāĻžāϰ āĻĒāϰ āϏā§āĻā§āϝāĻžāĻā§āϰ āĻāĻĒāϰ āĻāĻāĻāĻŋ āĻŦāϏā§āϤ⧠āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻžāϰ āĻāĻžāϰāĻŖā§ āϏā§āώā§āĻ āϤā§āϰā§āĻāĻŋ āϏāύāĻžāĻā§āϤ āĻāϰā§āĨ¤ āĻāĻāĻāĻŋ āĻĢāĻžāĻāĻļāύā§āϰ āĻāύā§āϝ āĻāύā§āĻā§āϰāĻŋ āĻāĻŦāĻ āĻāĻā§āϏāĻŋāĻ āĻĒāϝāĻŧā§āύā§āĻā§āϰ āĻāύā§āĻāĻžāϰāϏā§āĻĒāĻļāύā§āϰ āĻŽāĻžāϧā§āϝāĻŽā§ āϏā§āϰāĻā§āώāĻž āϏāĻāĻāĻ āĻŋāϤ āĻšāϝāĻŧ - āĻĒā§āϰāĻŦā§āĻļā§āϰ āϏāĻŽāϝāĻŧ, āϏā§āĻā§āϝāĻžāĻāĻāĻŋ āĻĢāĻžāĻāĻļāύāĻāĻŋ āϏāĻŽā§āĻĒāĻžāĻĻāύā§āϰ āϏāĻŽāϝāĻŧ āĻŦā§āϝāĻŦāĻšāĻžāϰā§āϰ āĻāύā§āϝ āĻāĻāĻāĻŋ āĻ āύā§āϞāĻŋāĻĒāĻŋ āĻĻāĻŋāϝāĻŧā§ āĻĒā§āϰāϤāĻŋāϏā§āĻĨāĻžāĻĒāĻŋāϤ āĻšāϝāĻŧ āĻāĻŦāĻ āĻĒā§āϰāϏā§āĻĨāĻžāύ āĻāϰāĻžāϰ āĻĒāϰā§, āϏā§āĻā§āϝāĻžāĻā§āϰ āĻĒā§āϰāĻžāύ⧠āĻ āĻŦāϏā§āĻĨāĻž āĻĢāĻŋāϰāĻŋāϝāĻŧā§ āĻĻā§āĻāϝāĻŧāĻž āĻšāϝāĻŧāĨ¤
- TSan (āĻĨā§āϰā§āĻĄ āϏā§āϝāĻžāύāĻŋāĻāĻžāĻāĻāĻžāϰ) - āĻĄā§āĻāĻž-āϰā§āϏā§āϰ āĻ āĻŦāϏā§āĻĨāĻž āϏāύāĻžāĻā§āϤ āĻāϰ⧠āϝā§āĻā§āϞāĻŋ āĻāĻā§ āϝāĻāύ āĻŦāĻŋāĻāĻŋāύā§āύ āĻāĻāϝā§āĻā§ āĻāĻžāϰā§āϝāĻāϰ⧠āĻĨā§āϰā§āĻĄāĻā§āϞāĻŋ āĻāĻžāĻ āϏāĻŋāĻā§āĻā§āϰā§āύāĻžāĻāĻ āĻāϰāĻžāϰ āĻāύā§āϝ āĻāĻĻāĻŋāĻŽ āĻŦā§āϝāĻŦāĻšāĻžāϰ āύāĻž āĻāϰ⧠āĻļā§āϝāĻŧāĻžāϰ āĻāϰāĻž āĻŽā§āĻŽāϰāĻŋ āĻ āĻā§āĻāϞāĻā§āϞāĻŋ āĻĒāĻĄāĻŧāϤ⧠āĻŦāĻž āϏāĻāĻļā§āϧāύ āĻāϰāϤ⧠āĻĒāĻžāϰā§āĨ¤ āϏā§āϰāĻā§āώāĻž āĻāĻžāĻ āĻāϰāĻž āĻŽā§āĻŽāϰāĻŋ āĻāϞāĻžāĻāĻžāϝāĻŧ āĻŦāĻžāĻāϧāĻž āĻšāĻžāϰā§āĻĄāĻāϝāĻŧā§āϝāĻžāϰ āĻŦā§āϰā§āĻāĻĒāϝāĻŧā§āύā§āĻ āĻŦā§āϝāĻŦāĻšāĻžāϰā§āϰ āĻāĻĒāϰ āĻāĻŋāϤā§āϤāĻŋ āĻāϰā§āĨ¤ āĻā§āϰāĻŋāĻāĻžāϰ āĻāϰāĻž āĻšā§āϝāĻžāύā§āĻĄāϞāĻžāϰ āĻŽā§āĻŽāϰāĻŋ āĻ ā§āϝāĻžāĻā§āϏā§āϏ āĻāϰāĻžāϰ āϏāĻŽāϝāĻŧ āĻāĻāĻāĻŋ āĻĨā§āϰā§āĻĄā§āϰ āϏāĻŽā§āĻĒāĻžāĻĻāύāĻā§ āĻ āϞā§āĻĒ āϏāĻŽāϝāĻŧā§āϰ āĻāύā§āϝ āĻŦāĻŋāϰāϤāĻŋ āĻĻā§āϝāĻŧ āĻāĻŦāĻ āĻāĻ āϏāĻžāϏāĻĒā§āύāĻļāύā§āϰ āϏāĻŽāϝāĻŧ, āĻ āύā§āϝ āĻĨā§āϰā§āĻĄā§āϰ āĻāύā§āϝ āĻāĻāĻāĻŋ āĻŦā§āϰā§āĻāĻĒāϝāĻŧā§āύā§āĻ āĻā§āϰāĻŋāĻāĻžāϰ āĻāϰāĻž āĻšāϝāĻŧā§āĻā§ āĻāĻŋāύāĻž āϤāĻž āĻĒāϰā§āĻā§āώāĻž āĻāϰā§āĨ¤
- LMSan (āϞāĻžāĻāĻāĻāϝāĻŧā§āĻ āĻŽā§āĻŽāϰāĻŋ āϏā§āϝāĻžāύāĻŋāĻāĻžāĻāĻāĻžāϰ) - āĻŽā§āĻŽāϰāĻŋāϤ⧠āĻ āĻĒā§āϰāĻāϞāĻŋāϤ āĻĄā§āĻāĻžāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āύāĻŋāϰā§āϧāĻžāϰāĻŖ āĻāϰā§āĨ¤ āĻĄāĻŋāĻā§āĻā§āĻāϰ āĻĒāϰā§āĻā§āώāĻžāĻŽā§āϞāĻ āĻšāĻŋāϏāĻžāĻŦā§ āĻāĻŋāĻšā§āύāĻŋāϤ āĻāĻŦāĻ āĻŦā§āϝāĻŦāĻšāĻžāϰā§āϰ āĻāύā§āϝ āϏā§āĻĒāĻžāϰāĻŋāĻļ āĻāϰāĻž āĻšāϝāĻŧ āύāĻžāĨ¤
GWPSan āĻŦāĻŋāĻŽā§āϰā§āϤ ISA āύāĻŋāϰā§āĻĻā§āĻļāĻžāĻŦāϞā§āϤ⧠āĻŽā§āĻļāĻŋāύ āĻā§āĻĄ āĻĄāĻŋāĻā§āĻĄ āĻāϰāĻžāϰ āĻāύā§āϝ DynamoRIO āĻĢā§āϰā§āĻŽāĻāϝāĻŧāĻžāϰā§āĻ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āĻāĻāĻāĻŋ āĻĒā§āϰā§āĻā§āϰāĻžāĻŽā§āϰ āĻāĻā§āϏāĻŋāĻāĻŋāĻāĻā§āĻŦāϞ āĻā§āĻĄ āĻŦāĻŋāĻļā§āϞā§āώāĻŖ āĻāϰā§, āϝāĻž āĻĒāϰ⧠āĻāĻŽā§āϞā§āĻļāύ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āĻāĻžāϰā§āϝāĻāϰ āĻāϰāĻž āĻšāϝāĻŧāĨ¤ āĻāĻžāĻāĻŽāĻžāϰ āĻĨā§āĻā§ āĻĒāϰā§āϝāĻžāϝāĻŧāĻā§āϰāĻŽāĻŋāĻ āϏāĻāĻā§āϤā§āϰ āĻŽāĻžāϧā§āϝāĻŽā§, āĻāĻāύāĻŋāĻĢāĻžāĻāĻĄ āĻšā§āϝāĻžāύā§āĻĄāϞāĻžāϰāĻā§ āĻŦāϞāĻž āĻšāϝāĻŧ, āϝāĻž āĻĒā§āϰāϤāĻŋāĻāĻŋ āĻāϞā§āϰ āϏāĻžāĻĨā§ āĻŦāĻŋāĻļā§āϞā§āώāĻŖāĻā§āϤ āĻĨā§āϰā§āĻĄā§āϰ āύāĻŋāϰā§āĻĻā§āĻļāĻžāĻŦāϞā§āϰ āĻāĻāĻāĻŋ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻ
āĻāĻļ āĻāĻžāϰā§āϝāĻāϰ āĻāϰā§āĨ¤ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āύāĻŋāϰā§āĻĻā§āĻļāĻžāĻŦāϞ⧠āĻāĻžāϰā§āϝāĻāϰ āĻāϰāĻžāϰ āϏāĻŽāϝāĻŧ āϏāύāĻžāĻā§āϤ āĻāϰāĻž āĻšāϞā§, āĻāĻ āύāĻŋāϰā§āĻĻā§āĻļāĻžāĻŦāϞā§āϰ āĻāύā§āϝ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻāĻāĻāĻŋ āϏāĻŽāϏā§āϝāĻž āϏāύāĻžāĻā§āϤāĻāĻžāϰ⧠āĻāĻžāϞ⧠āĻāϰāĻž āĻšāϝāĻŧ, āĻāĻĻāĻžāĻšāϰāĻŖāϏā§āĻŦāϰā§āĻĒ, āĻŽā§āĻŽāϰāĻŋ āĻ
ā§āϝāĻžāĻā§āϏā§āϏ āĻāϰāĻžāϰ āύāĻŋāϰā§āĻĻā§āĻļāĻžāĻŦāϞā§āϰ āĻāύā§āϝ, āĻāĻāĻāĻŋ āϰā§āϏ āĻāύā§āĻĄāĻŋāĻļāύ āĻĄāĻŋāĻā§āĻā§āĻāϰ āĻāĻžāϞ⧠āĻāϰāĻž āĻšāϝāĻŧāĨ¤
āĻāϤā§āϏ: opennet.ru
