Bagikan melalui


Menggunakan Fungsi String Aman

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 baru fungsi manipulasi string, 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 Windows SDK. Mereka dimaksudkan untuk menggantikan rekan-rekan C/C++ bawaan mereka dan rutinitas serupa yang disediakan oleh Windows.

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

Set fungsi string aman lainnya adalah untuk digunakan dalam aplikasi mode pengguna. File header yang sesuai, Strsafe.h, berisi prototipe untuk fungsi-fungsi ini. File tersebut dan pustaka terkait tersedia di Windows SDK. 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 berikut:

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

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

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

  • Sebagian besar fungsi string aman tersedia dalam versi yang dihitung byte dan 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-akhiran yang diperluas yang menyediakan fungsionalitas tambahan. Misalnya, RtlStringCbCatExa memperluas fungsionalitas RtlStringCbCata.

Bagian ini mencakup topik-topik berikut:

Ringkasan Fungsi String Aman Kernel-Mode

Mengimpor Fungsi String Aman Kernel-Mode