原创 linux下查看tcp連接的幾種方式

[root@localhost /]# netstat -anpt Active Internet connections (servers and

原创 用戶層下攔截系統api的原理與實現

  寫這篇文章是爲了複習一些知識,最近在做畢業設計,之中大量地使用了這種技術,主要是用在攔截winsock函數,對於其他系統api,其效果也是一樣的.   攔截api的技術有很多種,大體分爲用戶層和內核層的攔截.這裏只說說用戶層的攔截.而

原创 Winxp下攔截所有進程的寫註冊表操作以及進程創建的監控

 原理介紹:   Nt系統下用戶層(Ring3)下寫註冊表的程序大都調用ntdll.dll導出的ZwSetValueKey,該API簡單通過int 2e並傳遞一個服務號進入內核調用同名系統服務(NTSetValueKey)。所以在用戶層(

原创 Rootkits: Subverting the Windows Kernel--§1

§1 走過不留下任何痕跡    狡猾的老手通常都不會留下行動痕跡;象神一樣的不可見聞。因此他們通常主宰着敵人的命運。    —SUN TZU     許多書籍討論怎樣去滲透計算機系統和軟件。同時許多作者也已經闡述了怎麼去運行黑客腳本,編寫

原创 從觀察者模式的實現,看c/c++的語言特性

觀察者模式,是我們在開發過程中經常會遇到或者使用的設計模式。 比較常見的,我們在GUI庫裏便能看到其身影,譬如:鍵盤敲擊事件後,需要將這一事件通知到所有觀測鍵盤事件的對象。但凡涉及到這種一對多的通知,基本上都是觀察者模式的應用。 更詳細的

原创 跨平臺文件傳輸工具

最近用到freebsd10.2,然而倒騰圖形界面始終沒有成功,各種代碼無法拷貝到bsd上去,不可能用vi或者ee重複再敲一遍。 vmtools似乎也沒法安裝,於是就用ee敲了個最簡單的bsd上的服務端,接收文件並保存到本地。精簡版代碼如下

原创 linux下tcp socket的SO_REUSEPORT和SO_REUSEADDR

SO_REUSEADDR linux下多個tcp socket不能同時bind到一個ip:port上,但是可以bind到不同的ip相同的port上,前提是都要設置SO_REUSEADDR選項爲true。否則會返回address alrea

原创 sprintf/sscanf中的一個小坑

char buf[32] = {0}; sprintf(buf, "%s,%d", "test", 100); char out[32] = {0}; int i = 0; sscanf(buf, "%s,%d", out, &i);這

原创 一個簡單的DbgPrinter

 vc下沒有支持可變參數的宏實現.自己今天搗鼓了半天做了一個簡單的:) // dgb_prt.h   #include <windows.h>#define _DEBUG_INFO_FILE  "gfx_dbg_info.txt" //