原创 監視系統中進程的創建和終止

//write by jingzhongrong 最近在論壇上看到很多人都在問這個問題,花了一些時間寫了這個程序,原理很簡單,主要功能通過一個內核驅動中使用PsSetCreateProcessNotifyRoutine 函數來實現。效果也

原创 可執行文件的捆綁和分離

多個文件的捆綁,爲了實現上述功能,可以將主程序中加入分解功能,或者使用一個自解壓的控制程序來進行文件的分解。下面以一個自解壓控制程序來說明問題: 捆綁之後的程序結構如下所示:   自解壓控制程序 文件原始信息1 文件原始內容1

原创 兩種自動檢測USB設備的添加和移除的方法

By jingzhongrong 今天看到一篇文章裏面說到的檢測U盤插入的方法 文章中使用的是用循環不停檢測系統盤符的變化,然後根據盤符對應的類型來判      斷。                                    

原创 用戶態枚舉進程的幾種方法

最近在準備一個進程查看(當然不只進程查看功能了)的工具,總結了在用戶態下查找進程的幾種方法。 當然,如果想要真正做到進程查看,還是要進入核心態中,因爲在用戶態是查不到什麼東西的,但是可以用來和 核心態結果進行比較找出隱藏進程。(內核級病毒

原创 數據共享的簡單方法

By jingzhongrong 每個Win32的可執行程序以及DLL文件都是由許多個節組成,像程序代碼會被放入.text節中,初始化過的數據被放置在.data節中,而未經初始化的數據會被放入.bss節中。 我們可以通過讓編譯器創建一個用

原创 調用Baidu、Google搜索引擎

By jingzhongrong 沒什麼技術含量,寫一個程序要用到,順便寫上來 調用Baidu: http://www.baidu.com/s?wd=關鍵字 調用Google:http://www.google.com/search?q=

原创 在BCB中使用選擇文件夾對話框

By jingzhongrong 編程時的需要,我封裝了一個類。由於BCB有些頭文件中的結構定義與微軟Windows.h中有些結構的定義相同,所以在使用的時候應該在文件最前的地方加上一句 #define NO_WIN32_LEAN_AND

原创 兩種檢測USB設備插入和移除的方法(Ver 2)

說明: 這篇文章是第二個版本。最初版本發佈於 http://blog.csdn.net/jingzhongrong/archive/2007/01/02/1472440.aspx兩種自動檢測USB設備的添加和移除的方法 最初寫這篇文章是因

原创 C#動態調用C++編寫的DLL函數

[C#動態調用C++編寫的DLL函數]         by jingzhongrong  2008-05-08 動態加載DLL需要使用Windows API函數:LoadLibrary、GetProcAddress以及FreeLi

原创 內核級HOOK的幾種實現與應用

創建時間:2003-03-26文章屬性:原創文章來源:http://www.whitecell.org文章提交:sinister (jiasys_at_21cn.com)內核級HOOK的幾種實現與應用Aut

原创 VS插件編寫初探

        圖片使用ikaca相冊。            本文以一個簡單的 VS 插件的編寫過程來對 VS 自動化模型進行簡單的介紹。這個 VS 插件有以下功能:調用 Google 搜索代碼編輯器中選中的文本。         

原创 簡單的源碼備份工具

    不用SVN之類工具的可以看看:   主要功能: 1、調用WinRar進行備份 2、可設置密碼 3、可選擇要備份的文件 4、對備份文件進行組織。   原理很簡單,RAR命令行(對應下圖): "E:/WinRAR/Rar.exe" a

原创 [Unicode版本]在BCB中使用選擇文件夾對話框

by jingzhongrong   原文地址:http://blog.csdn.net/jingzhongrong/archive/2007/01/02/1472452.aspx   由於使用到了UnicodeString,因此,本篇文

原创 判斷是否有全屏程序正在運行(C#)

註冊一個AppBar(什麼是AppBar?Using Application Desktop Toolbars ),通過SHAppBarMessage向系統註冊AppBar,這樣,當有程序全屏 運行時系統會向我們的程序發送消息,在窗體W

原创 簡單的多桌面的實現

多個桌面的簡單實現,不同桌面可以運行不同程序,互不干擾。純粹自娛。   原理簡單,就不多加解釋,主要函數如下: char DesktopID[] = "jingzhongrong"; void SetDesktop() //配置新桌面