Menggunakan Fungsi String Brankas

Banyak masalah keamanan sistem disebabkan oleh penanganan buffer yang buruk dan overrun buffer yang dihasilkan. Penanganan buffer yang buruk sering dikaitkan dengan operasi manipulasi string. Fungsi manipulasi string standar yang disediakan oleh pustaka runtime bahasa C / C ++ (strcat, strcpy, sprintf, dan sebagainya) tidak mencegah penulisan di luar akhir buffer.

Dua set fungsi manipulasi string baru, yang disebut fungsi string aman, menyediakan pemrosesan tambahan untuk penanganan buffer yang tepat dalam kode Anda. Fungsi string aman ini tersedia di Windows Driver Kit (WDK) dan untuk Microsoft Windows XP SP1 dan versi yang lebih baru dari Driver Development Kit (DDK) dan SDK Windows. Mereka dimaksudkan untuk menggantikan rekan-rekan C / C ++ bawaan mereka dan rutinitas serupa yang disediakan oleh Windows.

Satu set fungsi string aman untuk digunakan dalam kode mode kernel. Fungsi-fungsi ini dibuat prototipe dalam file header bernama Ntstrsafe.h. File header ini dan pustaka terkait tersedia di WDK.

Set lain dari fungsi string aman adalah untuk digunakan dalam aplikasi user-mode. File header yang sesuai, Strsafe.h, berisi prototipe untuk fungsi-fungsi ini. File itu dan pustaka terkait tersedia di SDK Windows. Untuk informasi selengkapnya tentang Strsafe.h, lihat Menggunakan Fungsi Strsafe.h.

Kumpulan fungsi string aman mode kernel terdiri dari dua subset berikut:

Fungsi string aman mode kernel menyediakan fitur-fitur berikut:

  • Setiap fungsi string aman menerima ukuran buffer tujuan sebagai input. Fungsi ini dapat memastikan bahwa ia tidak menulis melewati akhir buffer.

  • Fungsi string Unicode dan ANSI mengakhiri semua string output dengan karakter NULL, bahkan jika operasi memotong hasil yang diinginkan.

  • Semua fungsi string aman mengembalikan nilai NTSTATUS, dengan hanya satu kode keberhasilan yang mungkin (STATUS_SUCCESS).

  • Sebagian besar fungsi string aman tersedia dalam versi yang dihitung byte dan yang dihitung karakter. Misalnya, RtlStringCbCata menggabungkan dua string yang dihitung byte dan RtlStringCchCata menggabungkan dua string yang dihitung karakter.

  • Sebagian besar fungsi string aman tersedia dalam versi Ex-suffixed yang diperluas yang menyediakan fungsionalitas tambahan. Misalnya, RtlStringCbCatExa memperluas fungsionalitas RtlStringCbCata.

Bagian ini mencakup topik-topik berikut:

Ringkasan Fungsi string Kernel-Mode Brankas

Mengimpor Fungsi string Kernel-Mode Brankas