此為本人學習、無聊研究用,為了要備份文章,所以才發在這裡。
作者介紹:
名叫Vxk
又名為killvxk
看雪學院的ID叫cvcvxk
是國內外都很著名的Windows內核開發高手。
十年前活躍於國內著名病毒技術論壇CVC,是中國大陸知名的病毒技術專家。
對操作系統內核以及編程,逆向, 非常精通。
被很多人稱為:技術全能專家。
曾出現在網絡流傳的所謂的“頂級黑客名單”上。
經常活躍在國內外各大知名內核開發論壇,
連老外也經常提及老V這樣的稱呼。
發表很多技術文章,公開了不少經典的內核代碼程序,並帶領了很多內核開發新手。
作者在網路上的ID:中國大陸-看雪學院-cvcvxk
文章版權所有人:看雪學院-cvcvxk
------------正文開始------------
第二篇中談到了對純CALL的輔助軟件的一種檢測手段,索性接著亂談這種輔助的檢測手段。
不過這裡談談暗樁模式的檢測,堆棧遍歷逐層找返回的EIP相信很多人都會。
不過在某些Call的地方插入下面這樣的代碼,比如游戲邏輯的發包call的加密call裡面
於是悲情又出來了~- WCHAR wzCallerName[MAX_PATH];
- PVOID dwRetArray[62];
- DWORD dwRetCount;
- BOOL bNeedLogStack = TRUE;
- dwRetCount = RtlCaptureStackBackTrace(2,50,dwRetArray,0);//用api是不好的,可以自己實現的說~~
- if (dwRetCount)
- {
- for(DWORD xIndex=0;xIndex<dwRetCount;xIndex++)
- {
- if (CheckExcepAddr((DWORD)dwRetArray[xIndex]))//排除部分白地址
- {
- bNeedLogStack = FALSE;
- break;
- }
- }
- if (bNeedLogStack)
- {
- for(DWORD xIndex=0;xIndex<dwRetCount;xIndex++)
- {
- GetCallerModule((DWORD)dwRetArray[xIndex],wzCallerName);//獲取地址模塊名稱
- ReportToSrv((DWORD)dwRetArray[xIndex],xIndex,wzCallerName);//把信息寫入定時返回服務器的數據體裡,嘿嘿~
- }
- }
- }
複製代碼 第三篇內容就這些吧,還有幾個有意思的偵測和暗樁的手法...等等繼續講~~
|