เจตเจฟเฉฐเจกเฉ‹เจœเจผ เจจเฉ‡เจŸเจฟเจต เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจ…เจคเฉ‡ เจเจ•เฉเจฐเฉ‹เจจเจฟเจธ เจเจ•เจŸเจฟเจต เจฐเฉ€เจธเจŸเฉ‹เจฐ เจธเฉ‡เจตเจพ

เจ…เฉฑเจœ เจ…เจธเฉ€เจ‚ เจ‡เจธ เจ•เจนเจพเจฃเฉ€ เจจเฉ‚เฉฐ เจœเจพเจฐเฉ€ เจฐเฉฑเจ–เจฆเฉ‡ เจนเจพเจ‚ เจ•เจฟ เจ•เจฟเจตเฉ‡เจ‚ เจ…เจธเฉ€เจ‚, เจ‡เจจเฉ‹เจชเฉ‹เจฒเจฟเจธ เจฏเฉ‚เจจเฉ€เจตเจฐเจธเจฟเจŸเฉ€ เจฆเฉ‡ เจฎเฉเฉฐเจกเจฟเจ†เจ‚ เจฆเฉ‡ เจจเจพเจฒ, เจ‡เฉฑเจ• เจ…เจธเจซเจฒเจคเจพ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจจเฉ‚เฉฐ เจœเจฟเฉฐเจจเฉ€ เจœเจฒเจฆเฉ€ เจนเฉ‹ เจธเจ•เฉ‡ เจ†เจชเจฃเฉ€ เจฎเจธเจผเฉ€เจจ 'เจคเฉ‡ เจ•เฉฐเจฎ เจ•เจฐเจจเจพ เจธเจผเฉเจฐเฉ‚ เจ•เจฐเจจ เจฆเฉ€ เจ†เจ—เจฟเจ† เจฆเฉ‡เจฃ เจฒเจˆ เจเจ•เจŸเจฟเจต เจฐเฉ€เจธเจŸเฉ‹เจฐ เจคเจ•เจจเจพเจฒเฉ‹เจœเฉ€ เจฆเจพ เจตเจฟเจ•เจพเจธ เจ•เจฐ เจฐเจนเฉ‡ เจนเจพเจ‚เฅค เจ…เจธเฉ€เจ‚ เจฎเฉ‚เจฒ เจตเจฟเฉฐเจกเฉ‹เจœเจผ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจเจพเจ‚ เจฌเจพเจฐเฉ‡ เจ—เฉฑเจฒ เจ•เจฐเจพเจ‚เจ—เฉ‡, เจœเจฟเจธ เจตเจฟเฉฑเจš เจ‰เจนเจจเจพเจ‚ เจฆเฉ€ เจฐเจšเจจเจพ เจ…เจคเฉ‡ เจฒเจพเจ‚เจš เจฆเฉ€เจ†เจ‚ เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพเจตเจพเจ‚ เจธเจผเจพเจฎเจฒ เจนเจจเฅค เจ•เฉฑเจŸ เจฆเฉ‡ เจนเฉ‡เจ เจพเจ‚ เจธเจพเจกเฉ‡ เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจฌเจพเจฐเฉ‡ เจฅเฉ‹เฉœเจพ เจœเจฟเจนเจพ เจนเฉˆ, เจจเจพเจฒ เจนเฉ€ เจจเฉ‡เจŸเจฟเจต เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจเจพเจ‚ เจจเฉ‚เฉฐ เจ•เจฟเจตเฉ‡เจ‚ เจฒเจฟเจ–เจฃเจพ เจนเฉˆ เจ‡เจธ เจฌเจพเจฐเฉ‡ เจ‡เฉฑเจ• เจตเจฟเจนเจพเจฐเจ• เจ—เจพเจˆเจก เจนเฉˆเฅค

เจตเจฟเฉฐเจกเฉ‹เจœเจผ เจจเฉ‡เจŸเจฟเจต เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจ…เจคเฉ‡ เจเจ•เฉเจฐเฉ‹เจจเจฟเจธ เจเจ•เจŸเจฟเจต เจฐเฉ€เจธเจŸเฉ‹เจฐ เจธเฉ‡เจตเจพ

เจชเจฟเจ›เจฒเฉ€เจ†เจ‚ เจชเฉ‹เจธเจŸเจพเจ‚ เจตเจฟเฉฑเจš เจ…เจธเฉ€เจ‚ เจชเจนเจฟเจฒเจพเจ‚ เจนเฉ€ เจ‡เจธ เจฌเจพเจฐเฉ‡ เจ—เฉฑเจฒ เจ•เจฐ เจšเฉเฉฑเจ•เฉ‡ เจนเจพเจ‚ เจ•เจฟ เจ‡เจน เจ•เฉ€ เจนเฉˆ เจ•เจฟเจฐเจฟเจ†เจธเจผเฉ€เจฒ เจฐเฉ€เจธเจŸเฉ‹เจฐ, เจ…เจคเฉ‡ เจ‡เจจเฉ‹เจชเฉ‹เจฒเจฟเจธ เจฆเฉ‡ เจตเจฟเจฆเจฟเจ†เจฐเจฅเฉ€ เจ•เจฟเจตเฉ‡เจ‚ เจตเจฟเจ•เจธเจฟเจค เจนเฉเฉฐเจฆเฉ‡ เจนเจจ เจธเฉ‡เจตเจพ. เจ…เฉฑเจœ เจฎเฉˆเจ‚ เจฎเฉ‚เจฒ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจเจพเจ‚ 'เจคเฉ‡ เจงเจฟเจ†เจจ เจ•เฉ‡เจ‚เจฆเจฐเจฟเจค เจ•เจฐเจจเจพ เจšเจพเจนเฉเฉฐเจฆเจพ เจนเจพเจ‚, เจœเจฟเจธ เจชเฉฑเจงเจฐ เจคเฉฑเจ• เจ…เจธเฉ€เจ‚ เจ†เจชเจฃเฉ€ เจธเจฐเจ—เจฐเจฎ เจฐเจฟเจ•เจตเจฐเฉ€ เจธเฉ‡เจตเจพ เจจเฉ‚เฉฐ "เจฆเจซเจจเจพเจ‰เจฃเจพ" เจšเจพเจนเฉเฉฐเจฆเฉ‡ เจนเจพเจ‚เฅค เจœเฉ‡ เจธเจญ เจ•เฉเจ เจ•เฉฐเจฎ เจ•เจฐเจฆเจพ เจนเฉˆ, เจคเจพเจ‚ เจ…เจธเฉ€เจ‚ เจ‡เจน เจ•เจฐเจจ เจฆเฉ‡ เจฏเฉ‹เจ— เจนเฉ‹เจตเจพเจ‚เจ—เฉ‡:

  • เจธเฉ‡เจตเจพ เจจเฉ‚เฉฐ เจฌเจนเฉเจค เจชเจนเจฟเจฒเจพเจ‚ เจฒเจพเจ‚เจš เจ•เจฐเฉ‹
  • เจ•เจฒเจพเจ‰เจก เจจเจพเจฒ เจธเฉฐเจชเจฐเจ• เจ•เจฐเฉ‹ เจœเจฟเฉฑเจฅเฉ‡ เจฌเฉˆเจ•เจ…เฉฑเจช เจฌเจนเฉเจค เจชเจนเจฟเจฒเจพเจ‚ เจธเจฅเจฟเจค เจนเฉˆ
  • เจ‡เจน เจธเจฎเจเจฃ เจฒเจˆ เจฌเจนเฉเจค เจชเจนเจฟเจฒเจพเจ‚ เจ•เจฟ เจธเจฟเจธเจŸเจฎ เจ•เจฟเจธ เจฎเฉ‹เจก เจตเจฟเฉฑเจš เจนเฉˆ - เจธเจงเจพเจฐเจจ เจฌเฉ‚เจŸ เจœเจพเจ‚ เจฐเจฟเจ•เจตเจฐเฉ€
  • เจชเจนเจฟเจฒเจพเจ‚ เจคเฉ‹เจ‚ เจฐเจฟเจ•เจตเจฐ เจ•เจฐเจจ เจฒเจˆ เจฌเจนเฉเจค เจ˜เฉฑเจŸ เจซเจพเจˆเจฒเจพเจ‚
  • เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจจเฉ‚เฉฐ เจนเฉ‹เจฐ เจตเฉ€ เจคเฉ‡เจœเจผเฉ€ เจจเจพเจฒ เจธเจผเฉเจฐเฉ‚ เจ•เจฐเจจ เจฆเจฟเจ“เฅค

เจตเฉˆเจธเฉ‡ เจตเฉ€ เจ‡เฉฑเจ• เจฎเฉ‚เจฒ เจเจช เจ•เฉ€ เจนเฉˆ?

เจ‡เจธ เจธเจตเจพเจฒ เจฆเจพ เจœเจตเจพเจฌ เจฆเฉ‡เจฃ เจฒเจˆ, เจ†เจ‰ เจธเจฟเจธเจŸเจฎ เจฆเฉเจ†เจฐเจพ เจ•เฉ€เจคเฉ€เจ†เจ‚ เจ—เจˆเจ†เจ‚ เจ•เจพเจฒเจพเจ‚ เจฆเฉ‡ เจ•เฉเจฐเจฎ เจจเฉ‚เฉฐ เจตเฉ‡เจ–เฉ€เจ, เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, เจœเฉ‡เจ•เจฐ เจ‰เจธเจฆเฉ€ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎเจฐ เจ‡เฉฑเจ• เจซเจพเจˆเจฒ เจฌเจฃเจพเจ‰เจฃ เจฆเฉ€ เจ•เฉ‹เจธเจผเจฟเจธเจผ เจ•เจฐเจฆเจพ เจนเฉˆ.

เจตเจฟเฉฐเจกเฉ‹เจœเจผ เจจเฉ‡เจŸเจฟเจต เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจ…เจคเฉ‡ เจเจ•เฉเจฐเฉ‹เจจเจฟเจธ เจเจ•เจŸเจฟเจต เจฐเฉ€เจธเจŸเฉ‹เจฐ เจธเฉ‡เจตเจพ
เจชเจพเจตเฉ‡เจฒ เจฏเฉ‹เจธเฉ€เจซเฉ‹เจตเจฟเจš - เจตเจฟเฉฐเจกเฉ‹เจœเจผ เจ•เจฐเจจเจฒ เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎเจฟเฉฐเจ— (2019)

เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎเจฐ เจซเฉฐเจ•เจธเจผเจจ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเจพ เจนเฉˆ เจซเจพเจˆเจฒ เจฌเจฃเจพเจ“, เจœเจฟเจธ เจจเฉ‚เฉฐ เจนเฉˆเจกเจฐ เจซเจพเจˆเจฒ fileapi.h เจตเจฟเฉฑเจš เจ˜เฉ‹เจธเจผเจฟเจค เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆ เจ…เจคเฉ‡ Kernel32.dll เจตเจฟเฉฑเจš เจฒเจพเจ—เฉ‚ เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆเฅค เจนเจพเจฒเจพเจ‚เจ•เจฟ, เจ‡เจน เจซเฉฐเจ•เจธเจผเจจ เจ–เฉเจฆ เจซเจพเจˆเจฒ เจจเจนเฉ€เจ‚ เจฌเจฃเจพเจ‰เจ‚เจฆเจพ, เจ‡เจน เจธเจฟเจฐเจซ เจ‡เจจเจชเฉเจŸ เจ†เจฐเจ—เฉ‚เจฎเฉˆเจ‚เจŸเจพเจ‚ เจฆเฉ€ เจœเจพเจ‚เจš เจ•เจฐเจฆเจพ เจนเฉˆ เจ…เจคเฉ‡ เจซเฉฐเจ•เจธเจผเจจ เจจเฉ‚เฉฐ เจ•เจพเจฒ เจ•เจฐเจฆเจพ เจนเฉˆ NtCreateFile (เจ…เจ—เฉ‡เจคเจฐ Nt เจธเจฟเจฐเจซเจผ เจ‡เจน เจฆเจฐเจธเจพเจ‰เจ‚เจฆเจพ เจนเฉˆ เจ•เจฟ เจซเฉฐเจ•เจธเจผเจจ เจฎเฉ‚เจฒ เจนเฉˆ)เฅค เจ‡เจน เจซเฉฐเจ•เจธเจผเจจ winternl.h เจนเฉˆเจกเจฐ เจซเจพเจˆเจฒ เจตเจฟเฉฑเจš เจ˜เฉ‹เจธเจผเจฟเจค เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆ เจ…เจคเฉ‡ ntdll.dll เจตเจฟเฉฑเจš เจฒเจพเจ—เฉ‚ เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆเฅค เจ‡เจน เจชเฉเจฐเจฎเจพเจฃเฉ‚ เจธเจชเฉ‡เจธ เจตเจฟเฉฑเจš เจ›เจพเจฒ เจฎเจพเจฐเจจ เจฆเฉ€ เจคเจฟเจ†เจฐเฉ€ เจ•เจฐเจฆเจพ เจนเฉˆ, เจœเจฟเจธ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ เจ‡เจน เจ‡เฉฑเจ• เจซเจพเจˆเจฒ เจฌเจฃเจพเจ‰เจฃ เจฒเจˆ เจ‡เฉฑเจ• เจธเจฟเจธเจŸเจฎ เจ•เจพเจฒ เจ•เจฐเจฆเจพ เจนเฉˆเฅค เจ‡เจธ เจ•เฉ‡เจธ เจตเจฟเฉฑเจš, เจ‡เจน เจชเจคเจพ เจšเจฒเจฆเจพ เจนเฉˆ เจ•เจฟ Kernel32 Ntdll เจฒเจˆ เจธเจฟเจฐเจซเจผ เจ‡เฉฑเจ• เจฐเฉˆเจชเจฐ เจนเฉˆเฅค เจ…เจœเจฟเจนเจพ เจ•เจฐเจจ เจฆเจพ เจ‡เฉฑเจ• เจ•เจพเจฐเจจ เจ‡เจน เจนเฉˆ เจ•เจฟ เจฎเจพเจˆเจ•เฉเจฐเฉ‹เจธเจพเฉฑเจซเจŸ เจ‡เจธ เจคเจฐเฉเจนเจพเจ‚ เจฎเฉ‚เจฒ เจธเฉฐเจธเจพเจฐ เจฆเฉ‡ เจซเฉฐเจ•เจธเจผเจจเจพเจ‚ เจจเฉ‚เฉฐ เจฌเจฆเจฒเจฃ เจฆเฉ€ เจธเจฎเจฐเฉฑเจฅเจพ เจฐเฉฑเจ–เจฆเจพ เจนเฉˆ, เจชเจฐ เจฎเจฟเจ†เจฐเฉ€ เจ‡เฉฐเจŸเจฐเจซเฉ‡เจธเจพเจ‚ เจจเฉ‚เฉฐ เจ›เฉ‚เจน เจจเจนเฉ€เจ‚ เจธเจ•เจฆเจพเฅค เจฎเจพเจˆเจ•เฉเจฐเฉ‹เจธเจพเจซเจŸ เจจเฉ‡เจŸเจฟเจต เจซเฉฐเจ•เจธเจผเจจเจพเจ‚ เจจเฉ‚เฉฐ เจธเจฟเฉฑเจงเฉ‡ เจ•เจพเจฒ เจ•เจฐเจจ เจฆเฉ€ เจธเจฟเจซเจผเจพเจฐเจฟเจธเจผ เจจเจนเฉ€เจ‚ เจ•เจฐเจฆเจพ เจนเฉˆ เจ…เจคเฉ‡ เจ‰เจนเจจเจพเจ‚ เจตเจฟเฉฑเจšเฉ‹เจ‚ เจœเจผเจฟเจ†เจฆเจพเจคเจฐ เจจเฉ‚เฉฐ เจฆเจธเจคเจพเจตเฉ‡เจœเจผ เจจเจนเฉ€เจ‚ เจ•เจฐเจฆเจพ เจนเฉˆเฅค เจคเจฐเฉ€เจ•เฉ‡ เจจเจพเจฒ, เจฌเจฟเจจเจพเจ‚ เจฆเจธเจคเจพเจตเฉ‡เจœเจผเฉ€ เจซเฉฐเจ•เจธเจผเจจ เจฒเฉฑเจญเฉ‡ เจœเจพ เจธเจ•เจฆเฉ‡ เจนเจจ เจ‡เฉฑเจฅเฉ‡.

เจจเฉ‡เจŸเจฟเจต เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจเจพเจ‚ เจฆเจพ เจฎเฉเฉฑเจ– เจซเจพเจ‡เจฆเจพ เจ‡เจน เจนเฉˆ เจ•เจฟ ntdll เจธเจฟเจธเจŸเจฎ เจตเจฟเฉฑเจš kernel32 เจคเฉ‹เจ‚ เจฌเจนเฉเจค เจชเจนเจฟเจฒเจพเจ‚ เจฒเฉ‹เจก เจนเฉเฉฐเจฆเจพ เจนเฉˆเฅค เจ‡เจน เจฒเจพเจœเจผเฉ€เจ•เจฒ เจนเฉˆ, เจ•เจฟเจ‰เจ‚เจ•เจฟ kernel32 เจจเฉ‚เฉฐ เจ•เฉฐเจฎ เจ•เจฐเจจ เจฒเจˆ ntdll เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉเฉฐเจฆเฉ€ เจนเฉˆเฅค เจจเจคเฉ€เจœเฉ‡ เจตเจœเฉ‹เจ‚, เจจเฉ‡เจŸเจฟเจต เจซเฉฐเจ•เจธเจผเจจเจพเจ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจ เจตเจพเจฒเฉ€เจ†เจ‚ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจเจพเจ‚ เจฌเจนเฉเจค เจชเจนเจฟเจฒเจพเจ‚ เจ•เฉฐเจฎ เจ•เจฐเจจเจพ เจธเจผเฉเจฐเฉ‚ เจ•เจฐ เจธเจ•เจฆเฉ€เจ†เจ‚ เจนเจจเฅค

เจ‡เจธ เจคเจฐเฉเจนเจพเจ‚, เจตเจฟเฉฐเจกเฉ‹เจœเจผ เจจเฉ‡เจŸเจฟเจต เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจ‰เจน เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎ เจนเจจ เจœเฉ‹ เจตเจฟเฉฐเจกเฉ‹เจœเจผ เจฌเฉ‚เจŸ เจฆเฉ‡ เจธเจผเฉเจฐเฉ‚ เจตเจฟเฉฑเจš เจธเจผเฉเจฐเฉ‚ เจนเฉ‹ เจธเจ•เจฆเฉ‡ เจนเจจเฅค เจ‰เจน เจธเจฟเจฐเจซ ntdll เจคเฉ‹เจ‚ เจซเฉฐเจ•เจธเจผเจจเจพเจ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเจจเฅค เจ…เจœเจฟเจนเฉ€ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจฆเฉ€ เจ‡เฉฑเจ• เจ‰เจฆเจพเจนเจฐเจฃ: autochk เจœเฉ‹ เจชเฉเจฐเจฆเจฐเจธเจผเจจ เจ•เจฐเจฆเจพ เจนเฉˆ chkdisk เจธเจนเฉ‚เจฒเจค เจฎเฉเฉฑเจ– เจธเฉ‡เจตเจพเจตเจพเจ‚ เจธเจผเฉเจฐเฉ‚ เจ•เจฐเจจ เจคเฉ‹เจ‚ เจชเจนเจฟเจฒเจพเจ‚ เจ—เจฒเจคเฉ€เจ†เจ‚ เจฒเจˆ เจกเจฟเจธเจ• เจฆเฉ€ เจœเจพเจ‚เจš เจ•เจฐเจจ เจฒเจˆเฅค เจ‡เจน เจฌเจฟเจฒเจ•เฉเจฒ เจ‰เจน เจชเฉฑเจงเจฐ เจนเฉˆ เจœเฉ‹ เจ…เจธเฉ€เจ‚ เจšเจพเจนเฉเฉฐเจฆเฉ‡ เจนเจพเจ‚ เจ•เจฟ เจธเจพเจกเฉ€ เจเจ•เจŸเจฟเจต เจฐเฉ€เจธเจŸเฉ‹เจฐ เจนเฉ‹เจตเฉ‡เฅค

เจธเจพเจจเฉ‚เฉฐ เจ•เฉ€ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆ?

  • เจกเฉ€.เจกเฉ€.เจ•เฉ‡ (เจกเจฐเจพเจˆเจตเจฐ เจกเจฟเจตเฉˆเจฒเจชเจฎเฉˆเจ‚เจŸ เจ•เจฟเฉฑเจŸ), เจนเฉเจฃ WDK 7 (เจตเจฟเฉฐเจกเฉ‹เจœเจผ เจกเจฐเจพเจˆเจตเจฐ เจ•เจฟเฉฑเจŸ) เจตเจœเฉ‹เจ‚ เจตเฉ€ เจœเจพเจฃเฉ€ เจœเจพเจ‚เจฆเฉ€ เจนเฉˆเฅค
  • เจตเจฐเจšเฉเจ…เจฒ เจฎเจธเจผเฉ€เจจ (เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, เจตเจฟเฉฐเจกเฉ‹เจœเจผ 7 x64)
  • เจœเจผเจฐเฉ‚เจฐเฉ€ เจจเจนเฉ€เจ‚ เจนเฉˆ, เจชเจฐ เจนเฉˆเจกเจฐ เจซเจพเจˆเจฒเจพเจ‚ เจœเฉ‹ เจกเจพเจŠเจจเจฒเฉ‹เจก เจ•เฉ€เจคเฉ€เจ†เจ‚ เจœเจพ เจธเจ•เจฆเฉ€เจ†เจ‚ เจนเจจ เจฎเจฆเจฆ เจ•เจฐ เจธเจ•เจฆเฉ€เจ†เจ‚ เจนเจจ เจ‡เฉฑเจฅเฉ‡

เจ•เฉ‹เจก เจตเจฟเฉฑเจš เจ•เฉ€ เจนเฉˆ?

เจ†เจ“ เจฅเฉ‹เฉœเจพ เจ…เจญเจฟเจ†เจธ เจ•เจฐเฉ€เจ เจ…เจคเฉ‡, เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, เจ‡เฉฑเจ• เจ›เฉ‹เจŸเฉ€ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจฒเจฟเจ–เฉ‹ เจœเฉ‹:

  1. เจธเจ•เจฐเฉ€เจจ 'เจคเฉ‡ เจ‡เฉฑเจ• เจธเฉเจจเฉ‡เจนเจพ เจตเฉ‡เจ–เจพเจ‰เจฆเจพ เจนเฉˆ
  2. เจ•เฉเจ เจฎเฉˆเจฎเฉ‹เจฐเฉ€ เจจเจฟเจฐเจงเจพเจฐเจค เจ•เจฐเจฆเจพ เจนเฉˆ
  3. เจ•เฉ€เจฌเฉ‹เจฐเจก เจ‡เจจเจชเฉเจŸ เจฆเฉ€ เจ‰เจกเฉ€เจ• เจนเฉˆ
  4. เจตเจฐเจคเฉ€ เจ—เจˆ เจฎเฉˆเจฎเฉ‹เจฐเฉ€ เจจเฉ‚เฉฐ เจ–เจพเจฒเฉ€ เจ•เจฐเจฆเจพ เจนเฉˆ

เจจเฉ‡เจŸเจฟเจต เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจเจพเจ‚ เจตเจฟเฉฑเจš, เจเจ‚เจŸเจฐเฉ€ เจชเฉเจ†เจ‡เฉฐเจŸ เจฎเฉเฉฑเจ– เจœเจพเจ‚ เจตเจฟเจจเจฎเฉ‡เจจ เจจเจนเฉ€เจ‚ เจนเฉˆ, เจชเจฐ 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 เจคเฉ‹เจ‚ เจซเฉฐเจ•เจธเจผเจจ เจธเจพเจกเฉ‡ เจฒเจˆ เจ‰เจชเจฒเจฌเจง เจนเจจ, เจ…เจคเฉ‡ เจฎเฉˆเจฎเฉ‹เจฐเฉ€ เจตเจฟเฉฑเจš เจ…เจœเฉ‡ เจ•เฉ‹เจˆ เจนเฉ‹เจฐ เจฒเจพเจ‡เจฌเฉเจฐเฉ‡เจฐเฉ€เจ†เจ‚ เจจเจนเฉ€เจ‚ เจนเจจ, เจธเจพเจจเฉ‚เฉฐ เจฏเจ•เฉ€เจจเฉ€ เจคเฉŒเจฐ 'เจคเฉ‡ เจฎเฉˆเจฎเฉ‹เจฐเฉ€ เจจเฉ‚เฉฐ เจ•เจฟเจตเฉ‡เจ‚ เจจเจฟเจฐเจงเจพเจฐเจค เจ•เจฐเจจเจพ เจนเฉˆ เจ‡เจธ เจตเจฟเฉฑเจš เจธเจฎเฉฑเจธเจฟเจ† เจนเฉ‹เจตเฉ‡เจ—เฉ€เฅค เจจเจตเจพเจ‚ เจ†เจชเจฐเฉ‡เจŸเจฐ เจ…เจœเฉ‡ เจฎเฉŒเจœเฉ‚เจฆ เจจเจนเฉ€เจ‚ เจนเฉˆ (เจ•เจฟเจ‰เจ‚เจ•เจฟ เจ‡เจน 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);
}

PS: เจ…เจธเฉ€เจ‚ เจ‡เจธเจจเฉ‚เฉฐ เจกเฉ€เจฌเจ—เจฐ เจตเจฟเฉฑเจš เจฐเฉ‹เจ•เจฃ เจฒเจˆ เจ†เจชเจฃเฉ‡ เจ•เฉ‹เจก เจตเจฟเฉฑเจš DbgBreakPoint() เจซเฉฐเจ•เจธเจผเจจ เจจเฉ‚เฉฐ เจ†เจธเจพเจจเฉ€ เจจเจพเจฒ เจตเจฐเจค เจธเจ•เจฆเฉ‡ เจนเจพเจ‚เฅค เจ‡เจน เจธเฉฑเจš เจนเฉˆ, เจ•เจฐเจจเจฒ เจกเฉ€เจฌเฉฑเจ—เจฟเฉฐเจ— เจฒเจˆ เจคเฉเจนเจพเจจเฉ‚เฉฐ WinDbg เจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจตเจฐเจšเฉเจ…เจฒ เจฎเจธเจผเฉ€เจจ เจจเจพเจฒ เจ•เจจเฉˆเจ•เจŸ เจ•เจฐเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉ‹เจตเฉ‡เจ—เฉ€เฅค เจ‡เจน เจ•เจฟเจตเฉ‡เจ‚ เจ•เจฐเจจเจพ เจนเฉˆ เจ‡เจธ เจฌเจพเจฐเฉ‡ เจนเจฆเจพเจ‡เจคเจพเจ‚ เจฒเฉฑเจญเฉ€เจ†เจ‚ เจœเจพ เจธเจ•เจฆเฉ€เจ†เจ‚ เจนเจจ เจ‡เฉฑเจฅเฉ‡ เจœเจพเจ‚ เจธเจฟเจฐเจซ เจตเจฐเจคเฉ‹เจ‚ เจตเจฐเจšเฉเจ…เจฒ เจ•เฉ‡.เจกเฉ€.

เจธเฉฐเจ•เจฒเจจ เจ…เจคเฉ‡ เจ…เจธเฉˆเจ‚เจฌเจฒเฉ€

เจจเฉ‡เจŸเจฟเจต เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจฌเจฃเจพเจ‰เจฃ เจฆเจพ เจธเจญ เจคเฉ‹เจ‚ เจ†เจธเจพเจจ เจคเจฐเฉ€เจ•เจพ เจนเฉˆ เจตเจฐเจคเจฃเจพ เจกเฉ€.เจกเฉ€.เจ•เฉ‡ (เจกเจฐเจพเจˆเจตเจฐ เจกเจฟเจตเฉˆเจฒเจชเจฎเฉˆเจ‚เจŸ เจ•เจฟเฉฑเจŸ)เฅค เจธเจพเจจเฉ‚เฉฐ เจชเฉเจฐเจพเจšเฉ€เจจ เจธเฉฑเจคเจตเฉ‡เจ‚ เจธเฉฐเจธเจ•เจฐเจฃ เจฆเฉ€ เจœเจผเจฐเฉ‚เจฐเจค เจนเฉˆ, เจ•เจฟเจ‰เจ‚เจ•เจฟ เจฌเจพเจ…เจฆ เจฆเฉ‡ เจธเฉฐเจธเจ•เจฐเจฃเจพเจ‚ เจตเจฟเฉฑเจš เจฅเฉ‹เฉœเฉเจนเจพ เจตเฉฑเจ–เจฐเจพ เจคเจฐเฉ€เจ•เจพ เจนเฉˆ เจ…เจคเฉ‡ เจตเจฟเจœเจผเฉ‚เจ…เจฒ เจธเจŸเฉ‚เจกเฉ€เจ“ เจฆเฉ‡ เจจเจพเจฒ เจฎเจฟเจฒ เจ•เฉ‡ เจ•เฉฐเจฎ เจ•เจฐเจฆเฉ‡ เจนเจจเฅค เจœเฉ‡เจ•เจฐ เจ…เจธเฉ€เจ‚ DDK เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚, เจคเจพเจ‚ เจธเจพเจกเฉ‡ เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจจเฉ‚เฉฐ เจธเจฟเจฐเจซเจผ เจฎเฉ‡เจ•เจซเจพเจˆเจฒ เจ…เจคเฉ‡ เจธเจฐเฉ‹เจคเจพเจ‚ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉเฉฐเจฆเฉ€ เจนเฉˆเฅค

เจฎเฉ‡เจ•เจซเจพเจˆเจฒ

!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

เจคเฉเจนเจพเจกเฉ€ เจฎเฉ‡เจ•เจซเจพเจˆเจฒ เจฌเจฟเจฒเจ•เฉเจฒ เจ‰เจนเฉ€ เจนเฉ‹เจตเฉ‡เจ—เฉ€, เจชเจฐ เจ†เจ“ เจฅเฉ‹เฉœเฉ‡ เจนเฉ‹เจฐ เจตเจฟเจธเจฅเจพเจฐ เจตเจฟเฉฑเจš เจธเจฐเฉ‹เจคเจพเจ‚ เจจเฉ‚เฉฐ เจตเฉ‡เจ–เฉ€เจ. เจ‡เจน เจซเจพเจˆเจฒ เจคเฉเจนเจพเจกเฉ‡ เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎ เจฆเฉ‡ เจธเจฐเฉ‹เจคเจพเจ‚ (.c เจซเจพเจˆเจฒเจพเจ‚), เจฌเจฟเจฒเจก เจตเจฟเจ•เจฒเจชเจพเจ‚ เจ…เจคเฉ‡ เจนเฉ‹เจฐ เจฎเจพเจชเจฆเฉฐเจกเจพเจ‚ เจจเฉ‚เฉฐ เจฆเจฐเจธเจพเจ‰เจ‚เจฆเฉ€ เจนเฉˆเฅค

  • TARGETNAME โ€“ เจšเฉฑเจฒเจฃเจฏเฉ‹เจ— เจซเจพเจˆเจฒ เจฆเจพ เจจเจพเจฎ เจœเฉ‹ เจ…เฉฐเจค เจตเจฟเฉฑเจš เจคเจฟเจ†เจฐ เจ•เฉ€เจคเจพ เจœเจพเจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆเฅค
  • TARGETTYPE - เจเจ—เจœเจผเฉ€เจ•เจฟเจŠเจŸเฉ‡เจฌเจฒ เจซเจพเจˆเจฒ เจฆเฉ€ เจ•เจฟเจธเจฎ, เจ‡เจน เจ‡เฉฑเจ• เจกเจฐเจพเจˆเจตเจฐ (.sys) เจนเฉ‹ เจธเจ•เจฆเฉ€ เจนเฉˆ, เจซเจฟเจฐ เจซเฉ€เจฒเจก เจฆเจพ เจฎเฉเฉฑเจฒ เจกเฉเจฐเจพเจˆเจตเจฐ เจนเฉ‹เจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆ, เจœเฉ‡เจ•เจฐ เจ‡เฉฑเจ• เจฒเจพเจ‡เจฌเฉเจฐเฉ‡เจฐเฉ€ (.lib), เจคเจพเจ‚ เจฎเฉเฉฑเจฒ LIBRARY เจนเฉˆเฅค เจธเจพเจกเฉ‡ เจ•เฉ‡เจธ เจตเจฟเฉฑเจš, เจธเจพเจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจเจ—เจœเจผเฉ€เจ•เจฟเจŠเจŸเฉ‡เจฌเจฒ เจซเจพเจˆเจฒ (.exe) เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆ, เจ‡เจธเจฒเจˆ เจ…เจธเฉ€เจ‚ เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎ เจจเฉ‚เฉฐ เจฎเฉเฉฑเจฒ เจธเฉˆเฉฑเจŸ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚เฅค
  • UMTYPE โ€“ เจ‡เจธ เจ–เฉ‡เจคเจฐ เจฒเจˆ เจธเฉฐเจญเจต เจฎเฉเฉฑเจฒ: เจ‡เฉฑเจ• เจ•เฉฐเจธเฉ‹เจฒ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจฒเจˆ เจ•เฉฐเจธเฉ‹เจฒ, เจตเจฟเฉฐเจกเฉ‹เจœเจผ เจฎเฉ‹เจก เจตเจฟเฉฑเจš เจ•เฉฐเจฎ เจ•เจฐเจจ เจฒเจˆ เจตเจฟเฉฐเจกเฉ‹เจœเจผเฅค เจชเจฐ เจธเจพเจจเฉ‚เฉฐ เจจเฉ‡เจŸเจฟเจต เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจชเฉเจฐเจพเจชเจค เจ•เจฐเจจ เจฒเจˆ nt เจจเจฟเจฐเจงเจพเจฐเจค เจ•เจฐเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆเฅค
  • BUFFER_OVERFLOW_CHECKS - เจฌเจซเจฐ เจ“เจตเจฐเจซเจฒเฉ‹ เจฒเจˆ เจธเจŸเฉˆเจ• เจฆเฉ€ เจœเจพเจ‚เจš เจ•เจฐเจจเจพ, เจฌเจฆเจ•เจฟเจธเจฎเจคเฉ€ เจจเจพเจฒ เจธเจพเจกเฉ‡ เจ•เฉ‡เจธ เจจเจนเฉ€เจ‚, เจ…เจธเฉ€เจ‚ เจ‡เจธเจจเฉ‚เฉฐ เจฌเฉฐเจฆ เจ•เจฐ เจฆเจฟเฉฐเจฆเฉ‡ เจนเจพเจ‚เฅค
  • MINWIN_SDK_LIB_PATH - เจ‡เจน เจฎเฉเฉฑเจฒ SDK_LIB_PATH เจตเฉ‡เจฐเฉ€เจเจฌเจฒ เจจเฉ‚เฉฐ เจฆเจฐเจธเจพเจ‰เจ‚เจฆเจพ เจนเฉˆ, เจšเจฟเฉฐเจคเจพ เจจเจพ เจ•เจฐเฉ‹ เจ•เจฟ เจคเฉเจนเจพเจกเฉ‡ เจ•เฉ‹เจฒ เจ…เจœเจฟเจนเจพ เจธเจฟเจธเจŸเจฎ เจตเฉ‡เจฐเฉ€เจเจฌเจฒ เจ˜เฉ‹เจธเจผเจฟเจค เจจเจนเฉ€เจ‚ เจนเฉˆ, เจœเจฆเฉ‹เจ‚ เจ…เจธเฉ€เจ‚ DDK เจคเฉ‹เจ‚ เจšเฉˆเฉฑเจ• เจ•เฉ€เจคเฉ‡ เจฌเจฟเจฒเจก เจจเฉ‚เฉฐ เจšเจฒเจพเจ‰เจ‚เจฆเฉ‡ เจนเจพเจ‚, เจคเจพเจ‚ เจ‡เจน เจตเฉ‡เจฐเฉ€เจเจฌเจฒ เจ˜เฉ‹เจธเจผเจฟเจค เจ•เฉ€เจคเจพ เจœเจพเจตเฉ‡เจ—เจพ เจ…เจคเฉ‡ เจฒเฉ‹เฉœเฉ€เจ‚เจฆเฉ€เจ†เจ‚ เจฒเจพเจ‡เจฌเฉเจฐเฉ‡เจฐเฉ€เจ†เจ‚ เจตเฉฑเจฒ เจ‡เจธเจผเจพเจฐเจพ เจ•เจฐเฉ‡เจ—เจพเฅค
  • เจธเจฐเฉ‹เจค โ€“ เจคเฉเจนเจพเจกเฉ‡ เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎ เจฒเจˆ เจธเจฐเฉ‹เจคเจพเจ‚ เจฆเฉ€ เจธเฉ‚เจšเฉ€เฅค
  • เจธเจผเจพเจฎเจฒ เจนเจจ - เจนเฉˆเจกเจฐ เจซเจพเจˆเจฒเจพเจ‚ เจœเฉ‹ เจ…เจธเฉˆเจ‚เจฌเจฒเฉ€ เจฒเจˆ เจฒเฉ‹เฉœเฉ€เจ‚เจฆเฉ€เจ†เจ‚ เจนเจจเฅค เจ‡เฉฑเจฅเฉ‡ เจ‰เจน เจ†เจฎ เจคเฉŒเจฐ 'เจคเฉ‡ เจซเจพเจˆเจฒเจพเจ‚ เจฆเจพ เจฎเจพเจฐเจ— เจฆเจฐเจธเจพเจ‰เจ‚เจฆเฉ‡ เจนเจจ เจœเฉ‹ DDK เจจเจพเจฒ เจ†เจ‰เจ‚เจฆเฉ€เจ†เจ‚ เจนเจจ, เจชเจฐ เจคเฉเจธเฉ€เจ‚ เจ‡เจธ เจคเฉ‹เจ‚ เจ‡เจฒเจพเจตเจพ เจ•เจฟเจธเฉ‡ เจนเฉ‹เจฐ เจจเฉ‚เฉฐ เจตเฉ€ เจจเจฟเจฐเจงเจพเจฐเจค เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค
  • TARGETLIBS - เจฒเจพเจ‡เจฌเฉเจฐเฉ‡เจฐเฉ€เจ†เจ‚ เจฆเฉ€ เจธเฉ‚เจšเฉ€ เจœเจฟเจจเฉเจนเจพเจ‚ เจจเฉ‚เฉฐ เจฒเจฟเฉฐเจ• เจ•เจฐเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆเฅค
  • USE_NTDLL เจ‡เฉฑเจ• เจฒเฉ‹เฉœเฉ€เจ‚เจฆเจพ เจ–เฉ‡เจคเจฐ เจนเฉˆ เจœเฉ‹ เจธเจชเฉฑเจธเจผเจŸ เจ•เจพเจฐเจจเจพเจ‚ เจ•เจฐเจ•เฉ‡ 1 'เจคเฉ‡ เจธเฉˆเฉฑเจŸ เจ•เฉ€เจคเจพ เจœเจพเจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆเฅค
  • USER_C_FLAGS - เจ•เฉ‹เจˆ เจตเฉ€ เจซเจฒเฉˆเจ— เจœเฉ‹ เจคเฉเจธเฉ€เจ‚ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจ•เฉ‹เจก เจคเจฟเจ†เจฐ เจ•เจฐเจฆเฉ‡ เจธเจฎเฉ‡เจ‚ เจชเฉเจฐเฉ€เจชเฉเจฐเฉ‹เจธเฉˆเจธเจฐ เจจเจฟเจฐเจฆเฉ‡เจธเจผเจพเจ‚ เจตเจฟเฉฑเจš เจตเจฐเจค เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค

เจ‡เจธ เจฒเจˆ เจฌเจฟเจฒเจก เจ•เจฐเจจ เจฒเจˆ, เจธเจพเจจเฉ‚เฉฐ x86 (เจœเจพเจ‚ x64) เจšเฉˆเฉฑเจ•เจก เจฌเจฟเจฒเจก เจจเฉ‚เฉฐ เจšเจฒเจพเจ‰เจฃ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆ, เจตเจฐเจ•เจฟเฉฐเจ— เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€ เจจเฉ‚เฉฐ เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจซเฉ‹เจฒเจกเจฐ เจตเจฟเฉฑเจš เจฌเจฆเจฒเฉ‹ เจ…เจคเฉ‡ เจฌเจฟเจฒเจก เจ•เจฎเจพเจ‚เจก เจšเจฒเจพเจ“เฅค เจธเจ•เจฐเฉ€เจจเจธเจผเจพเจŸ เจตเจฟเฉฑเจš เจจเจคเฉ€เจœเจพ เจฆเจฟเจ–เจพเจ‰เจ‚เจฆเจพ เจนเฉˆ เจ•เจฟ เจธเจพเจกเฉ‡ เจ•เฉ‹เจฒ เจ‡เฉฑเจ• เจเจ—เจœเจผเฉ€เจ•เจฟเจŠเจŸเฉ‡เจฌเจฒ เจซเจพเจˆเจฒ เจนเฉˆเฅค

เจตเจฟเฉฐเจกเฉ‹เจœเจผ เจจเฉ‡เจŸเจฟเจต เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจ…เจคเฉ‡ เจเจ•เฉเจฐเฉ‹เจจเจฟเจธ เจเจ•เจŸเจฟเจต เจฐเฉ€เจธเจŸเฉ‹เจฐ เจธเฉ‡เจตเจพ

เจ‡เจน เจซเจพเจˆเจฒ เจ‡เฉฐเจจเฉ€ เจ†เจธเจพเจจเฉ€ เจจเจพเจฒ เจฒเจพเจ‚เจš เจจเจนเฉ€เจ‚ เจ•เฉ€เจคเฉ€ เจœเจพ เจธเจ•เจฆเฉ€, เจธเจฟเจธเจŸเจฎ เจธเจฐเจพเจช เจฆเจฟเฉฐเจฆเจพ เจนเฉˆ เจ…เจคเฉ‡ เจธเจพเจจเฉ‚เฉฐ เจนเฉ‡เจ เจพเจ‚ เจฆเจฟเฉฑเจคเฉ€ เจ—เจฒเจคเฉ€ เจจเจพเจฒ เจ‡เจธเจฆเฉ‡ เจตเจฟเจตเจนเจพเจฐ เจฌเจพเจฐเฉ‡ เจธเฉ‹เจšเจฃ เจฒเจˆ เจญเฉ‡เจœเจฆเจพ เจนเฉˆ:

เจตเจฟเฉฐเจกเฉ‹เจœเจผ เจจเฉ‡เจŸเจฟเจต เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจ…เจคเฉ‡ เจเจ•เฉเจฐเฉ‹เจจเจฟเจธ เจเจ•เจŸเจฟเจต เจฐเฉ€เจธเจŸเฉ‹เจฐ เจธเฉ‡เจตเจพ

เจ‡เฉฑเจ• เจจเฉ‡เจŸเจฟเจต เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจ•เจฟเจตเฉ‡เจ‚ เจฒเจพเจ‚เจš เจ•เจฐเฉ€เจ?

เจœเจฆเฉ‹เจ‚ เจ†เจŸเฉ‹เจšเฉฑเจ• เจธเจผเฉเจฐเฉ‚ เจนเฉเฉฐเจฆเจพ เจนเฉˆ, เจคเจพเจ‚ เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎเจพเจ‚ เจฆเจพ เจธเจผเฉเจฐเฉ‚เจ†เจคเฉ€ เจ•เฉเจฐเจฎ เจฐเจœเจฟเจธเจŸเจฐเฉ€ เจ•เฉเฉฐเจœเฉ€ เจฆเฉ‡ เจฎเฉเฉฑเจฒ เจฆเฉเจ†เจฐเจพ เจจเจฟเจฐเจงเจพเจฐเจค เจ•เฉ€เจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆ:

HKLMSystemCurrentControlSetControlSession ManagerBootExecute

เจธเฉˆเจธเจผเจจ เจฎเฉˆเจจเฉ‡เจœเจฐ เจ‡เจธ เจธเฉ‚เจšเฉ€ เจตเจฟเฉฑเจšเฉ‹เจ‚ เจ‡เฉฑเจ•-เจ‡เฉฑเจ• เจ•เจฐเจ•เฉ‡ เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎเจพเจ‚ เจจเฉ‚เฉฐ เจšเจฒเจพเจ‰เจ‚เจฆเจพ เจนเฉˆเฅค เจธเจผเฉˆเจธเจผเจจ เจฎเฉˆเจจเฉ‡เจœเจฐ เจธเจฟเจธเจŸเจฎ32 เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€ เจตเจฟเฉฑเจš เจเจ—เจœเจผเฉ€เจ•เจฟเจŠเจŸเฉ‡เจฌเจฒ เจซเจพเจˆเจฒเจพเจ‚ เจฆเฉ€ เจ–เฉ‹เจœ เจ•เจฐเจฆเจพ เจนเฉˆเฅค เจฐเจœเจฟเจธเจŸเจฐเฉ€ เจ•เฉเฉฐเจœเฉ€ เจฎเฉเฉฑเจฒ เจซเจพเจฐเจฎเฉˆเจŸ เจนเฉ‡เจ  เจฒเจฟเจ–เฉ‡ เจ…เจจเฉเจธเจพเจฐ เจนเฉˆ:

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

เจธเจฟเจฐเจฒเฉ‡เจ– เจจเฉ‚เฉฐ เจฌเจฆเจฒเจฃ เจฒเจˆ, เจคเฉเจธเฉ€เจ‚ เจ‡เฉฑเจ• เจ”เจจเจฒเจพเจˆเจจ เจธเฉ‡เจตเจพ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹, เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, เจ‡เจน.

เจตเจฟเฉฐเจกเฉ‹เจœเจผ เจจเฉ‡เจŸเจฟเจต เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจ…เจคเฉ‡ เจเจ•เฉเจฐเฉ‹เจจเจฟเจธ เจเจ•เจŸเจฟเจต เจฐเฉ€เจธเจŸเฉ‹เจฐ เจธเฉ‡เจตเจพ
เจ‡เจน เจชเจคเจพ เจšเจฒเจฆเจพ เจนเฉˆ เจ•เจฟ เจ‡เฉฑเจ• เจฎเฉ‚เจฒ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจฒเจพเจ‚เจš เจ•เจฐเจจ เจฒเจˆ, เจธเจพเจจเฉ‚เฉฐ เจฒเฉ‹เฉœ เจนเฉˆ:

  1. เจเจ—เจœเจผเฉ€เจ•เจฟเจŠเจŸเฉ‡เจฌเจฒ เจซเจพเจˆเจฒ เจจเฉ‚เฉฐ เจธเจฟเจธเจŸเจฎ 32 เจซเฉ‹เจฒเจกเจฐ เจตเจฟเฉฑเจš เจ•เจพเจชเฉ€ เจ•เจฐเฉ‹
  2. เจฐเจœเจฟเจธเจŸเจฐเฉ€ เจฒเจˆ เจ‡เฉฑเจ• เจ•เฉเฉฐเจœเฉ€ เจธเจผเจพเจฎเจฒ เจ•เจฐเฉ‹
  3. เจฎเจธเจผเฉ€เจจ เจจเฉ‚เฉฐ เจฐเฉ€เจฌเฉ‚เจŸ เจ•เจฐเฉ‹

เจธเจนเฉ‚เจฒเจค เจฒเจˆ, เจ‡เฉฑเจฅเฉ‡ เจ‡เฉฑเจ• เจฎเฉ‚เจฒ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจจเฉ‚เฉฐ เจธเจฅเจพเจชเจฟเจค เจ•เจฐเจจ เจฒเจˆ เจ‡เฉฑเจ• เจคเจฟเจ†เจฐ เจธเจ•เฉเจฐเจฟเจชเจŸ เจนเฉˆ:

install.bat

@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

เจ‡เฉฐเจธเจŸเจพเจฒเฉ‡เจธเจผเจจ เจ…เจคเฉ‡ เจฐเฉ€เจฌเฉ‚เจŸ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ, เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจšเฉ‹เจฃ เจธเจ•เฉเจฐเฉ€เจจ เจฆเฉ‡ เจ†เจ‰เจฃ เจคเฉ‹เจ‚ เจชเจนเจฟเจฒเจพเจ‚ เจนเฉ€, เจธเจพเจจเฉ‚เฉฐ เจนเฉ‡เจ  เจฒเจฟเจ–เฉ€ เจคเจธเจตเฉ€เจฐ เจฎเจฟเจฒเฉ‡เจ—เฉ€:

เจตเจฟเฉฐเจกเฉ‹เจœเจผ เจจเฉ‡เจŸเจฟเจต เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจ…เจคเฉ‡ เจเจ•เฉเจฐเฉ‹เจจเจฟเจธ เจเจ•เจŸเจฟเจต เจฐเฉ€เจธเจŸเฉ‹เจฐ เจธเฉ‡เจตเจพ

เจจเจคเฉ€เจœเจพ

เจ…เจœเจฟเจนเฉ€ เจ›เฉ‹เจŸเฉ€ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจฆเฉ€ เจ‰เจฆเจพเจนเจฐเจฃ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเฉ‹เจ, เจธเจพเจจเฉ‚เฉฐ เจฏเจ•เฉ€เจจ เจนเฉ‹ เจ—เจฟเจ† เจธเฉ€ เจ•เจฟ เจตเจฟเฉฐเจกเฉ‹เจœเจผ เจจเฉ‡เจŸเจฟเจต เจชเฉฑเจงเจฐ 'เจคเฉ‡ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจจเฉ‚เฉฐ เจšเจฒเจพเจ‰เจฃเจพ เจ•เจพเจซเจผเฉ€ เจธเฉฐเจญเจต เจนเฉˆเฅค เจ…เฉฑเจ—เฉ‡, เจ‡เจจเฉ‹เจชเฉ‹เจฒเจฟเจธ เจฏเฉ‚เจจเฉ€เจตเจฐเจธเจฟเจŸเฉ€ เจฆเฉ‡ เจฎเฉเฉฐเจกเฉ‡ เจ…เจคเฉ‡ เจฎเฉˆเจ‚ เจ‡เฉฑเจ• เจธเฉ‡เจตเจพ เจฌเจฃเจพเจ‰เจฃเจพ เจœเจพเจฐเฉ€ เจฐเฉฑเจ–เจพเจ‚เจ—เฉ‡ เจœเฉ‹ เจธเจพเจกเฉ‡ เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจฆเฉ‡ เจชเจฟเจ›เจฒเฉ‡ เจธเฉฐเจธเจ•เจฐเจฃ เจจเจพเจฒเฉ‹เจ‚ เจฌเจนเฉเจค เจชเจนเจฟเจฒเจพเจ‚ เจกเจฐเจพเจˆเจตเจฐ เจจเจพเจฒ เจ—เฉฑเจฒเจฌเจพเจค เจฆเฉ€ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจธเจผเฉเจฐเฉ‚ เจ•เจฐเฉ‡เจ—เฉ€เฅค เจ…เจคเฉ‡ เจตเจฟเจจ 32 เจธเจผเฉˆเฉฑเจฒ เจฆเฉ‡ เจ†เจ—เจฎเจจ เจฆเฉ‡ เจจเจพเจฒ, เจจเจฟเจฏเฉฐเจคเจฐเจฃ เจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจชเฉ‚เจฐเฉ€ เจธเฉ‡เจตเจพ เจตเจฟเฉฑเจš เจคเจฌเจฆเฉ€เจฒ เจ•เจฐเจจเจพ เจฒเจพเจœเจผเฉ€เจ•เจฒ เจนเฉ‹เจตเฉ‡เจ—เจพ เจœเฉ‹ เจชเจนเจฟเจฒเจพเจ‚ เจนเฉ€ เจตเจฟเจ•เจธเจค เจ•เฉ€เจคเฉ€ เจœเจพ เจšเฉเฉฑเจ•เฉ€ เจนเฉˆ (เจ‡เจธ เจฌเจพเจฐเฉ‡ เจนเฉ‹เจฐ เจ‡เฉฑเจฅเฉ‡).

เจ…เจ—เจฒเฉ‡ เจฒเฉ‡เจ– เจตเจฟเฉฑเจš เจ…เจธเฉ€เจ‚ เจเจ•เจŸเจฟเจต เจฐเฉ€เจธเจŸเฉ‹เจฐ เจธเฉ‡เจตเจพ เจฆเฉ‡ เจ‡เฉฑเจ• เจนเฉ‹เจฐ เจนเจฟเฉฑเจธเฉ‡ เจจเฉ‚เฉฐ เจ›เฉ‚เจนเจพเจ‚เจ—เฉ‡, เจ…เจฐเจฅเจพเจค UEFI เจกเจฐเจพเจˆเจตเจฐเฅค เจธเจพเจกเฉ‡ เจฌเจฒเฉŒเจ— เจฆเฉ€ เจ—เจพเจนเจ•เฉ€ เจฒเจ“ เจคเจพเจ‚ เจœเฉ‹ เจคเฉเจธเฉ€เจ‚ เจ…เจ—เจฒเฉ€ เจชเฉ‹เจธเจŸ เจจเฉ‚เฉฐ เจจเจพ เจ–เฉเฉฐเจเฉ‹เฅค

เจธเจฐเฉ‹เจค: www.habr.com

เจ‡เฉฑเจ• เจŸเจฟเฉฑเจชเจฃเฉ€ เจœเฉ‹เฉœเฉ‹