cari
Rumahtutorial komputerpengetahuan komputerMari kita bincangkan tentang menggunakan mekanisme perlindungan halaman Windows untuk mengaitkan fungsi

Ringkasan

Guard Pages ialah mekanisme perlindungan memori dalam sistem pengendalian, digunakan untuk mengesan dan menghalang capaian haram kepada ingatan. Dalam sistem pengendalian Windows, Halaman Pengawal biasanya terletak di hujung halaman memori, yang biasanya tidak diperuntukkan atau tidak boleh diakses. Fungsi utama Guard Pages adalah untuk meningkatkan keselamatan sistem dan menghalang program berniat jahat atau ralat daripada mengakses memori, sekali gus melindungi sistem daripada potensi risiko dan kelemahan keselamatan. Dengan menggunakan Halaman Pengawal, sistem pengendalian boleh menemui dan menghalang operasi haram pada memori dengan segera, memastikan kestabilan dan keselamatan sistem.

Apabila program cuba mengakses Halaman Pengawal, sistem pengendalian akan segera mengenali dan mencetuskan pengecualian, biasanya pengecualian pelanggaran akses. Penjanaan pengecualian ini membantu program mengesan ralat capaian memori dalam masa, dan kemudian mengambil langkah yang sewajarnya, seperti menamatkan atur cara atau merekod maklumat ralat, untuk mengelakkan potensi kelemahan keselamatan daripada dieksploitasi. Dengan cara ini, sistem boleh mengekalkan kawalan ke atas akses memori dan memastikan kestabilan dan keselamatan operasi program. Tetapan Halaman Pengawal menyediakan sistem dengan mekanisme yang berkesan untuk memantau dan melindungi akses memori, supaya sebarang masalah yang berpotensi dapat ditemui dan ditangani dalam masa, sekali gus meningkatkan kestabilan dan keselamatan sistem. Melalui pencetusan pengecualian, program boleh bertindak balas dengan cepat apabila ralat berlaku, dengan berkesan menghalang masalah capaian memori yang boleh membawa kepada akibat yang serius.

Guard Pages digunakan secara meluas dalam Windows Hooking untuk memantau dan memintas akses kepada kawasan memori tertentu. Melalui teknologi ini, fungsi sistem boleh diubah suai atau dipantau, memberikan sokongan kukuh untuk bidang seperti penyahpepijatan perisian, penyelidikan keselamatan dan analisis perisian hasad. Halaman Pengawal menampilkan keupayaan untuk mengesan akses kepada memori yang dilindungi dan mencetuskan pengendali yang sesuai apabila akses berlaku. Mekanisme ini berguna untuk melindungi data atau kod kritikal daripada akses tanpa kebenaran dan potensi lubang keselamatan. Dengan mengkonfigurasi Halaman Pengawal dengan betul, anda boleh meningkatkan keselamatan dan kestabilan sistem serta memastikan sistem

Proses pelaksanaan

Kod keseluruhan adalah seperti berikut:

#include 
#include 

// Hook函数功能
HANDLE hook(LPSECURITY_ATTRIBUTES rcx, SIZE_T rdx, LPTHREAD_START_ROUTINE r8, LPVOID r9, DWORD stck1, LPDWORD stck2) {
MessageBoxA(0, "CreateThread() was called!", "YAY!", 0);
MessageBoxA(0, "Hooked CreateThread", "YAY!", 0);
// 这里调用原始CreateThread函数
//return CreateThread(rcx, rdx, r8, r9, stck1, stck2);
 return NULL;
}

LONG WINAPI handler(EXCEPTION_POINTERS * ExceptionInfo) {
 if (ExceptionInfo->ExceptionRecord->ExceptionCode == STATUS_GUARD_PAGE_VIOLATION) {
if (ExceptionInfo->ContextRecord->Rip == (DWORD64) &CreateThread) {
 printf("[!] Exception (%#llx)!" , ExceptionInfo->ExceptionRecord->ExceptionAddress);
printf("nClick a key to continue...n");
 getchar();
 ExceptionInfo->ContextRecord->Rip = (DWORD64) &hook;
printf("Modified RIP Points to: %#llxn", ExceptionInfo->ContextRecord->Rip);
printf("Hook Function = %#llxn", (DWORD64) &hook);
}
return EXCEPTION_CONTINUE_EXECUTION;
 }
 return EXCEPTION_CONTINUE_SEARCH;
}

int main() {
 DWORD old = 0;
DWORD param = 5000;
 AddVectoredExceptionHandler(1, &handler);
 VirtualProtect(&CreateThread, 1, PAGE_EXECUTE_READ | PAGE_GUARD, &old);
 printf("CreateThread addr = %#pn", &CreateThread);
 
 HANDLE hThread = CreateThread(0, 0, (LPTHREAD_START_ROUTINE) &Sleep, ¶m, 0, 0);
 WaitForSingleObject(hThread, param);
 printf("YEP!n");

 return 0;
}

Bahagian fail pengepala:

Kod bermula dengan memasukkan fail pengepala yang diperlukan, termasuk dan , yang masing-masing menyediakan fungsi dan definisi untuk API Windows dan operasi I/O standard.

Fungsi cangkuk:

Kod ini mentakrifkan cangkuk fungsi cangkuk, yang digunakan untuk memintas fungsi API CreateThread yang mencipta benang dalam aplikasi Windows. Di dalam fungsi cangkuk, dua kotak mesej dipaparkan untuk menggesa panggilan fungsi CreateThread dan menunjukkan bahawa ia telah disambungkan. Perlu diingatkan bahawa dalam kod ini, fungsi CreateThread asal sebenarnya tidak dipanggil, tetapi dipintas.

Pengendalian pengecualian

Tentukan fungsi pengendali dan tetapkannya sebagai pengendali pengecualian menggunakan AddVectoredExceptionHandler Fungsi ini direka bentuk untuk mengendalikan pengecualian, khususnya STATUS_GUARD_PAGE_VIOLATION, yang merupakan pengecualian yang berlaku apabila cuba melaksanakan kod pada halaman memori yang dilindungi. Jika kod pengecualian ialah STATUS_GUARD_PAGE_VIOLATION dan penunjuk arahan (Rip) menghala ke fungsi CreateThread, ia akan memaparkan mesej dan mengubah suai Rip untuk menghala ke fungsi cangkuk. Sebarang percubaan untuk memanggil fungsi CreateThread akan diubah hala ke fungsi cangkuk.

Fungsi utama

Di dalam fungsi utama, pembolehubah lama diisytiharkan tetapi tidak digunakan. Pembolehubah param ditetapkan kepada 5000 dan fungsi AddVectoredExceptionHandler dipanggil untuk mendaftarkan fungsi pengendali sebagai pengendali pengecualian. Gunakan VirtualProtect untuk menyediakan halaman pengawal pada fungsi CreateThread. Ini akan mencetuskan fungsi pengendali jika anda cuba melaksanakannya. Menggunakan printf menunjukkan alamat fungsi CreateThread. Satu utas baharu dicipta menggunakan CreateThread, tetapi itu nampaknya tidak memberi sebarang tujuan sebenar kerana utas itu hanya tidur selama 5000 milisaat. Selepas menunggu benang tamat, cetak "YEP!".

Ujian

Kompilkan kod dan laksanakannya, kesannya adalah seperti berikut:

Mari kita bincangkan tentang menggunakan mekanisme perlindungan halaman Windows untuk mengaitkan fungsi

Gambar

Atas ialah kandungan terperinci Mari kita bincangkan tentang menggunakan mekanisme perlindungan halaman Windows untuk mengaitkan fungsi. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan
Artikel ini dikembalikan pada:每日运维. Jika ada pelanggaran, sila hubungi admin@php.cn Padam
Memperbaiki untuk ExpressVPN tidak menyambung pada Windows PC/Mac/iPhone - MINITOOLMemperbaiki untuk ExpressVPN tidak menyambung pada Windows PC/Mac/iPhone - MINITOOLMay 01, 2025 am 12:51 AM

Adakah ExpressVPN tidak menyambung pada iPhone, Android Phone, Mac, atau Windows PC? Apa yang perlu anda lakukan jika ExpressVPN tidak akan menyambung atau berfungsi? Ambil mudah dan pergi mencari penyelesaian dari jawatan ini. Di sini, php.cn mengumpul pelbagai cara untuk menyelesaikan isu internet ini.

Penyelesaian yang disasarkan untuk penggunaan GPU 100% pada Windows 10/11Penyelesaian yang disasarkan untuk penggunaan GPU 100% pada Windows 10/11May 01, 2025 am 12:50 AM

Adakah penggunaan GPU 100% buruk? Bagaimana untuk memperbaiki penggunaan GPU 100% di Windows 10? Jangan risau. Laman web php.cn menyediakan anda dengan artikel ini untuk menyelesaikan masalah GPU yang tinggi. Kaedah tersebut patut dicuba jika anda menjalani penggunaan GPU 100%.

Cara Muat turun/Pasang/Tambah/Keluarkan/Lumpuhkan Add -Ins Dalam Word - MinitoolCara Muat turun/Pasang/Tambah/Keluarkan/Lumpuhkan Add -Ins Dalam Word - MinitoolMay 01, 2025 am 12:49 AM

Anda boleh menggunakan Add-Ins dalam Microsoft Word untuk mendapatkan lebih banyak ciri. Siaran ini memperkenalkan cara memuat turun, memasang, menambah atau membuang add-in dalam Microsoft Word. Kaedah pemulihan fail percuma juga disediakan untuk membantu anda memulihkan perkataan yang dipadam/hilang atau sebarang fail lain.

Betulkan kod ralat sandaran sistem 0x807800A1 & 0x800423f3 - MINITOOLBetulkan kod ralat sandaran sistem 0x807800A1 & 0x800423f3 - MINITOOLMay 01, 2025 am 12:48 AM

Sesetengah orang mendapati kod ralat sandaran sistem 0x807800A1 & 0x800423F3 apabila mereka cuba membuat sandaran sistem. Kod ini akan menghalang anda daripada melakukan tugas sandaran. Jangan risau! Artikel ini di laman web php.cn akan mengajar anda cara membetulkannya

Windows 10 Enterprise ISO Muat turun/Pasang, Panduan Mudah Untuk BelajarWindows 10 Enterprise ISO Muat turun/Pasang, Panduan Mudah Untuk BelajarMay 01, 2025 am 12:47 AM

Mahu mendapatkan fail ISO Windows 10 Enterprise untuk memasangnya untuk penggunaan perniagaan? Windows 10 Enterprise ISO Download & Install adalah mudah dan php.cn akan menunjukkan kepada anda cara memuat turun Windows 10 Enterprise ISO 20H2, 21H1, atau 21H2 melalui beberapa downlo langsung

Nordvpn tidak berfungsi pada windows 11: inilah pembetulan mudah - minitoolNordvpn tidak berfungsi pada windows 11: inilah pembetulan mudah - minitoolMay 01, 2025 am 12:46 AM

Nordvpn tidak menyambung atau mengusahakan komputer Windows 11 anda? Adakah anda tahu sebab -sebab masalah ini? Sekiranya anda ingin menyelesaikan masalah ini, adakah anda tahu apa yang harus anda lakukan? Jika anda tidak tahu, anda datang ke tempat yang betul. Dalam siaran ini, perisian php.cn

Adakah Twitter turun? Bagaimana untuk memeriksanya? Bagaimana untuk memperbaikinya? Baca siaran ini! - MinitoolAdakah Twitter turun? Bagaimana untuk memeriksanya? Bagaimana untuk memperbaikinya? Baca siaran ini! - MinitoolMay 01, 2025 am 12:45 AM

Pada masa kini, Twitter menjadi semakin popular di seluruh dunia. Walau bagaimanapun, kadang -kadang anda mungkin mendapati ia tidak berfungsi dengan baik. Adakah Twitter turun? Bagaimana untuk memeriksanya? Bagaimana untuk memperbaikinya? Siaran ini dari Php.CN memberikan butiran untuk anda.

Tarikh Siaran Redfall, Treler, Pra -Pesanan, dan Berita Terkini - MinitoolTarikh Siaran Redfall, Treler, Pra -Pesanan, dan Berita Terkini - MinitoolMay 01, 2025 am 12:44 AM

Bilakah Redfall datang ke Pasar? Peminat Redfall tidak sabar untuk mencuba permainan ini. Nasib baik, tarikh pelepasan telah dijelaskan dan maklumat lanjut yang kami tahu mengenai Redfall akan didedahkan dalam artikel ini di laman web php.cn, jadi jika anda berminat,

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

MantisBT

MantisBT

Mantis ialah alat pengesan kecacatan berasaskan web yang mudah digunakan yang direka untuk membantu dalam pengesanan kecacatan produk. Ia memerlukan PHP, MySQL dan pelayan web. Lihat perkhidmatan demo dan pengehosan kami.

mPDF

mPDF

mPDF ialah perpustakaan PHP yang boleh menjana fail PDF daripada HTML yang dikodkan UTF-8. Pengarang asal, Ian Back, menulis mPDF untuk mengeluarkan fail PDF "dengan cepat" dari tapak webnya dan mengendalikan bahasa yang berbeza. Ia lebih perlahan dan menghasilkan fail yang lebih besar apabila menggunakan fon Unicode daripada skrip asal seperti HTML2FPDF, tetapi menyokong gaya CSS dsb. dan mempunyai banyak peningkatan. Menyokong hampir semua bahasa, termasuk RTL (Arab dan Ibrani) dan CJK (Cina, Jepun dan Korea). Menyokong elemen peringkat blok bersarang (seperti P, DIV),

Versi Mac WebStorm

Versi Mac WebStorm

Alat pembangunan JavaScript yang berguna

VSCode Windows 64-bit Muat Turun

VSCode Windows 64-bit Muat Turun

Editor IDE percuma dan berkuasa yang dilancarkan oleh Microsoft