Bagikan melalui


File Metadata untuk Plug-in Ekstensi Analisis

Saat Anda menulis plug-in ekstensi analisis, Anda juga menulis file metadata yang menjelaskan situasi di mana Anda ingin plug-in Anda dipanggil. Ketika perintah !analyze debugger berjalan, perintah ini menggunakan file metadata untuk menentukan plug-in mana yang akan dimuat.

Buat file metadata yang memiliki nama yang sama dengan plug-in ekstensi analisis Anda dan ekstensi .alz. Misalnya, jika plug-in ekstensi analisis Anda diberi nama MyAnalyzer.dll, file metadata Anda harus diberi nama MyAnalyzer.alz. Tempatkan file metadata di direktori yang sama dengan plug-in ekstensi analisis Anda.

File metadata untuk plug-in ekstensi analisis adalah file teks ASCII yang berisi pasangan kunci-nilai. Kunci dan nilai dipisahkan oleh spasi kosong. Kunci dapat memiliki karakter non-spasi kosong. Kunci tidak peka huruf besar/kecil.

Setelah kunci dan spasi kosong berikut, nilai yang sesuai dimulai. Nilai dapat memiliki salah satu formulir berikut.

  • Setiap set karakter ke akhir baris. Formulir ini berfungsi untuk nilai yang tidak berisi karakter baris baru.

    Penting Jika nilai terakhir dalam file metadata memiliki nilai formulir ini, baris harus diakhir dengan karakter baris baru.

  • Setiap set karakter di antara tanda kurung kurawal { }. Formulir berfungsi untuk nilai yang berisi karakter baris baru.

Baris yang dimulai dengan # adalah komentar dan diabaikan. Komentar hanya dapat dimulai di mana kunci diharapkan.

Anda dapat menggunakan kunci berikut dalam file metadata.

Kunci Deskripsi
PluginId String - Mengidentifikasi plug-in.
DebuggeeClass String - Nilai yang mungkin adalah "Kernel" dan "Pengguna". Menunjukkan bahwa plug-in hanya tertarik untuk menganalisis kegagalan mode kernel atau hanya kegagalan mode pengguna.
BugCheckCode Kode pemeriksaan bug 32-bit - Menunjukkan bahwa plug-in tertarik untuk menganalisis kode pemeriksaan bug ini. Satu file metadata dapat menentukan beberapa kode pemeriksaan bug.
ExceptionCode Kode pengecualian 32-bit - Menunjukkan bahwa plug-in tertarik untuk menganalisis kode pengecualian ini. Satu file metadata dapat menentukan beberapa kode pengecualian.
ExecutableName String - Menunjukkan bahwa plug-in hanya tertarik pada sesi di mana ini adalah executable proses yang berjalan untuk dianalisis. Satu file metadata dapat menentukan beberapa nama yang dapat dieksekusi.
ImageName String - Menunjukkan bahwa plug-in hanya tertarik pada sesi di mana analisis default menganggap gambar ini (dll, sys, atau exe) salah. Plug-in dipanggil setelah analisis menentukan gambar mana yang salah. Satu file metadata dapat menentukan beberapa nama gambar.
MaxTagCount Bilangan bulat - Jumlah maksimum tag kustom yang dibutuhkan plug-in. Tag kustom adalah tag selain yang ditentukan dalam extsfns.h.

Contoh File Metadata

File metadata berikut menjelaskan plug-in yang tertarik untuk menganalisis kode pemeriksaan bug 0xE2. (Ingat bahwa baris terakhir harus diakhir dengan karakter baris baru.)

PluginId      MyPlugin
DebuggeeClass Kernel
BugCheckCode  0xE2

File metadata berikut menjelaskan plug-in yang tertarik untuk menganalisis pemeriksaan bug 0x8, 0x9, dan 0xA jika MyDriver.sys dianggap sebagai modul karena kesalahan.

PluginId      MyPlugin
DebuggeeClass Kernel
BugCheckCode  0x8
BugCheckCode  0x9
BugCheckCode  0xA
ImageName     MyDriver.sys

File metadata berikut menjelaskan plug-in yang tertarik untuk menganalisis kode pengecualian 0xC0000005 jika MyApp.exe adalah proses yang dapat dieksekusi yang sedang dianalisis. Selain itu, plug-in mungkin membuat sebanyak tiga tag kustom.

PluginId        MyPlugin
DebuggeeClass   User
ExceptionCode   0xC0000005
ExecutableName  MyApp.exe

Alat Debugging untuk Windows memiliki sampel yang dapat Anda gunakan untuk membangun modul ekstensi debugger bernama dbgexts.dll. Modul ekstensi ini menerapkan beberapa perintah ekstensi debugger, tetapi juga dapat berfungsi sebagai plug-in ekstensi analisis; yaitu, mengekspor fungsi _EFN_Analyze . Berikut adalah file metadata yang menjelaskan dbgexts.dll sebagai plug-in ekstensi analisis.

PluginId         PluginSample
DebuggeeClass   User
ExceptionCode   0xc0000005
ExecutableName      cdb.exe
ExecutableName      windbg.exe
#
# Custom tag descriptions 
#
TagDesc         0xA0000000  SAMPLE_PLUGIN_DEBUG_TEXT    {Sample debug help text from plug-in analysis}
#

Lihat juga

Menulis Plug-in Ekstensi Analisis untuk Memperluas !analyze

_EFN_Analyze

!Menganalisis