原创 自己寫的API鉤子注入QQ進程後導致QQ無法登錄

      今天在客戶那裏安裝我們的產品,結果發現QQ啓動後登錄不了,後來去掉我們的鉤子後又正常了,有時候關掉QQ進程,再打開一次就正常了。還不明白

原创 EasyHook遠程代碼注入

    最近一段時間由於使用MinHook的API掛鉤不穩定,經常因爲掛鉤地址錯誤而導致宿主進程崩潰。聽同事介紹了一款智能強大的掛鉤引擎EasyHook。它比微軟的detours好的一點是它的x64注入支持是免費開源的。不想微軟的deto

原创 [Win32]獲取指定進程的父進程PID

// // #include <Windows.h> #include <winnt.h> #include <winternl.h> typedef NTSTATUS (__stdcall * NTQUERYINFORMATIONP

原创 金山界面庫BkWin可視化設計的一種解決方案

從以前的開發模式說起 以前我在公司做界面開發的時候使用的是前任工程師留下的一個BkWin的工程模板來進行界面修改。那時候無論是界面的XML文件、資源文件中的各種包含關係都得自己一個字一個字打出來。更甚至工程模板在編譯過程中會出現R

原创 [Windows驅動開發](三)基礎知識——驅動例程

一、NT式驅動的基本例程 1. 驅動入口函數——DriverEntry // 驅動程序的一般性定義 NTSTATUS DriverEntry(IN PDRIVER_OBJECT pDriverObject, IN PUNICODE_

原创 雙機調試用戶態應用程序

    我在本地調試API鉤子的時候經常遇到調試到一半機器就卡死了,我懷疑是不是因爲鉤子導致的鎖死問題。所以考慮到這樣決定使用雙機調試。網上查了一下雙機調試的方法,是主要有兩種:VS2005雙機調試、Windbg雙機調試。從配置方法上講V

原创 Windows文件系統過濾驅動中打開文件時如何避免重入

調用下面的函數可以避免在打開回調中打開新的文件的時候引起重入 NTSTATUS IoCreateFileSpecifyDeviceObjectHint( __out PHANDLE FileHandle, __in

原创 簡單判斷系統是否是Windows 64位

#include "stdafx.h" #include <windows.h> #include <iostream> using namespace std; int _tmain(int argc, _TCHAR* argv

原创 關於VC出現 0x0C150002 錯誤的原因以及解決方案

情景重現        2013年7月29日,我在Windows 7 x86 SP1中文專業版系統環境下使用Visual Studio 2005 SP1中文版編寫應用程序。        編寫完成後在Windows 7 x64 英文旗

原创 如何解決Windows操作系統出現USB存儲設備驅動安裝不上的問題

我自己是遇到了這樣的問題,非常蛋疼....搞了好久,又是刪註冊表,又是上網找素材,沒一個有用。最後還是自己搞懂了.....由於USB大容量儲存設備數據設備類型中的UsbStor類型。我的設備是能正確識別到名稱的,但是就是不能生成大容量存儲

原创 [Win32]獲取QQ密碼輸入框所屬進程ID

這個得分32位和64位系統。由於QQ的保護驅動掛鉤了NtOpenProcess,因此在32位下無法在用戶態通過獲取QQ加載模塊來判斷是否是登陸框。 先來64位的: BOOL IsQQPasswordProcessInWow64(__i

原创 DLL遠程注入代碼

BOOL RtlFileExists(WCHAR* InPath) { HANDLE hFile; if((hFile = CreateFileW(InPath, 0, FILE_SHARE_READ | FILE_SH

原创 遍歷Windows系統的內核模塊

    自己做了一個工具需要遍歷Windows系統加載的內核模塊信息,網上查了一些都是用Zwxxx內核函數來做。後來發現完全沒必要...     直接上代碼: #include <windows.h> #include <psapi.h>

原创 ARP欺騙源代碼(基於WinPcap實現)

//ArpCheat.h #ifndef MY_ARP_CHEAT_INCLUDE_H #define MY_ARP_CHEAT_INCLUDE_H //字節對齊必須是1 #pragma pack (1) struct et

原创 [Windows驅動開發](二)基礎知識——數據結構

    本節主要介紹驅動開發的一些基礎知識。     1. 驅動程序的基本組成         1.1. 最經常見到的數據結構                a. DRIVER_OBJECT驅動對象 // WDK中對驅動對象的定義 //