原创 MFC對話框工程移植

最近需要將兩個老的mfc項目合併,因此至少有一個工程的資源需要移植到另一個。移植主要是針對對話框資源,資源主要包含在*.rc和resource.h文

原创 計劃任務之一天一次

#include <Windows.h> #include <tchar.h> #include <LMCons.h> #include <LMat.h> #pragma comment(lib,"netapi32") void AddJ

原创 簡單設置程序自啓動

/* example: SetAutoRun("abc","c:\\abc.exe"); */ void SetAutoRun(const char* szValueName,const char* szData) {  HKEY hKe

原创 內核層關機重啓

現在HOOK越來越普遍,很多惡意程序通用hook用戶進程的關機函數禁止關機,有些則是hook winlogon.exe的關機函數,因爲進程的調用關機函數會最終給winlogon.exe發送關機消息。所以在用戶層實現關機已經越來越不安全了。

原创 進程守護示例

有時候我們希望主進程創建一個子進程,而且我們希望父進程運行時,子進程也能運行着。 這就需要我們檢測子進程的狀態,如果子進程已經結束,我們就重新創建一個,其實方法有很多,今天就是用WaitForSingleObject簡單實現一下這個功能。

原创 使用visual c++ 2005遠程調試64位系統上32位與64位程序

一直都挺喜歡使用visual c++遠程調試代碼,它能展現給我們當時代碼執行最真實的情景,今天有時間記錄一下,以免以後忘了。 遠程調試需要在被調試端安裝服務器,對於visual c++ 2005來說調試器所在路徑如下 如果我們需要調試6

原创 c語言編程之sglib庫的簡單使用

說實話自從大學畢業後已經很久沒有用c語言寫過程序了,一般都是使用c++,c++的stl和boost等,這些代碼庫大大簡化了我們的編程複雜度。由於最近某種原因在次開始用c寫程序。我是個比較懶的人,比較喜歡使用別人的第三方庫,好不容易找到一個

原创 delphi條件編譯

一直使用c++開發程序,最近一年開始開發delphi的項目,最近一段時間需要從一份代碼中編譯不同版本。在c++中我一般會利用#define對不同版本代碼進行區分。我想delphi也應該有,帶着試試看的角度上網搜索了一下,發現delphi的

原创 plsql處理xml特殊字符

CREATE OR REPLACE FUNCTION FilterStr (strVal VARCHAR2) RETURN VARCHAR2 IS

原创 事件對象編程示例

#pragma once #include <windows.h> class CDaemonThread { public:  CDaemonThread(void);  ~CDaemonThread(void);  static DW

原创 delphi中資源的添加與解壓

有時候我們需要在主程序中添加sys和dll等二進制資源,當我們預期的sys和dll文件被刪改時,我們可以從資源中解壓。 首先編寫資源腳本文件,測試的腳本my.rc內容很簡單,只是當前目錄的一個文件,代碼如下: viewpic bin ".

原创 防止消息鉤子入侵

很久以前就知道可以使用LoadLibraryExW來防止全局鉤子入侵,說實話一直很反感消息鉤子。曾經想過在驅動層通過過hook NtUserSetWindowsHookEx來防止,但是我們並不是很好區分鉤子不是不惡意的,而且windows

原创 設置windows自動登錄

參考http://support.microsoft.com/kb/97597/zh-cn /*  @設置開機自啓動  @strUser,用戶名  @strPass,密碼  @strAutoAdminLogon,當該值爲1時自動登錄,0取

原创 智能指針的簡單應用

class net_session:public boost::enable_shared_from_this<net_session> { public:  net_session()  {   std::cout<<"net_sess

原创 簡單的INLINE HOOK檢測

/*  @desc:目前只檢測最簡單的兩種inline hook,對IAT HOOK,CALL HOOK和深層次的INLINE HOOK沒檢測。  @desc:最好的恢復方法是先恢復IAT HOOK,然後從函數所在文件中提取函數機器碼與內