Windows āύ⧇āϟāĻŋāĻ­ āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύ āĻāĻŦāĻ‚ āĻ…ā§āϝāĻžāĻ•ā§āϰ⧋āύāĻŋāϏ āĻ…ā§āϝāĻžāĻ•ā§āϟāĻŋāĻ­ āϰāĻŋāĻ¸ā§āĻŸā§‹āϰ āĻĒāϰāĻŋāώ⧇āĻŦāĻž

āφāϜ āφāĻŽāϰāĻž āχāύ⧋āĻĒāϞāĻŋāϏ āχāωāύāĻŋāĻ­āĻžāĻ°ā§āϏāĻŋāϟāĻŋāϰ āϏāĻžāĻĨ⧇ āϕ⧀āĻ­āĻžāĻŦ⧇ āĻ…ā§āϝāĻžāĻ•ā§āϟāĻŋāĻ­ āϰāĻŋāĻ¸ā§āĻŸā§‹āϰ āĻĒā§āϰāϝ⧁āĻ•ā§āϤāĻŋ āϤ⧈āϰāĻŋ āĻ•āϰāĻ›āĻŋ, āϏ⧇āχ āĻ—āĻ˛ā§āĻĒāϟāĻŋ āϚāĻžāϞāĻŋāϝāĻŧ⧇ āϝāĻžāĻŦāĨ¤ āĻāχ āĻĒā§āϰāϝ⧁āĻ•ā§āϤāĻŋāϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻ•āĻžāϰ⧀āϰāĻž āĻŽā§‡āĻļāĻŋāύ āĻ•ā§āĻ°ā§āϝāĻžāĻļ⧇āϰ āĻĒāϰ āϝāϤ āĻĻā§āϰ⧁āϤ āϏāĻŽā§āĻ­āĻŦ āϤāĻžāĻĻ⧇āϰ āĻ•āĻžāϜ āĻĒ⧁āύāϰāĻžāϝāĻŧ āĻļ⧁āϰ⧁ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŦ⧇āύāĨ¤ āφāĻŽāϰāĻž āύ⧇āϟāĻŋāĻ­ āĻ…ā§āϝāĻžāĻĒ āύāĻŋāϝāĻŧ⧇ āĻ•āĻĨāĻž āĻŦāϞāĻŦāĨ¤ WindowsāϤāĻžāĻĻ⧇āϰ āύāĻŋāĻ°ā§āĻŽāĻžāĻŖ āĻ“ āĻĒā§āϰāĻ•āĻžāĻļ⧇āϰ āϖ⧁āρāϟāĻŋāύāĻžāϟāĻŋ āϏāĻšāĨ¤ āύāĻŋāĻšā§‡ āφāĻŽāĻžāĻĻ⧇āϰ āĻĒā§āϰāĻ•āĻ˛ā§āĻĒ āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āĻāĻ•āϟāĻŋ āϏāĻ‚āĻ•ā§āώāĻŋāĻĒā§āϤ āĻĒāϟāĻ­ā§‚āĻŽāĻŋ āĻāĻŦāĻ‚ āύ⧇āϟāĻŋāĻ­ āĻ…ā§āϝāĻžāĻĒ āϞ⧇āĻ–āĻžāϰ āĻāĻ•āϟāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻŋāĻ• āύāĻŋāĻ°ā§āĻĻ⧇āĻļāĻŋāĻ•āĻž āĻĻ⧇āĻ“āϝāĻŧāĻž āĻšāϞ⧋āĨ¤

Windows āύ⧇āϟāĻŋāĻ­ āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύ āĻāĻŦāĻ‚ āĻ…ā§āϝāĻžāĻ•ā§āϰ⧋āύāĻŋāϏ āĻ…ā§āϝāĻžāĻ•ā§āϟāĻŋāĻ­ āϰāĻŋāĻ¸ā§āĻŸā§‹āϰ āĻĒāϰāĻŋāώ⧇āĻŦāĻž

āφāϗ⧇āϰ āĻĒā§‹āĻ¸ā§āϟāϗ⧁āϞ⧋āϤ⧇ āφāĻŽāϰāĻž āχāϤāĻŋāĻŽāĻ§ā§āϝ⧇āχ āφāϞ⧋āϚāύāĻž āĻ•āϰ⧇āĻ›āĻŋ āϝ⧇ āĻāϟāĻŋ āϕ⧀āĨ¤ āϏāĻ•ā§āϰāĻŋāϝāĻŧ āĻĒ⧁āύāϰ⧁āĻĻā§āϧāĻžāϰāĻāĻŦāĻ‚ āχāύ⧋āĻĒāϞāĻŋāϏ āĻĨ⧇āϕ⧇ āφāϏāĻž āĻļāĻŋāĻ•ā§āώāĻžāĻ°ā§āĻĨā§€āϰāĻž āϕ⧀āĻ­āĻžāĻŦ⧇ āĻŦāĻŋāĻ•āĻļāĻŋāϤ āĻšāĻšā§āϛ⧇ āϏ⧇āĻŦāĻžāφāϜ āφāĻŽāĻŋ āύ⧇āϟāĻŋāĻ­ āĻ…ā§āϝāĻžāĻĒāϗ⧁āϞ⧋āϰ āωāĻĒāϰ āφāϞ⧋āĻ•āĻĒāĻžāϤ āĻ•āϰāϤ⧇ āϚāĻžāχ, āϝ⧇āĻ–āĻžāύ⧇ āφāĻŽāϰāĻž āφāĻŽāĻžāĻĻ⧇āϰ āϏāĻ•ā§āϰāĻŋāϝāĻŧ āϰāĻŋāĻ•āĻ­āĻžāϰāĻŋ āϏāĻžāĻ°ā§āĻ­āĻŋāϏāϟāĻŋāϕ⧇ āφāĻĄāĻŧāĻžāϞ⧇ āϰāĻžāĻ–āϤ⧇ āϚāĻžāχāĨ¤ āϏāĻŦāĻ•āĻŋāϛ⧁ āĻ āĻŋāĻ•āĻ āĻžāĻ• āϚāϞāϞ⧇, āφāĻŽāϰāĻž āϝāĻž āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŦ āϤāĻž āĻšāϞ⧋:

  • āĻĒāϰāĻŋāώ⧇āĻŦāĻžāϟāĻŋ āφāϰāĻ“ āĻ…āύ⧇āĻ• āφāϗ⧇ āϚāĻžāϞ⧁ āĻ•āϰ⧁āύ
  • āĻŦā§āϝāĻžāĻ•āφāĻĒāϟāĻŋ āϝ⧇āĻ–āĻžāύ⧇ āĻ…āĻŦāĻ¸ā§āĻĨāĻŋāϤ āϏ⧇āχ āĻ•ā§āϞāĻžāωāĻĄā§‡āϰ āϏāĻžāĻĨ⧇ āĻ…āύ⧇āĻ• āφāϗ⧇āχ āϝ⧋āĻ—āĻžāϝ⧋āĻ— āĻ•āϰ⧁āύāĨ¤
  • āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽāϟāĻŋ āϕ⧋āύ āĻŽā§‹āĻĄā§‡ āφāĻ›ā§‡â€”āύāϰāĻŽāĻžāϞ āĻŦ⧁āϟ āύāĻžāĻ•āĻŋ āϰāĻŋāĻ•āĻ­āĻžāϰāĻŋ—āϤāĻž āĻ…āύ⧇āĻ• āφāϗ⧇āχ āĻŦā§‹āĻāĻž āϏāĻŽā§āĻ­āĻŦāĨ¤
  • āφāϗ⧇ āĻĨ⧇āϕ⧇ āĻĒ⧁āύāϰ⧁āĻĻā§āϧāĻžāϰ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻĢāĻžāχāϞ⧇āϰ āϏāĻ‚āĻ–ā§āϝāĻž āĻ…āύ⧇āĻ• āĻ•āĻŽāĨ¤
  • āĻŦā§āϝāĻŦāĻšāĻžāϰāĻ•āĻžāϰ⧀āϕ⧇ āφāϰāĻ“ āĻĻā§āϰ⧁āϤ āĻ•āĻžāϜ āĻļ⧁āϰ⧁ āĻ•āϰāĻžāϰ āϏ⧁āϝ⧋āĻ— āĻĻāĻŋāύāĨ¤

āύ⧇āϟāĻŋāĻ­ āĻ…ā§āϝāĻžāĻĒ āĻŦāϞāϤ⧇ āφāϏāϞ⧇ āϕ⧀ āĻŦā§‹āĻāĻžāϝāĻŧ?

āĻāχ āĻĒā§āϰāĻļā§āύ⧇āϰ āωāĻ¤ā§āϤāϰ āĻĻāĻŋāϤ⧇, āϚāϞ⧁āύ āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽāϟāĻŋ āϝ⧇ āĻ•āϞāϗ⧁āϞ⧋āϰ āĻ•ā§āϰāĻŽ āĻ…āύ⧁āϏāϰāĻŖ āĻ•āϰ⧇ āϤāĻž āĻĻ⧇āĻ–āĻŋ, āωāĻĻāĻžāĻšāϰāĻŖāĻ¸ā§āĻŦāϰ⧂āĻĒ, āϝāĻĻāĻŋ āϕ⧋āύ⧋ āĻĒā§āϰ⧋āĻ—ā§āϰāĻžāĻŽāĻžāϰ āϤāĻžāϰ āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύ⧇ āĻāĻ•āϟāĻŋ āĻĢāĻžāχāϞ āϤ⧈āϰāĻŋ āĻ•āϰāĻžāϰ āĻšā§‡āĻˇā§āϟāĻž āĻ•āϰ⧇āύāĨ¤

Windows āύ⧇āϟāĻŋāĻ­ āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύ āĻāĻŦāĻ‚ āĻ…ā§āϝāĻžāĻ•ā§āϰ⧋āύāĻŋāϏ āĻ…ā§āϝāĻžāĻ•ā§āϟāĻŋāĻ­ āϰāĻŋāĻ¸ā§āĻŸā§‹āϰ āĻĒāϰāĻŋāώ⧇āĻŦāĻž
āĻĒāĻžāϭ⧇āϞ āχāϝāĻŧā§‹āϏāĻŋāĻĢā§‹āĻ­āĻŋāϚ — Windows āĻ•āĻžāĻ°ā§āύ⧇āϞ āĻĒā§āϰ⧋āĻ—ā§āϰāĻžāĻŽāĻŋāĻ‚ (⧍ā§Ļ⧧⧝)

āĻĒā§āϰ⧋āĻ—ā§āϰāĻžāĻŽāĻžāϰ āĻĢāĻžāĻ‚āĻļāύāϟāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻĢāĻžāχāϞ āϤ⧈āϰāĻŋ āĻ•āϰ⧁āύāϝāĻž fileapi.h āĻšā§‡āĻĄāĻžāϰ āĻĢāĻžāχāϞ⧇ āĻ˜ā§‹āώāĻŋāϤ āĻāĻŦāĻ‚ Kernel32.dll-āĻ āĻŦāĻžāĻ¸ā§āϤāĻŦāĻžāϝāĻŧāĻŋāϤāĨ¤ āϤāĻŦ⧇, āĻāχ āĻĢāĻžāĻ‚āĻļāύāϟāĻŋ āύāĻŋāĻœā§‡ āĻĢāĻžāχāϞ āϤ⧈āϰāĻŋ āĻ•āϰ⧇ āύāĻž; āĻāϟāĻŋ āϕ⧇āĻŦāϞ āχāύāĻĒ⧁āϟ āφāĻ°ā§āϗ⧁āĻŽā§‡āĻ¨ā§āϟāϗ⧁āϞ⧋ āϝāĻžāϚāĻžāχ āĻ•āϰ⧇ āĻāĻŦāĻ‚ āĻĢāĻžāĻ‚āĻļāύāϟāĻŋāϕ⧇ āĻ•āϞ āĻ•āϰ⧇āĨ¤ NtCreateFile (Nt āĻĒā§āϰāĻŋāĻĢāĻŋāĻ•ā§āϏāϟāĻŋ āύāĻŋāĻ°ā§āĻĻ⧇āĻļ āĻ•āϰ⧇ āϝ⧇ āĻĢāĻžāĻ‚āĻļāύāϟāĻŋ āύ⧇āϟāĻŋāĻ­)āĨ¤ āĻāχ āĻĢāĻžāĻ‚āĻļāύāϟāĻŋ winternl.h āĻšā§‡āĻĄāĻžāϰ āĻĢāĻžāχāϞ⧇ āĻĄāĻŋāĻ•ā§āϞ⧇āϝāĻŧāĻžāϰ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇ āĻāĻŦāĻ‚ ntdll.dll-āĻ āχāĻŽāĻĒā§āϞāĻŋāĻŽā§‡āĻ¨ā§āϟ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇āĨ¤ āĻāϟāĻŋ āĻ•āĻžāĻ°ā§āύ⧇āϞ āĻ¸ā§āĻĒ⧇āϏ⧇ āϜāĻžāĻŽā§āĻĒ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻĒā§āϰāĻ¸ā§āϤ⧁āϤāĻŋ āύ⧇āϝāĻŧ, āϝāĻžāϰ āĻĒāϰ⧇ āĻāϟāĻŋ āĻĢāĻžāχāϞāϟāĻŋ āϤ⧈āϰāĻŋ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻāĻ•āϟāĻŋ āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻ•āϞ āĻ•āϰ⧇āĨ¤ āĻāĻ•ā§āώ⧇āĻ¤ā§āϰ⧇, Kernel32 āĻšāϞ⧋ Ntdll-āĻāϰ āϜāĻ¨ā§āϝ āϕ⧇āĻŦāϞ āĻāĻ•āϟāĻŋ āĻ°â€ā§āϝāĻžāĻĒāĻžāϰāĨ¤ āĻāϰ āĻāĻ•āϟāĻŋ āĻ•āĻžāϰāĻŖ āĻšāϞ⧋ āϝāĻžāϤ⧇ āĻŽāĻžāχāĻ•ā§āϰ⧋āϏāĻĢāϟ āĻ¸ā§āĻŸā§āϝāĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄ āχāĻ¨ā§āϟāĻžāϰāĻĢ⧇āϏāϗ⧁āϞ⧋āϕ⧇ āĻĒā§āϰāĻ­āĻžāĻŦāĻŋāϤ āύāĻž āĻ•āϰ⧇āχ āύ⧇āϟāĻŋāĻ­ āĻĢāĻžāĻ‚āĻļāύāϗ⧁āϞ⧋ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ āĻŽāĻžāχāĻ•ā§āϰ⧋āϏāĻĢāϟ āϏāϰāĻžāϏāϰāĻŋ āύ⧇āϟāĻŋāĻ­ āĻĢāĻžāĻ‚āĻļāύ āĻ•āϞ āĻ•āϰāĻžāϰ āĻĒāϰāĻžāĻŽāĻ°ā§āĻļ āĻĻ⧇āϝāĻŧ āύāĻž āĻāĻŦāĻ‚ āϏ⧇āϗ⧁āϞ⧋āϰ āĻŦ⧇āĻļāĻŋāϰāĻ­āĻžāϗ⧇āϰ āĻĄāϕ⧁āĻŽā§‡āĻ¨ā§āĻŸā§‡āĻļāύāĻ“ āĻ•āϰ⧇ āύāĻžāĨ¤ āĻĒā§āϰāϏāĻ™ā§āĻ—āϤ, āĻĄāϕ⧁āĻŽā§‡āĻ¨ā§āĻŸā§‡āĻļāύāĻŦāĻŋāĻšā§€āύ āĻĢāĻžāĻ‚āĻļāύ āϖ⧁āρāĻœā§‡ āĻĒāĻžāĻ“āϝāĻŧāĻž āϝ⧇āϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ āĻāĻ–āĻžāύ⧇.

āύ⧇āϟāĻŋāĻ­ āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύāϗ⧁āϞāĻŋāϰ āĻĒā§āϰāϧāĻžāύ āϏ⧁āĻŦāĻŋāϧāĻž āĻšāϞ⧋, kernel32-āĻāϰ āϤ⧁āϞāύāĻžāϝāĻŧ ntdll āĻ…āύ⧇āĻ• āφāϗ⧇āχ āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡ āϞ⧋āĻĄ āĻšāϝāĻŧāĨ¤ āĻāϟāĻŋ āϝ⧌āĻ•ā§āϤāĻŋāĻ•, āĻ•āĻžāϰāĻŖ kernel32-āĻāϰ āĻ•āĻžāϜ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ ntdll āĻĒā§āϰāϝāĻŧā§‹āϜāύāĨ¤ āĻĢāϞ⧇, āύ⧇āϟāĻŋāĻ­ āĻĢāĻžāĻ‚āĻļāύ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻ•āĻžāϰ⧀ āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύāϗ⧁āϞāĻŋ āĻ…āύ⧇āĻ• āφāϗ⧇ āĻ•āĻžāϜ āĻļ⧁āϰ⧁ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤

āϏ⧁āϤāϰāĻžāĻ‚, Windows āύ⧇āϟāĻŋāĻ­ āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύ āĻšāϞ⧋ āĻāĻŽāύ āĻĒā§āϰ⧋āĻ—ā§āϰāĻžāĻŽ āϝāĻž āĻŦ⧁āϟ āĻšāĻ“āϝāĻŧāĻžāϰ āϏāĻŽāϝāĻŧ āĻļ⧁āϰ⧁āϤ⧇āχ āϚāĻžāϞ⧁ āĻšāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ WindowsāϤāĻžāϰāĻž āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ ntdll-āĻāϰ āĻĢāĻžāĻ‚āĻļāύāϗ⧁āϞ⧋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇āĨ¤ āĻāχ āϧāϰāύ⧇āϰ āĻāĻ•āϟāĻŋ āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύ⧇āϰ āωāĻĻāĻžāĻšāϰāĻŖ āĻšāϞ⧋: autochk āϝ⧇āϟāĻŋ āϏāĻŽā§āĻĒāĻžāĻĻāύ āĻ•āϰ⧇ chkdisk āχāωāϟāĻŋāϞāĻŋāϟāĻŋ āĻŽā§‚āϞ āĻĒāϰāĻŋāώ⧇āĻŦāĻžāϗ⧁āϞāĻŋ āĻļ⧁āϰ⧁ āĻ•āϰāĻžāϰ āφāϗ⧇ āĻĄāĻŋāĻ¸ā§āϕ⧇ āϕ⧋āύ⧋ āĻ¤ā§āϰ⧁āϟāĻŋ āφāϛ⧇ āĻ•āĻŋāύāĻž āϤāĻž āĻĒāϰ⧀āĻ•ā§āώāĻž āĻ•āϰāĻž āĻšāϝāĻŧāĨ¤ āφāĻŽāϰāĻž āϚāĻžāχ āφāĻŽāĻžāĻĻ⧇āϰ āĻ…ā§āϝāĻžāĻ•ā§āϟāĻŋāĻ­ āϰāĻŋāĻ¸ā§āĻŸā§‹āϰ āĻ āĻŋāĻ• āĻāχ āĻ¸ā§āϤāϰ⧇āχ āĻ•āĻžāϜ āĻ•āϰ⧁āĻ•āĨ¤

āφāĻŽāĻžāĻĻ⧇āϰ āϕ⧀ āĻĒā§āϰāϝāĻŧā§‹āϜāύ?

  • āĻĄāĻŋāĻĄāĻŋāϕ⧇ (āĻĄā§āϰāĻžāχāĻ­āĻžāϰ āĻĄā§‡āϭ⧇āϞāĻĒāĻŽā§‡āĻ¨ā§āϟ āĻ•āĻŋāϟ), āϝāĻž āĻāĻ–āύ WDK 7 āύāĻžāĻŽā§‡āĻ“ āĻĒāϰāĻŋāϚāĻŋāϤ (Windows āĻĄā§āϰāĻžāχāĻ­āĻžāϰ āĻ•āĻŋāϟ)āĨ¤
  • āĻ­āĻžāĻ°ā§āϚ⧁āϝāĻŧāĻžāϞ āĻŽā§‡āĻļāĻŋāύ (āϝ⧇āĻŽāύ Windows ā§­ x ā§Ŧā§Ē)
  • āφāĻŦāĻļā§āϝāĻ• āύāϝāĻŧ, āϤāĻŦ⧇ āĻĄāĻžāωāύāϞ⧋āĻĄāϝ⧋āĻ—ā§āϝ āĻšā§‡āĻĄāĻžāϰ āĻĢāĻžāχāϞāϗ⧁āϞ⧋ āϏāĻšāĻžāϝāĻŧāĻ• āĻšāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ āĻāĻ–āĻžāύ⧇

āϕ⧋āĻĄāϟāĻŋāϤ⧇ āϕ⧀ āφāϛ⧇?

āϚāϞ⧁āύ āĻāĻ•āϟ⧁ āĻ…āύ⧁āĻļā§€āϞāύ āĻ•āϰāĻŋ āĻāĻŦāĻ‚ āωāĻĻāĻžāĻšāϰāĻŖ āĻšāĻŋāϏ⧇āĻŦ⧇ āĻāĻ•āϟāĻŋ āϛ⧋āϟ āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύ āϞāĻŋāĻ–āĻŋ āϝāĻž:

  1. āĻ¸ā§āĻ•ā§āϰāĻŋāύ⧇ āĻāĻ•āϟāĻŋ āĻŦāĻžāĻ°ā§āϤāĻž āĻĒā§āϰāĻĻāĻ°ā§āĻļāύ āĻ•āϰ⧇
  2. āĻ•āĻŋāϛ⧁ āĻŽā§‡āĻŽāϰāĻŋ āĻŦāϰāĻžāĻĻā§āĻĻ āĻ•āϰ⧇
  3. āĻ•āĻŋāĻŦā§‹āĻ°ā§āĻĄ āχāύāĻĒ⧁āĻŸā§‡āϰ āϜāĻ¨ā§āϝ āĻ…āĻĒ⧇āĻ•ā§āώāĻž āĻ•āϰāĻž āĻšāĻšā§āϛ⧇
  4. āĻĻāĻ–āϞāĻ•ā§ƒāϤ āĻ¸ā§āĻŽā§ƒāϤāĻŋāϕ⧇ āĻŽā§āĻ•ā§āϤ āĻ•āϰ⧇

āύ⧇āϟāĻŋāĻ­ āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύāϗ⧁āϞāĻŋāϤ⧇ āĻāĻ¨ā§āĻŸā§āϰāĻŋ āĻĒāϝāĻŧ⧇āĻ¨ā§āϟ main āĻŦāĻž winmain āύāϝāĻŧ, āĻŦāϰāĻ‚ NtProcessStartup āĻĢāĻžāĻ‚āĻļāύ, āĻ•āĻžāϰāĻŖ āĻāĻ•ā§āώ⧇āĻ¤ā§āϰ⧇ āφāĻŽāϰāĻž āϏāϰāĻžāϏāϰāĻŋ āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡ āĻāĻ•āϟāĻŋ āύāϤ⧁āύ āĻĒā§āϰāϏ⧇āϏ āϚāĻžāϞ⧁ āĻ•āϰāĻŋāĨ¤

āϚāϞ⧁āύ āĻ¸ā§āĻ•ā§āϰāĻŋāύ⧇ āĻāĻ•āϟāĻŋ āĻŦāĻžāĻ°ā§āϤāĻž āĻĒā§āϰāĻĻāĻ°ā§āĻļāύ āĻ•āϰ⧇ āĻļ⧁āϰ⧁ āĻ•āϰāĻž āϝāĻžāĻ•āĨ¤ āĻāϰ āϜāĻ¨ā§āϝ āφāĻŽāĻžāĻĻ⧇āϰ āĻāĻ•āϟāĻŋ āύ⧇āϟāĻŋāĻ­ āĻĢāĻžāĻ‚āĻļāύ āφāϛ⧇āĨ¤ NtDisplayStringāϝāĻž āφāĻ°ā§āϗ⧁āĻŽā§‡āĻ¨ā§āϟ āĻšāĻŋāϏ⧇āĻŦ⧇ āĻāĻ•āϟāĻŋ UNICODE_STRING āĻ¸ā§āĻŸā§āϰāĻžāĻ•āϚāĻžāϰ āĻ…āĻŦāĻœā§‡āĻ•ā§āĻŸā§‡āϰ āĻĒāϝāĻŧ⧇āĻ¨ā§āϟāĻžāϰ āĻ—ā§āϰāĻšāĻŖ āĻ•āϰ⧇āĨ¤ RtlInitUnicodeString āφāĻŽāĻžāĻĻ⧇āϰ āĻāϟāĻŋāϕ⧇ āχāύāĻŋāĻļāĻŋāϝāĻŧāĻžāϞāĻžāχāϜ āĻ•āϰāϤ⧇ āϏāĻžāĻšāĻžāĻ¯ā§āϝ āĻ•āϰāĻŦ⧇āĨ¤ āĻĢāϞ⧇, āĻ¸ā§āĻ•ā§āϰāĻŋāύ⧇ āĻŸā§‡āĻ•ā§āϏāϟ āĻĒā§āϰāĻĻāĻ°ā§āĻļāύ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āφāĻŽāϰāĻž āĻāχāϰāĻ•āĻŽ āĻāĻ•āϟāĻŋ āϛ⧋āϟ āĻĢāĻžāĻ‚āĻļāύ āϞāĻŋāĻ–āϤ⧇ āĻĒāĻžāϰāĻŋ:

//usage: WriteLn(L"Here is my textn");
void WriteLn(LPWSTR Message)
{
    UNICODE_STRING string;
    RtlInitUnicodeString(&string, Message);
    NtDisplayString(&string);
}

āϝ⧇āĻšā§‡āϤ⧁ āφāĻŽāϰāĻž āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ ntdll-āĻāϰ āĻĢāĻžāĻ‚āĻļāύāϗ⧁āϞ⧋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŋ āĻāĻŦāĻ‚ āĻŽā§‡āĻŽāϰāĻŋāϤ⧇ āĻāĻ–āύāĻ“ āĻ…āĻ¨ā§āϝ āϕ⧋āύ⧋ āϞāĻžāχāĻŦā§āϰ⧇āϰāĻŋ āύ⧇āχ, āϤāĻžāχ āĻŽā§‡āĻŽāϰāĻŋ āĻŦāϰāĻžāĻĻā§āĻĻ āĻ•āϰāϤ⧇ āφāĻŽāĻžāĻĻ⧇āϰ āϏāĻŽāĻ¸ā§āϝāĻž āĻšāĻŦ⧇āχāĨ¤ new āĻ…āĻĒāĻžāϰ⧇āϟāϰāϟāĻŋ āĻāĻ–āύāĻ“ āύ⧇āχ (āĻ•āĻžāϰāĻŖ āĻāϟāĻŋ C++-āĻāϰ āĻ…āϤāĻŋ-āωāĻšā§āϚ āĻ¸ā§āϤāϰ⧇āϰ āϜāĻ—ā§Ž āĻĨ⧇āϕ⧇ āĻāϏ⧇āϛ⧇), āĻāĻŦāĻ‚ malloc āĻĢāĻžāĻ‚āĻļāύāĻ“ āύ⧇āχ (āĻāϰ āϜāĻ¨ā§āϝ āϰāĻžāύāϟāĻžāχāĻŽ C āϞāĻžāχāĻŦā§āϰ⧇āϰāĻŋ āĻĒā§āϰāϝāĻŧā§‹āϜāύ)āĨ¤ āĻ…āĻŦāĻļā§āϝāχ, āφāĻŽāϰāĻž āĻ¸ā§āĻŸā§āϝāĻžāĻ• āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāϤāĻžāĻŽāĨ¤ āĻ•āĻŋāĻ¨ā§āϤ⧁ āϝāĻĻāĻŋ āφāĻŽāĻžāĻĻ⧇āϰ āĻĄāĻžāχāύāĻžāĻŽāĻŋāĻ•āĻ­āĻžāĻŦ⧇ āĻŽā§‡āĻŽāϰāĻŋ āĻŦāϰāĻžāĻĻā§āĻĻ āĻ•āϰāĻžāϰ āĻĒā§āϰāϝāĻŧā§‹āϜāύ āĻšāϝāĻŧ, āϤāĻŦ⧇ āϤāĻž āĻšāĻŋāĻĒ-āĻ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇āĨ¤ āϤāĻžāχ āϚāϞ⧁āύ, āφāĻŽāϰāĻž āύāĻŋāĻœā§‡āĻĻ⧇āϰ āϜāĻ¨ā§āϝ āĻāĻ•āϟāĻŋ āĻšāĻŋāĻĒ āϤ⧈āϰāĻŋ āĻ•āϰāĻŋ āĻāĻŦāĻ‚ āĻĒā§āϰāϝāĻŧā§‹āϜāύ⧇āϰ āϏāĻŽāϝāĻŧ āϏ⧇āĻ–āĻžāύ āĻĨ⧇āϕ⧇ āĻŽā§‡āĻŽāϰāĻŋ āύāĻŋāχāĨ¤

āĻāχ āĻ•āĻžāĻœā§‡āϰ āϜāĻ¨ā§āϝ āωāĻĒāϝ⧁āĻ•ā§āϤ āĻĢāĻžāĻ‚āĻļāύāϟāĻŋ āĻšāϞ⧋ RtlCreateHeapāĻāϰāĻĒāϰ⧇, RtlAllocateHeap āĻāĻŦāĻ‚ RtlFreeHeap āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āφāĻŽāϰāĻž āĻĒā§āϰāϝāĻŧā§‹āϜāύāĻŽāϤ⧋ āĻŽā§‡āĻŽāϰāĻŋ āĻŦāϰāĻžāĻĻā§āĻĻ āĻ“ āĻŽā§āĻ•ā§āϤ āĻ•āϰāĻŦāĨ¤

PVOID memory = NULL;
PVOID buffer = NULL;
ULONG bufferSize = 42;

// create heap in order to allocate memory later
memory = RtlCreateHeap(
  HEAP_GROWABLE, 
  NULL, 
  1000, 
  0, NULL, NULL
);

// allocate buffer of size bufferSize
buffer = RtlAllocateHeap(
  memory, 
  HEAP_ZERO_MEMORY, 
  bufferSize
);

// free buffer (actually not needed because we destroy heap in next step)
RtlFreeHeap(memory, 0, buffer);

RtlDestroyHeap(memory);

āĻāĻŦāĻžāϰ āĻ•āĻŋāĻŦā§‹āĻ°ā§āĻĄ āχāύāĻĒ⧁āĻŸā§‡āϰ āϜāĻ¨ā§āϝ āĻ…āĻĒ⧇āĻ•ā§āώāĻž āĻ•āϰāĻžāϰ āĻŦāĻŋāώāϝāĻŧ⧇ āφāϏāĻž āϝāĻžāĻ•āĨ¤

// https://docs.microsoft.com/en-us/windows/win32/api/ntddkbd/ns-ntddkbd-keyboard_input_data
typedef struct _KEYBOARD_INPUT_DATA {
  USHORT UnitId;
  USHORT MakeCode;
  USHORT Flags;
  USHORT Reserved;
  ULONG  ExtraInformation;
} KEYBOARD_INPUT_DATA, *PKEYBOARD_INPUT_DATA;

//...

HANDLE hKeyBoard, hEvent;
UNICODE_STRING skull, keyboard;
OBJECT_ATTRIBUTES ObjectAttributes;
IO_STATUS_BLOCK Iosb;
LARGE_INTEGER ByteOffset;
KEYBOARD_INPUT_DATA kbData;

// inialize variables
RtlInitUnicodeString(&keyboard, L"DeviceKeyboardClass0");
InitializeObjectAttributes(&ObjectAttributes, &keyboard, OBJ_CASE_INSENSITIVE, NULL, NULL);

// open keyboard device
NtCreateFile(&hKeyBoard,
			SYNCHRONIZE | GENERIC_READ | FILE_READ_ATTRIBUTES,
			&ObjectAttributes,
			&Iosb,
			NULL,
			FILE_ATTRIBUTE_NORMAL,
			0,
			FILE_OPEN,FILE_DIRECTORY_FILE,
			NULL, 0);

// create event to wait on
InitializeObjectAttributes(&ObjectAttributes, NULL, 0, NULL, NULL);
NtCreateEvent(&hEvent, EVENT_ALL_ACCESS, &ObjectAttributes, 1, 0);

while (TRUE)
{
	NtReadFile(hKeyBoard, hEvent, NULL, NULL, &Iosb, &kbData, sizeof(KEYBOARD_INPUT_DATA), &ByteOffset, NULL);
	NtWaitForSingleObject(hEvent, TRUE, NULL);

	if (kbData.MakeCode == 0x01)    // if ESC pressed
	{
			break;
	}
}

āφāĻŽāĻžāĻĻ⧇āϰ āĻļ⧁āϧ⧁ āĻāϟāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇āĨ¤ NtReadFile āĻ–ā§‹āϞāĻž āĻĄāĻŋāĻ­āĻžāχāϏāϟāĻŋāϤ⧇ āĻāĻŦāĻ‚ āϕ⧀āĻŦā§‹āĻ°ā§āĻĄ āĻĨ⧇āϕ⧇ āϕ⧋āύ⧋ āϕ⧀āĻ¸ā§āĻŸā§āϰ⧋āĻ• āφāϏāĻž āĻĒāĻ°ā§āϝāĻ¨ā§āϤ āĻ…āĻĒ⧇āĻ•ā§āώāĻž āĻ•āϰ⧁āύāĨ¤ āϝāĻĻāĻŋ ESC āϕ⧀ āϚāĻžāĻĒāĻž āĻšāϝāĻŧ, āφāĻŽāϰāĻž āĻ•āĻžāϜ āϚāĻžāϞāĻŋāϝāĻŧ⧇ āϝāĻžāĻŦāĨ¤ āĻĄāĻŋāĻ­āĻžāχāϏāϟāĻŋ āĻ–ā§‹āϞāĻžāϰ āϜāĻ¨ā§āϝ, āφāĻŽāĻžāĻĻ⧇āϰ NtCreateFile āĻĢāĻžāĻ‚āĻļāύāϟāĻŋ āĻ•āϞ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇ (DeviceKeyboardClass0 āĻ–ā§‹āϞāĻž āĻĨāĻžāĻ•āϤ⧇ āĻšāĻŦ⧇)āĨ¤ āφāĻŽāϰāĻž āφāϰāĻ“ āĻ•āϞ āĻ•āϰāĻŦ NtCreateEventāĻ…āĻĒ⧇āĻ•ā§āώāĻž āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻ…āĻŦāĻœā§‡āĻ•ā§āϟāϟāĻŋ āχāύāĻŋāĻļāĻŋāϝāĻŧāĻžāϞāĻžāχāϜ āĻ•āϰāϤ⧇, āφāĻŽāϰāĻž āĻŽā§āϝāĻžāύ⧁āϝāĻŧāĻžāϞāĻŋ KEYBOARD_INPUT_DATA āĻ¸ā§āĻŸā§āϰāĻžāĻ•āϚāĻžāϰāϟāĻŋ āĻĄāĻŋāĻ•ā§āϞ⧇āϝāĻŧāĻžāϰ āĻ•āϰāĻŦ, āϝāĻž āĻ•āĻŋāĻŦā§‹āĻ°ā§āĻĄā§‡āϰ āĻĄā§‡āϟāĻž āωāĻĒāĻ¸ā§āĻĨāĻžāĻĒāύ āĻ•āϰ⧇āĨ¤ āĻāϤ⧇ āφāĻŽāĻžāĻĻ⧇āϰ āĻ•āĻžāϜ āϏāĻšāϜ āĻšāĻŦ⧇āĨ¤

āĻāĻ•āϟāĻŋ āĻĢāĻžāĻ‚āĻļāύ āĻ•āϞ⧇āϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āύ⧇āϟāĻŋāĻ­ āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύāϟāĻŋ āĻŦāĻ¨ā§āϧ āĻšāϝāĻŧ⧇ āϝāĻžāϝāĻŧāĨ¤ NtTerminateProcessāĻ•āĻžāϰāĻŖ āφāĻŽāϰāĻž āύāĻŋāĻœā§‡āĻĻ⧇āϰ āĻĒā§āϰāĻ•ā§āϰāĻŋāϝāĻŧāĻžāϕ⧇āχ āĻšāĻ¤ā§āϝāĻž āĻ•āϰāĻ›āĻŋāĨ¤

āφāĻŽāĻžāĻĻ⧇āϰ āϛ⧋āϟ āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύāϟāĻŋāϰ āϏāĻŽā§āĻĒā§‚āĻ°ā§āĻŖ āϕ⧋āĻĄ:

#include "ntifs.h" // WinDDK7600.16385.1incddk
#include "ntdef.h"

//------------------------------------
// Following function definitions can be found in native development kit
// but I am too lazy to include `em so I declare it here
//------------------------------------

NTSYSAPI
NTSTATUS
NTAPI
NtTerminateProcess(
  IN HANDLE               ProcessHandle OPTIONAL,
  IN NTSTATUS             ExitStatus
);

NTSYSAPI 
NTSTATUS
NTAPI
NtDisplayString(
	IN PUNICODE_STRING String
);

NTSTATUS 
NtWaitForSingleObject(
  IN HANDLE         Handle,
  IN BOOLEAN        Alertable,
  IN PLARGE_INTEGER Timeout
);

NTSYSAPI 
NTSTATUS
NTAPI
NtCreateEvent(
    OUT PHANDLE             EventHandle,
    IN ACCESS_MASK          DesiredAccess,
    IN POBJECT_ATTRIBUTES   ObjectAttributes OPTIONAL,
    IN EVENT_TYPE           EventType,
    IN BOOLEAN              InitialState
);



// https://docs.microsoft.com/en-us/windows/win32/api/ntddkbd/ns-ntddkbd-keyboard_input_data
typedef struct _KEYBOARD_INPUT_DATA {
  USHORT UnitId;
  USHORT MakeCode;
  USHORT Flags;
  USHORT Reserved;
  ULONG  ExtraInformation;
} KEYBOARD_INPUT_DATA, *PKEYBOARD_INPUT_DATA;

//----------------------------------------------------------
// Our code goes here
//----------------------------------------------------------

// usage: WriteLn(L"Hello Native World!n");
void WriteLn(LPWSTR Message)
{
    UNICODE_STRING string;
    RtlInitUnicodeString(&string, Message);
    NtDisplayString(&string);
}

void NtProcessStartup(void* StartupArgument)
{
	// it is important to declare all variables at the beginning
	HANDLE hKeyBoard, hEvent;
	UNICODE_STRING skull, keyboard;
	OBJECT_ATTRIBUTES ObjectAttributes;
	IO_STATUS_BLOCK Iosb;
	LARGE_INTEGER ByteOffset;
	KEYBOARD_INPUT_DATA kbData;
	
	PVOID memory = NULL;
	PVOID buffer = NULL;
	ULONG bufferSize = 42;

	//use it if debugger connected to break
	//DbgBreakPoint();

	WriteLn(L"Hello Native World!n");

	// inialize variables
	RtlInitUnicodeString(&keyboard, L"DeviceKeyboardClass0");
	InitializeObjectAttributes(&ObjectAttributes, &keyboard, OBJ_CASE_INSENSITIVE, NULL, NULL);

	// open keyboard device
	NtCreateFile(&hKeyBoard,
				SYNCHRONIZE | GENERIC_READ | FILE_READ_ATTRIBUTES,
				&ObjectAttributes,
				&Iosb,
				NULL,
				FILE_ATTRIBUTE_NORMAL,
				0,
				FILE_OPEN,FILE_DIRECTORY_FILE,
				NULL, 0);

	// create event to wait on
	InitializeObjectAttributes(&ObjectAttributes, NULL, 0, NULL, NULL);
	NtCreateEvent(&hEvent, EVENT_ALL_ACCESS, &ObjectAttributes, 1, 0);
	
	WriteLn(L"Keyboard readyn");
	
	// create heap in order to allocate memory later
	memory = RtlCreateHeap(
	  HEAP_GROWABLE, 
	  NULL, 
	  1000, 
	  0, NULL, NULL
	);
	
	WriteLn(L"Heap readyn");

	// allocate buffer of size bufferSize
	buffer = RtlAllocateHeap(
	  memory, 
	  HEAP_ZERO_MEMORY, 
	  bufferSize
	);
	
	WriteLn(L"Buffer allocatedn");

	// free buffer (actually not needed because we destroy heap in next step)
	RtlFreeHeap(memory, 0, buffer);

	RtlDestroyHeap(memory);
	
	WriteLn(L"Heap destroyedn");
	
	WriteLn(L"Press ESC to continue...n");

	while (TRUE)
	{
		NtReadFile(hKeyBoard, hEvent, NULL, NULL, &Iosb, &kbData, sizeof(KEYBOARD_INPUT_DATA), &ByteOffset, NULL);
		NtWaitForSingleObject(hEvent, TRUE, NULL);

		if (kbData.MakeCode == 0x01)    // if ESC pressed
		{
				break;
		}
	}

	NtTerminateProcess(NtCurrentProcess(), 0);
}

āĻĻā§āϰāĻˇā§āϟāĻŦā§āϝ: āφāĻŽāϰāĻž āφāĻŽāĻžāĻĻ⧇āϰ āϕ⧋āĻĄā§‡ āĻĄāĻŋāĻŦāĻžāĻ—āĻžāϰ āĻŦāĻ¨ā§āϧ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āϏāĻšāĻœā§‡āχ DbgBreakPoint() āĻĢāĻžāĻ‚āĻļāύāϟāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŋāĨ¤ āϤāĻŦ⧇, āĻ•āĻžāĻ°ā§āύ⧇āϞ āĻĄāĻŋāĻŦāĻžāĻ—āĻŋāĻ‚āϝāĻŧ⧇āϰ āϜāĻ¨ā§āϝ āφāĻŽāĻžāĻĻ⧇āϰ āĻ­āĻžāĻ°ā§āϚ⧁āϝāĻŧāĻžāϞ āĻŽā§‡āĻļāĻŋāύ⧇āϰ āϏāĻžāĻĨ⧇ WinDbg āϏāĻ‚āϝ⧋āĻ— āĻ•āϰāϤ⧇ āĻšāĻŦ⧇āĨ¤ āĻāϟāĻŋ āϕ⧀āĻ­āĻžāĻŦ⧇ āĻ•āϰāϤ⧇ āĻšāϝāĻŧ āϤāĻžāϰ āύāĻŋāĻ°ā§āĻĻ⧇āĻļāĻžāĻŦāϞ⧀ āĻāĻ–āĻžāύ⧇ āĻĒāĻžāĻ“āϝāĻŧāĻž āϝāĻžāĻŦ⧇āĨ¤ āĻāĻ–āĻžāύ⧇ āĻ…āĻĨāĻŦāĻž āĻļ⧁āϧ⧁ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧁āύ āĻ­āĻžāĻ°ā§āϚ⧁āϝāĻŧāĻžāϞ āϕ⧇āĻĄāĻŋ.

āϏāĻ‚āĻ•āϞāύ āĻāĻŦāĻ‚ āϏāĻŽāĻžāĻŦ⧇āĻļ

āύ⧇āϟāĻŋāĻ­ āĻ…ā§āϝāĻžāĻĒ āϤ⧈āϰāĻŋ āĻ•āϰāĻžāϰ āϏāĻŦāĻšā§‡āϝāĻŧ⧇ āϏāĻšāϜ āωāĻĒāĻžāϝāĻŧ āĻšāϞ⧋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āĻĄāĻŋāĻĄāĻŋāϕ⧇ (āĻĄā§āϰāĻžāχāĻ­āĻžāϰ āĻĄā§‡āϭ⧇āϞāĻĒāĻŽā§‡āĻ¨ā§āϟ āĻ•āĻŋāϟ)āĨ¤ āφāĻŽāĻžāĻĻ⧇āϰ āĻŦāĻŋāĻļ⧇āώāĻ­āĻžāĻŦ⧇ āĻāϰ āĻĒā§āϰāĻžāĻšā§€āύ āϏāĻĒā§āϤāĻŽ āϏāĻ‚āĻ¸ā§āĻ•āϰāĻŖāϟāĻŋ āĻĒā§āϰāϝāĻŧā§‹āϜāύ, āĻ•āĻžāϰāĻŖ āĻĒāϰāĻŦāĻ°ā§āϤ⧀ āϏāĻ‚āĻ¸ā§āĻ•āϰāĻŖāϗ⧁āϞ⧋āϰ āĻĒāĻĻā§āϧāϤāĻŋ āĻ•āĻŋāϛ⧁āϟāĻž āĻ­āĻŋāĻ¨ā§āύ āĻāĻŦāĻ‚ āϏ⧇āϗ⧁āϞ⧋ āĻ­āĻŋāĻœā§āϝ⧁āϝāĻŧāĻžāϞ āĻ¸ā§āϟ⧁āĻĄāĻŋāĻ“āϰ āϏāĻžāĻĨ⧇ āϘāύāĻŋāĻˇā§āĻ āĻ­āĻžāĻŦ⧇ āĻ•āĻžāϜ āĻ•āϰ⧇āĨ¤ āϝāĻĻāĻŋ āφāĻŽāϰāĻž āĻĄāĻŋāĻĄāĻŋāϕ⧇ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻŋ, āϤāĻžāĻšāϞ⧇ āφāĻŽāĻžāĻĻ⧇āϰ āĻĒā§āϰ⧋āĻœā§‡āĻ•ā§āĻŸā§‡ āĻļ⧁āϧ⧁ āĻāĻ•āϟāĻŋ āĻŽā§‡āĻ•āĻĢāĻžāχāϞ āĻāĻŦāĻ‚ āϏ⧋āĻ°ā§āϏ āϕ⧋āĻĄ āĻĒā§āϰāϝāĻŧā§‹āϜāύ āĻšāĻŦ⧇āĨ¤

Makefile āύāĻžāĻŽāĻ•

!INCLUDE $(NTMAKEENV)makefile.def

āωāĻ¤ā§āϏ:

TARGETNAME			= MyNative
TARGETTYPE			= PROGRAM
UMTYPE				= nt
BUFFER_OVERFLOW_CHECKS 		= 0
MINWIN_SDK_LIB_PATH		= $(SDK_LIB_PATH)
SOURCES 			= source.c

INCLUDES 			= $(DDK_INC_PATH); 
				  C:WinDDK7600.16385.1ndk;

TARGETLIBS 			= $(DDK_LIB_PATH)ntdll.lib	
				  $(DDK_LIB_PATH)nt.lib

USE_NTDLL			= 1

āφāĻĒāύāĻžāϰ Makefile āĻšā§āĻŦāĻšā§ āĻāĻ•āχ āĻĨāĻžāĻ•āĻŦ⧇, āĻ•āĻŋāĻ¨ā§āϤ⧁ āϚāϞ⧁āύ āϏ⧋āĻ°ā§āϏāϗ⧁āϞ⧋ āφāϰ⧇āĻ•āϟ⧁ āĻŦāĻŋāĻ¸ā§āϤāĻžāϰāĻŋāϤāĻ­āĻžāĻŦ⧇ āĻĻ⧇āĻ–āĻŋāĨ¤ āĻāχ āĻĢāĻžāχāϞāϟāĻŋ āφāĻĒāύāĻžāϰ āĻĒā§āϰ⧋āĻ—ā§āϰāĻžāĻŽā§‡āϰ āϏ⧋āĻ°ā§āϏ āϕ⧋āĻĄ (.c āĻĢāĻžāχāϞ), āĻŦāĻŋāĻ˛ā§āĻĄ āĻ…āĻĒāĻļāύ āĻāĻŦāĻ‚ āĻ…āĻ¨ā§āϝāĻžāĻ¨ā§āϝ āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāϟāĻžāϰ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻ•āϰ⧇āĨ¤

  • āϟāĻžāĻ°ā§āϗ⧇āϟāύ⧇āĻŽ – āĻĢāϞāĻžāĻĢāϞāĻ¸ā§āĻŦāϰ⧂āĻĒ āϝ⧇ āĻāĻ•ā§āϏāĻŋāĻ•āĻŋāωāĻŸā§‡āĻŦāϞ āĻĢāĻžāχāϞāϟāĻŋ āϤ⧈āϰāĻŋ āĻšāĻŦ⧇ āϤāĻžāϰ āύāĻžāĻŽāĨ¤
  • āϟāĻžāĻ°ā§āϗ⧇āϟāϟāĻžāχāĻĒ (TARGETTYPE) – āĻāĻ•ā§āϏāĻŋāĻ•āĻŋāωāĻŸā§‡āĻŦāϞ āĻĢāĻžāχāϞ⧇āϰ āϧāϰāύāĨ¤ āĻāϟāĻŋ āĻāĻ•āϟāĻŋ āĻĄā§āϰāĻžāχāĻ­āĻžāϰ (.sys) āĻšāϤ⧇ āĻĒāĻžāϰ⧇, āϏ⧇āĻ•ā§āώ⧇āĻ¤ā§āϰ⧇ āĻĢāĻŋāĻ˛ā§āĻĄā§‡āϰ āĻŽāĻžāύ DRIVER āĻšāĻ“āϝāĻŧāĻž āωāϚāĻŋāϤ; āϝāĻĻāĻŋ āĻāϟāĻŋ āĻāĻ•āϟāĻŋ āϞāĻžāχāĻŦā§āϰ⧇āϰāĻŋ (.lib) āĻšāϝāĻŧ, āϤāĻžāĻšāϞ⧇ āĻŽāĻžāύāϟāĻŋ LIBRARY āĻšāĻ“āϝāĻŧāĻž āωāϚāĻŋāϤāĨ¤ āφāĻŽāĻžāĻĻ⧇āϰ āĻ•ā§āώ⧇āĻ¤ā§āϰ⧇, āĻāĻ•āϟāĻŋ āĻāĻ•ā§āϏāĻŋāĻ•āĻŋāωāĻŸā§‡āĻŦāϞ āĻĢāĻžāχāϞ (.exe) āĻĒā§āϰāϝāĻŧā§‹āϜāύ, āϤāĻžāχ āφāĻŽāϰāĻž āĻŽāĻžāύāϟāĻŋ PROGRAM āϏ⧇āϟ āĻ•āϰāĻŋāĨ¤
  • UMTYPE – āĻāχ āĻĢāĻŋāĻ˛ā§āĻĄā§‡āϰ āϏāĻŽā§āĻ­āĻžāĻŦā§āϝ āĻŽāĻžāύāϗ⧁āϞ⧋ āĻšāϞ⧋: āĻ•āύāϏ⧋āϞ āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύ⧇āϰ āϜāĻ¨ā§āϝ console, āĻāĻŦāĻ‚ āωāχāĻ¨ā§āĻĄā§‹āĻĄ āĻŽā§‹āĻĄā§‡ āϚāĻžāϞāĻžāύ⧋āϰ āϜāĻ¨ā§āϝ windowsāĨ¤ āϤāĻŦ⧇, āύ⧇āϟāĻŋāĻ­ āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύ āĻĒ⧇āϤ⧇ āĻšāϞ⧇ āφāĻŽāĻžāĻĻ⧇āϰ nt āωāĻ˛ā§āϞ⧇āĻ– āĻ•āϰāϤ⧇ āĻšāĻŦ⧇āĨ¤
  • BUFFER_OVERFLOW_CHECKS – āĻŦāĻžāĻĢāĻžāϰ āĻ“āĻ­āĻžāϰāĻĢā§āϞ⧋āϰ āϜāĻ¨ā§āϝ āĻ¸ā§āĻŸā§āϝāĻžāĻ• āĻĒāϰ⧀āĻ•ā§āώāĻž āĻ•āϰāĻž, āĻĻ⧁āĻ°ā§āĻ­āĻžāĻ—ā§āϝāĻŦāĻļāϤ āφāĻŽāĻžāĻĻ⧇āϰ āĻ•ā§āώ⧇āĻ¤ā§āϰ⧇ āĻāϟāĻŋ āĻĒā§āϰāϝ⧋āĻœā§āϝ āύāϝāĻŧ, āϤāĻžāχ āφāĻŽāϰāĻž āĻāϟāĻŋ āύāĻŋāĻˇā§āĻ•ā§āϰāĻŋāϝāĻŧ āĻ•āϰ⧇ āϰ⧇āϖ⧇āĻ›āĻŋāĨ¤
  • MINWIN_SDK_LIB_PATH – āĻāχ āĻŽāĻžāύāϟāĻŋ SDK_LIB_PATH āϭ⧇āϰāĻŋāϝāĻŧ⧇āĻŦāϞāϕ⧇ āύāĻŋāĻ°ā§āĻĻ⧇āĻļ āĻ•āϰ⧇āĨ¤ āφāĻĒāύāĻžāϰ āϝāĻĻāĻŋ āĻ…āύ⧁āϰ⧂āĻĒ āϕ⧋āύ⧋ āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽ āϭ⧇āϰāĻŋāϝāĻŧ⧇āĻŦāϞ āĻĄāĻŋāĻ•ā§āϞ⧇āϝāĻŧāĻžāϰ āĻ•āϰāĻž āύāĻž āĻĨāĻžāϕ⧇, āϤāĻŦ⧇ āϚāĻŋāĻ¨ā§āϤāĻžāϰ āϕ⧋āύ⧋ āĻ•āĻžāϰāĻŖ āύ⧇āχāĨ¤ āϝāĻ–āύ āφāĻŽāϰāĻž DDK āĻĨ⧇āϕ⧇ āĻāĻ•āϟāĻŋ āĻšā§‡āĻ•ā§āϟ āĻŦāĻŋāĻ˛ā§āĻĄ āϰāĻžāύ āĻ•āϰāĻŦ, āϤāĻ–āύ āĻāχ āϭ⧇āϰāĻŋāϝāĻŧ⧇āĻŦāϞāϟāĻŋ āĻĄāĻŋāĻ•ā§āϞ⧇āϝāĻŧāĻžāϰ āĻ•āϰāĻž āĻšāĻŦ⧇ āĻāĻŦāĻ‚ āĻāϟāĻŋ āĻĒā§āϰāϝāĻŧā§‹āϜāύ⧀āϝāĻŧ āϞāĻžāχāĻŦā§āϰ⧇āϰāĻŋāϗ⧁āϞ⧋āϕ⧇ āύāĻŋāĻ°ā§āĻĻ⧇āĻļ āĻ•āϰāĻŦ⧇āĨ¤
  • āĻ‰ā§ŽāϏāϏāĻŽā§‚āĻš – āφāĻĒāύāĻžāϰ āĻĒā§āϰ⧋āĻ—ā§āϰāĻžāĻŽā§‡āϰ āĻ‰ā§ŽāϏāϗ⧁āϞ⧋āϰ āĻāĻ•āϟāĻŋ āϤāĻžāϞāĻŋāĻ•āĻžāĨ¤
  • āĻ…āĻ¨ā§āϤāĻ°ā§āϭ⧁āĻ•ā§āϤāĻŋāϏāĻŽā§‚āĻš – āĻŦāĻŋāĻ˛ā§āĻĄ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻĒā§āϰāϝāĻŧā§‹āϜāύ⧀āϝāĻŧ āĻšā§‡āĻĄāĻžāϰ āĻĢāĻžāχāϞāĨ¤ āĻāϟāĻŋ āϏāĻžāϧāĻžāϰāĻŖāϤ āĻĄāĻŋāĻĄāĻŋāϕ⧇-āĻāϰ āϏāĻžāĻĨ⧇ āĻ…āĻ¨ā§āϤāĻ°ā§āϭ⧁āĻ•ā§āϤ āĻĢāĻžāχāϞāϗ⧁āϞ⧋āϰ āĻĒāĻžāĻĨ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻ•āϰ⧇, āĻ•āĻŋāĻ¨ā§āϤ⧁ āφāĻĒāύāĻŋ āϚāĻžāχāϞ⧇ āĻ…āϤāĻŋāϰāĻŋāĻ•ā§āϤ āϝ⧇āϕ⧋āύ⧋ āĻĢāĻžāχāϞāĻ“ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύāĨ¤
  • TARGETLIBS – āϞāĻŋāĻ™ā§āĻ• āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āϞāĻžāχāĻŦā§āϰ⧇āϰāĻŋāϰ āϤāĻžāϞāĻŋāĻ•āĻžāĨ¤
  • USE_NTDLL āĻāĻ•āϟāĻŋ āφāĻŦāĻļā§āϝāĻ• āĻ•ā§āώ⧇āĻ¤ā§āϰ āϝāĻž āĻ…āĻŦāĻļā§āϝāχ 1-āĻ āϏ⧇āϟ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇āĨ¤ āϏ⧁āĻ¸ā§āĻĒāĻˇā§āϟ āĻ•āĻžāϰāϪ⧇āχāĨ¤
  • USER_C_FLAGS – āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύ āϕ⧋āĻĄ āĻĒā§āϰāĻ¸ā§āϤ⧁āϤ āĻ•āϰāĻžāϰ āϏāĻŽāϝāĻŧ āĻĒā§āϰāĻŋāĻĒā§āϰāϏ⧇āϏāϰ āĻĄāĻŋāϰ⧇āĻ•ā§āϟāĻŋāϭ⧇ āĻŦā§āϝāĻŦāĻšāĻžāϰāϝ⧋āĻ—ā§āϝ āϝ⧇āϕ⧋āύ⧋ āĻĢā§āĻ˛ā§āϝāĻžāĻ—āĨ¤

āϏ⧁āϤāϰāĻžāĻ‚, āĻŦāĻŋāĻ˛ā§āĻĄ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ, āφāĻŽāĻžāĻĻ⧇āϰ x86 (āĻŦāĻž x64) āĻšā§‡āĻ•ā§āϟ āĻŦāĻŋāĻ˛ā§āĻĄ āϚāĻžāϞāĻžāϤ⧇ āĻšāĻŦ⧇, āĻ“āϝāĻŧāĻžāĻ°ā§āĻ•āĻŋāĻ‚ āĻĄāĻŋāϰ⧇āĻ•ā§āϟāϰāĻŋ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻ•āϰ⧇ āĻĒā§āϰāĻœā§‡āĻ•ā§āϟ āĻĢā§‹āĻ˛ā§āĻĄāĻžāϰ⧇ āϝ⧇āϤ⧇ āĻšāĻŦ⧇ āĻāĻŦāĻ‚ āĻŦāĻŋāĻ˛ā§āĻĄ āĻ•āĻŽāĻžāĻ¨ā§āĻĄāϟāĻŋ āϚāĻžāϞāĻžāϤ⧇ āĻšāĻŦ⧇āĨ¤ āĻ¸ā§āĻ•ā§āϰāĻŋāύāĻļāϟāϟāĻŋāϤ⧇ āĻĻ⧇āĻ–āĻž āϝāĻžāĻšā§āϛ⧇ āϝ⧇ āφāĻŽāϰāĻž āĻāĻ•āϟāĻŋāĻŽāĻžāĻ¤ā§āϰ āĻāĻ•ā§āϏāĻŋāĻ•āĻŋāωāĻŸā§‡āĻŦāϞ āĻĢāĻžāχāϞ āĻŦāĻŋāĻ˛ā§āĻĄ āĻ•āϰ⧇āĻ›āĻŋāĨ¤

Windows āύ⧇āϟāĻŋāĻ­ āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύ āĻāĻŦāĻ‚ āĻ…ā§āϝāĻžāĻ•ā§āϰ⧋āύāĻŋāϏ āĻ…ā§āϝāĻžāĻ•ā§āϟāĻŋāĻ­ āϰāĻŋāĻ¸ā§āĻŸā§‹āϰ āĻĒāϰāĻŋāώ⧇āĻŦāĻž

āĻāχ āĻĢāĻžāχāϞāϟāĻŋ āĻāϤ āϏāĻšāĻœā§‡ āϚāϞāĻŦ⧇ āύāĻž; āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽāϟāĻŋ āφāĻĒāĻ¤ā§āϤāĻŋ āϜāĻžāύāĻžāϝāĻŧ āĻāĻŦāĻ‚ āύāĻŋāĻŽā§āύāϞāĻŋāĻ–āĻŋāϤ āĻ¤ā§āϰ⧁āϟāĻŋ āĻĻ⧇āĻ–āĻŋāϝāĻŧ⧇ āĻāϰ āφāϚāϰāĻŖ āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āφāĻŽāĻžāĻĻ⧇āϰ āĻ­āĻžāĻŦāϤ⧇ āĻŦāϞ⧇:

Windows āύ⧇āϟāĻŋāĻ­ āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύ āĻāĻŦāĻ‚ āĻ…ā§āϝāĻžāĻ•ā§āϰ⧋āύāĻŋāϏ āĻ…ā§āϝāĻžāĻ•ā§āϟāĻŋāĻ­ āϰāĻŋāĻ¸ā§āĻŸā§‹āϰ āĻĒāϰāĻŋāώ⧇āĻŦāĻž

āϕ⧀āĻ­āĻžāĻŦ⧇ āĻāĻ•āϟāĻŋ āύ⧇āϟāĻŋāĻ­ āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύ āϚāĻžāϞ⧁ āĻ•āϰāĻŦ⧇āύ?

āϝāĻ–āύ autochk āϚāĻžāϞ⧁ āĻšāϝāĻŧ, āϤāĻ–āύ āĻĒā§āϰ⧋āĻ—ā§āϰāĻžāĻŽ āϚāĻžāϞ⧁ āĻšāĻ“āϝāĻŧāĻžāϰ āĻ•ā§āϰāĻŽāϟāĻŋ āϰ⧇āϜāĻŋāĻ¸ā§āĻŸā§āϰāĻŋ āϕ⧀-āĻāϰ āĻŽāĻžāύ āĻĻā§āĻŦāĻžāϰāĻž āύāĻŋāĻ°ā§āϧāĻžāϰāĻŋāϤ āĻšāϝāĻŧ:

HKLMSystemCurrentControlSetControlSession ManagerBootExecute

āϏ⧇āĻļāύ āĻŽā§āϝāĻžāύ⧇āϜāĻžāϰ āĻāχ āϤāĻžāϞāĻŋāĻ•āĻž āĻĨ⧇āϕ⧇ āĻĒā§āϰ⧋āĻ—ā§āϰāĻžāĻŽāϗ⧁āϞ⧋ āĻāĻ• āĻāĻ• āĻ•āϰ⧇ āϚāĻžāϞāĻžāϝāĻŧāĨ¤ āϏ⧇āĻļāύ āĻŽā§āϝāĻžāύ⧇āϜāĻžāϰ system32 āĻĄāĻŋāϰ⧇āĻ•ā§āϟāϰāĻŋāϤ⧇ āĻāĻ•ā§āϏāĻŋāĻ•āĻŋāωāĻŸā§‡āĻŦāϞ āĻĢāĻžāχāϞ āĻ–ā§‹āρāĻœā§‡āĨ¤ āϰ⧇āϜāĻŋāĻ¸ā§āĻŸā§āϰāĻŋ āϕ⧀-āĻ­ā§āϝāĻžāϞ⧁ āĻĢāϰāĻŽā§āϝāĻžāϟāϟāĻŋ āύāĻŋāĻŽā§āύāϰ⧂āĻĒ:

autocheck autochk *MyNative

āĻŽāĻžāύāϟāĻŋ āĻ…āĻŦāĻļā§āϝāχ āĻšā§‡āĻ•ā§āϏāĻžāĻĄā§‡āϏāĻŋāĻŽāĻžāϞ āĻĢāϰāĻŽā§āϝāĻžāĻŸā§‡ āĻšāϤ⧇ āĻšāĻŦ⧇, āĻĒā§āϰāϚāϞāĻŋāϤ ASCII āĻĢāϰāĻŽā§āϝāĻžāĻŸā§‡ āύāϝāĻŧ, āϤāĻžāχ āωāĻĒāϰ⧇ āĻĻ⧇āĻ–āĻžāύ⧋ āϕ⧀-āϟāĻŋāϰ āĻĢāϰāĻŽā§āϝāĻžāϟāϟāĻŋ āĻšāĻŦ⧇ āύāĻŋāĻŽā§āύāϰ⧂āĻĒ:

61,75,74,6f,63,68,65,63,6b,20,61,75,74,6f,63,68,6b,20,2a,00,4d,79,4e,61,74,69,76,65,00,00

āύāĻžāĻŽāϟāĻŋ āϰ⧂āĻĒāĻžāĻ¨ā§āϤāϰ āĻ•āϰāϤ⧇, āφāĻĒāύāĻŋ āĻāĻ•āϟāĻŋ āĻ…āύāϞāĻžāχāύ āĻĒāϰāĻŋāώ⧇āĻŦāĻž āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύ, āωāĻĻāĻžāĻšāϰāĻŖāĻ¸ā§āĻŦāϰ⧂āĻĒ, āĻāχ.

Windows āύ⧇āϟāĻŋāĻ­ āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύ āĻāĻŦāĻ‚ āĻ…ā§āϝāĻžāĻ•ā§āϰ⧋āύāĻŋāϏ āĻ…ā§āϝāĻžāĻ•ā§āϟāĻŋāĻ­ āϰāĻŋāĻ¸ā§āĻŸā§‹āϰ āĻĒāϰāĻŋāώ⧇āĻŦāĻž
āĻĻ⧇āĻ–āĻž āϝāĻžāϝāĻŧ āϝ⧇, āĻāĻ•āϟāĻŋ āύ⧇āϟāĻŋāĻ­ āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύ āϚāĻžāϞ⧁ āĻ•āϰāϤ⧇ āφāĻŽāĻžāĻĻ⧇āϰ āĻĒā§āϰāϝāĻŧā§‹āϜāύ:

  1. āĻāĻ•ā§āϏāĻŋāĻ•āĻŋāωāĻŸā§‡āĻŦāϞ āĻĢāĻžāχāϞāϟāĻŋ system32 āĻĢā§‹āĻ˛ā§āĻĄāĻžāϰ⧇ āĻ•āĻĒāĻŋ āĻ•āϰ⧁āύāĨ¤
  2. āϰ⧇āϜāĻŋāĻ¸ā§āĻŸā§āϰāĻŋāϤ⧇ āĻāĻ•āϟāĻŋ āϕ⧀ āϝ⧋āĻ— āĻ•āϰ⧁āύ
  3. āĻŽā§‡āĻļāĻŋāύāϟāĻŋ āϰāĻŋāĻŦ⧁āϟ āĻ•āϰ⧁āύ

āφāĻĒāύāĻžāϰ āϏ⧁āĻŦāĻŋāϧāĻžāϰ āϜāĻ¨ā§āϝ, āĻāĻ–āĻžāύ⧇ āĻāĻ•āϟāĻŋ āύ⧇āϟāĻŋāĻ­ āĻ…ā§āϝāĻžāĻĒ āχāύāĻ¸ā§āϟāϞ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āϤ⧈āϰāĻŋ āĻ¸ā§āĻ•ā§āϰāĻŋāĻĒā§āϟ āĻĻ⧇āĻ“āϝāĻŧāĻž āĻšāϞ⧋:

āĻŦā§āϝāĻžāϟ

@echo off
copy MyNative.exe %systemroot%system32.
regedit /s add.reg
echo Native Example Installed
pause

add.reg

REGEDIT4

[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession Manager]
"BootExecute"=hex(7):61,75,74,6f,63,68,65,63,6b,20,61,75,74,6f,63,68,6b,20,2a,00,4d,79,4e,61,74,69,76,65,00,00

āχāύāĻ¸ā§āϟāϞ⧇āĻļāύ āĻāĻŦāĻ‚ āϰāĻŋāĻŦ⧁āĻŸā§‡āϰ āĻĒāϰ⧇, āĻŦā§āϝāĻŦāĻšāĻžāϰāĻ•āĻžāϰ⧀ āύāĻŋāĻ°ā§āĻŦāĻžāϚāύ⧇āϰ āĻ¸ā§āĻ•ā§āϰāĻŋāύāϟāĻŋ āĻĒā§āϰāĻĻāĻ°ā§āĻļāĻŋāϤ āĻšāĻ“āϝāĻŧāĻžāϰ āφāϗ⧇, āφāĻŽāϰāĻž āύāĻŋāĻŽā§āύāϞāĻŋāĻ–āĻŋāϤ āĻ›āĻŦāĻŋāϟāĻŋ āĻĻ⧇āĻ–āϤ⧇ āĻĒāĻžāĻŦ:

Windows āύ⧇āϟāĻŋāĻ­ āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύ āĻāĻŦāĻ‚ āĻ…ā§āϝāĻžāĻ•ā§āϰ⧋āύāĻŋāϏ āĻ…ā§āϝāĻžāĻ•ā§āϟāĻŋāĻ­ āϰāĻŋāĻ¸ā§āĻŸā§‹āϰ āĻĒāϰāĻŋāώ⧇āĻŦāĻž

āĻĢāϞāĻžāĻĢāϞ

āĻāχ āϛ⧋āϟ āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύāϟāĻŋāϕ⧇ āωāĻĻāĻžāĻšāϰāĻŖ āĻšāĻŋāϏ⧇āĻŦ⧇ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āφāĻŽāϰāĻž āύāĻŋāĻļā§āϚāĻŋāϤ āĻšāϝāĻŧ⧇āĻ›āĻŋāϞāĻžāĻŽ āϝ⧇, āĻāĻ•āϟāĻŋ āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύ āϚāĻžāϞ⧁ āĻ•āϰāĻž āĻšāϞ⧇ āϤāĻž āĻāχ āĻ¸ā§āϤāϰ⧇ Windows āύ⧇āϟāĻŋāĻ­ āĻšāĻ“āϝāĻŧāĻž āĻĒ⧁āϰ⧋āĻĒ⧁āϰāĻŋ āϏāĻŽā§āĻ­āĻŦāĨ¤ āĻāϰāĻĒāϰ, āχāύ⧋āĻĒāϞāĻŋāϏ āχāωāύāĻŋāĻ­āĻžāĻ°ā§āϏāĻŋāϟāĻŋāϰ āĻ—āĻŦ⧇āώāĻ•āĻ—āĻŖ āĻāĻŦāĻ‚ āφāĻŽāĻŋ āĻāĻŽāύ āĻāĻ•āϟāĻŋ āϏāĻžāĻ°ā§āĻ­āĻŋāϏ āϤ⧈āϰāĻŋ āĻ•āϰāĻž āϚāĻžāϞāĻŋāϝāĻŧ⧇ āϝāĻžāĻŦ āϝāĻž āφāĻŽāĻžāĻĻ⧇āϰ āĻĒā§āϰāĻ•āĻ˛ā§āĻĒ⧇āϰ āĻĒā§‚āĻ°ā§āĻŦāĻŦāĻ°ā§āϤ⧀ āϏāĻ‚āĻ¸ā§āĻ•āϰāϪ⧇āϰ āϤ⧁āϞāύāĻžāϝāĻŧ āĻ…āύ⧇āĻ• āφāϗ⧇ āĻĄā§āϰāĻžāχāĻ­āĻžāϰ⧇āϰ āϏāĻžāĻĨ⧇ āϝ⧋āĻ—āĻžāϝ⧋āĻ— āĻļ⧁āϰ⧁ āĻ•āϰāĻŦ⧇āĨ¤ āĻāĻŦāĻ‚ āωāχāĻ¨ā§Šā§¨ āĻļ⧇āϞ-āĻāϰ āφāĻŦāĻŋāĻ°ā§āĻ­āĻžāĻŦ⧇āϰ āϏāĻžāĻĨ⧇ āϏāĻžāĻĨ⧇, āχāϤ⧋āĻŽāĻ§ā§āϝ⧇ āϤ⧈āϰāĻŋ āĻāĻ•āϟāĻŋ āĻĒā§‚āĻ°ā§āĻŖāĻžāĻ™ā§āĻ— āϏāĻžāĻ°ā§āĻ­āĻŋāϏ⧇āϰ āĻ•āĻžāϛ⧇ āύāĻŋāϝāĻŧāĻ¨ā§āĻ¤ā§āϰāĻŖ āĻšāĻ¸ā§āϤāĻžāĻ¨ā§āϤāϰ āĻ•āϰāĻž āϝ⧌āĻ•ā§āϤāĻŋāĻ• āĻšāĻŦ⧇ (āĻ āĻŦāĻŋāώāϝāĻŧ⧇ āĻĒāϰ⧇ āφāϰāĻ“ āĻŦāϞāĻž āĻšāĻŦ⧇)āĨ¤ āĻāĻ–āĻžāύ⧇).

āφāĻŽāĻžāĻĻ⧇āϰ āĻĒāϰāĻŦāĻ°ā§āϤ⧀ āφāĻ°ā§āϟāĻŋāϕ⧇āϞ⧇ āφāĻŽāϰāĻž āĻ…ā§āϝāĻžāĻ•ā§āϟāĻŋāĻ­ āϰāĻŋāĻ¸ā§āĻŸā§‹āϰ āϏāĻžāĻ°ā§āĻ­āĻŋāϏ⧇āϰ āφāϰ⧇āĻ•āϟāĻŋ āωāĻĒāĻžāĻĻāĻžāύ, āĻ…āĻ°ā§āĻĨāĻžā§Ž āχāωāχāĻāĻĢāφāχ āĻĄā§āϰāĻžāχāĻ­āĻžāϰ āύāĻŋāϝāĻŧ⧇ āφāϞ⧋āϚāύāĻž āĻ•āϰāĻŦāĨ¤ āĻĒāϰāĻŦāĻ°ā§āϤ⧀ āĻĒā§‹āĻ¸ā§āĻŸā§‡āϰ āφāĻĒāĻĄā§‡āϟ āĻĒ⧇āϤ⧇ āφāĻŽāĻžāĻĻ⧇āϰ āĻŦā§āϞāϗ⧇ āϏāĻžāĻŦāĻ¸ā§āĻ•ā§āϰāĻžāχāĻŦ āĻ•āϰ⧁āύāĨ¤

āωāĻ¤ā§āϏ: www.habr.com

DDoS āϏ⧁āϰāĻ•ā§āώāĻž, VPS VDS āϏāĻžāĻ°ā§āĻ­āĻžāϰ āϏāĻš āϏāĻžāχāϟāϗ⧁āϞāĻŋāϰ āϜāĻ¨ā§āϝ āύāĻŋāĻ°ā§āĻ­āϰāϝ⧋āĻ—ā§āϝ āĻšā§‹āĻ¸ā§āϟāĻŋāĻ‚ āĻ•āĻŋāύ⧁āύ đŸ”Ĩ DDoS āϏ⧁āϰāĻ•ā§āώāĻž āϏāĻš āύāĻŋāĻ°ā§āĻ­āϰāϝ⧋āĻ—ā§āϝ āĻ“āϝāĻŧ⧇āĻŦāϏāĻžāχāϟ āĻšā§‹āĻ¸ā§āϟāĻŋāĻ‚ āĻ•āĻŋāύ⧁āύ, VPS VDS āϏāĻžāĻ°ā§āĻ­āĻžāϰ | ProHoster