介紹通用Hook的一點思想

2021-04-12 12:17:10 字數 1458 閱讀 7350

#ifdef __cplusplus

extern "c" ;

char orgcode [5];

char outbuf[128][16];

int count = 0;

ulong orgcr0;

#ifdef __cplusplus

}#endif

void disablewriteprotect( pulong poldattr)

;*poldattr = uattr; //儲存原有的 cro 屬性

}void enablewriteprotect( ulong uoldattr );}

ntstatus driverentry(in pdriver_object pdriverobject, in punicode_string registrypath)

status = iocreatesymboliclink (&devlinkunicd, &devnameunicd);

if( !nt_success(status))

pdriverobject->driverunload  = driverunload;

pdriverobject->majorfunction[irp_mj_create] =

pdriverobject->majorfunction[irp_mj_close] =

pdriverobject->majorfunction[irp_mj_device_control] =    deviceiocontroldispatch;

pdriverobject->driverunload = driverunload;

* ( (ulong*) (jmpmycode+1) ) = (ulong)func - (ulong)orgdestfunction - 5;

memcpy(orgcode,(char*)orgdestfunction,5);

hookdestfunction();

return status_success;

}void driverunload (in pdriver_object pdriverobject)

iodeletedevice( pdriverobject->deviceobject );}}

void displayname(pkthread thread)

void cfunc (void)

resumedestfunction();

if ( pkheader != 0 && count < 128 )

}void hookdestfunction()

void resumedestfunction()

ntstatus deviceiocontroldispatch(

in  pdevice_object  deviceobject,

in  pirp            pirp

)while(1)

對於HOOK函式的一點認識

首先讓我們看看hook函式是怎麼安裝 呼叫和刪除的。應用程式通常是呼叫setwindowshookex 函式來進行安裝的,其函式的原型如下 setwindowshookex int idhook hookproc lpfn hinstance hmod dword dwthreadid 引數說明 i...

關於Hook技術的一點心得

1.基本思想,對程式中的api進行重定向!例如對loadlibrarya進行hook,基本思路如下 0x12345678 call loadlibrary 0x12345678 call myloadlibrary 2.實現中的一些具體問題,如何在一個程序中對另外一個程序的api進行修改?這其中包含...

關於程式設計思想的一點思考

計算機發展了幾十年了,其中的技術層出不窮,令人眼花繚亂,而且每種技術還在不斷更新迭代中,讓人心煩。這篇文章是關於 我在這飛速發展中探索的思考。一 計算機硬體 底層硬體,其工作原理是支撐龐大系統軟體的基礎,底層基礎決定上層建築。電平的高和低,構成0和1 對0和1順序排列規定,實現數的二進位制表示 規定...

一點關於GridLayout的介紹

也許鮮有人聽說girdlayout,但它還是存在的。圖中被我用線圈起來的部分,我相信不少人用的方法是一個縱向的linearlayout,裡面套兩個橫向的linearlayout,然後在裡面放上四個控制元件,寬度用weight適配。沒毛病。可是老鐵,你就從來沒有想過減少一下佈局的層級嗎?早在andro...

關於編寫通用指令碼驗證的一點思路

想寫一個比較通用的提交表單時的指令碼驗證程式,因為一個個的編寫每個欄位的驗證實在是太麻煩了,昨天花了兩個小時想了一下,感覺一個通用的驗證應該有如下特點 1 不應該和 有任何關聯,例如通過向表單元素上增加自己的屬性,這樣會使html 可讀性降低。如果使用伺服器端tag 如struts的html標籤 可...