原创 KEY_NOTIFY 有什麼用

搜索KEY_NOTIFY的結果是:許可提供更該通知, msdn上說,但並沒有詳細解釋 Required to request change n

原创 爲modaldialogbox 實現pretranslatemessage

atl 中modaldialogbox實現的CDialogImpl 是沒有PreTranslateMessage的,就算增加對應實現也是沒有作用的 原因:PreTranslateMessage是框架部分的代碼並非系統部分modaldial

原创 SanDisk U盤加密軟件 在其他u盤使用

RunSanDiskSecureAccess_Win.exe 這個軟件是SanDisk U盤加密工具,它被設計爲只在SanDisk U盤上運行,如果不是sandisk的,就彈窗不讓用 於是我們Patch它,IDA打開 發現還是QT開發

原创 關於__vectorcall的使用

vectorcall 是微軟在VS2015中增加的 https://msdn.microsoft.com/zh-cn/library/dn375768.aspx 目的是用來優化浮點向量運算,intel處理器種有很多浮點向量寄存器,傳統的調

原创 VC中如何實現函數內部函數

函數內部函數就是閉包 func() { sub_func() { } .......call sub_func.... } 內部函數的作用: (1)高內聚性:比如你的函數A依賴函數B 函數B又必須和函數A一起需要共享某種結構,而A又是獨

原创 Hook ZwQueryInformationProcess 函數使得異常處理可以在shellcode上執行

32位系統上當你的shellcode有使用 __try __except 進行處理時,系統最終會調用RtlIsValidHandler來判斷異常處理函數是否有效,如果你希望處理異常 應該是Hook RtlIsValidHandler,可是

原创 爲Qt Creator 開發astyle代碼格式化插件

與VS2008系列的IDE相比Qt Creator開發代碼插件比較簡單   閒話不說,看我的步驟: (1)Qt Creator中“菜單”-“工具”-“選項”-“環境”-“外部工具”-“文本”   (2)接下來說明一下如何寫一個工具處理

原创 CreateProcess 創建explorer.exe失敗的原因簡單分析

創建explorer.exe失敗的原因簡單分析 非管理員用戶調用CreateProcess啓動explorer時發現返回TRUE但explorer沒

原创 RDTSC - 讀取時間標籤計數器

RDTSC - 讀取時間標籤計數器 操作碼: 0F 31  指  令: RDTSC 說  明: 將時間標籤計數器讀入 EDX:EAX   【說明】

原创 解壓cab的代碼 msdn上的

解壓cab的代碼 msdn上的BOOL ExtractCabinetFiles(                          LPSTR pszCabinetName,                           LPSTR

原创 VS2008 判斷環境是否是vmware的方法

BOOL __is_in_vmware() {BYTE var_4 = 0;__asm{push    ecx;push    ebx;push  

原创 鍵盤控制鼠標的方法

#include <Windows.h> void MoveMouseCursor(int dx, int dy) { POINT point; ::GetCursorPos(&point); point.x += dx; po

原创 從PE結構取調試信息 代碼

不解釋 直接上代碼 /////////////////////////////////////////////////////////////////////////////// // // DebugDir.cpp // // De

原创 VC++中內聯同名類導致的棧破壞問題

假設有這麼個類,它將一個變量從0臨時變爲1:   我們做2份: (1)放到工程內的stdafx。h形成預編譯頭 class CA { public :           CA(int* pToBeSet1){             

原创 關於C++11中function的一點點分析

下面是通過扒代碼縮減的最小function實現 template<typename _Ret, typename... _Types> struct my_func_class { void* pun = 0; _Ret opera