2011年6月29日 星期三

C#呼叫WinAPI

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.InteropServices;    //C#呼叫WinAPI

namespace ConsoleApplication2
{
    class Program
    {
        [DllImport("User32.dll", CharSet = CharSet.Unicode)]  //程式使用從 User32.dll 程式庫匯入的 MessageBox 方法
        public static extern int MessageBox(int h, string m, string c, int type);  //MessageBox既定格式

        static int Main(string[] args)
        {
            string myString;
            Console.Write("Enter");
            myString = Console.ReadLine();
            return MessageBox(0, myString, "My Message Box", 0);   //#
        }
    }
}

2010年11月2日 星期二

常見的基本Windows資料類型

類型 描述
BOOL 布林型態變數(值只能是True或False)
BYTE 字元類型(8位元)
CHAR 8位元字元(ANSI)
CONST 常數,相當於標準C中的"const"關鍵字
DWORD 32字元無符號整數型態資料
DWORD32 32字元無符號整數型態資料
DWORD64 64字元無符號整數型態資料
FLOAT 浮點資料類型
HANDLE 物件的處理,最基本的處理類型
HICON 圖示的處理
HINSTANCE 程式範例的處理
HKEY 登錄表案件的處理
HMODULE 模組的處理
HWND 視窗的處理
INT 32位元符號整數型態資料類型
INT_PTR 指向INT類型資料的指標類型
INT32 32位元符號指數型態
INT64 64位元符號指數型態
LONG 32位元符號整數型態,相當於C語言的表準資料型態long
LONGLONG 64位元符號整數型態
LONG32 32位元符號整數型態
LONG64 64位元符號整數型態
LPARAM 訊息的L參數
WPARAM 訊息的W參數
LPCSTR Windows(ANSI)字串常數
LPCTSTR 根據環境組態,如果定義了UNICODE巨集,則是LPCWSTR類型,否則是LPCSTR類型
LPCWSTR INICODE字串長度
LPDWORD 指向DWORD類型資料的目標
LPSTR Windows(ANSI)字串變數
LPTSTR 根據環境組態,如果定義了UNICODE、則是LPWSTR類型,否則則是LPSTR類型
LPWSTR UNICODE字串變數
SHORT 無符號短整數型態(16位元)
SIZE_T 表示記憶體大小,以字串為單位,其最大值是CPU最大搜尋範圍
TCHAR 如果定義了UNICODE,則為WCHAR,否則為CHAR
UCHAR 無符號CHAR
UINT 無符號LONG
ULONG 無符號LONG
VOID 無類型,相當於標準C語言的void
WCHAR 16位元UNICODE
WINAPI WindowsAPI的函數呼叫方式,常見於SDK標頭檔中對API函數的宣告中,相當於_stdcall
WORD 16位元無符號整數型態資料


資料出處:文魁 精通Windows API函數、介面、程式設計實例

2010年9月30日 星期四

網路足跡

Facebook得盛行,很多人直接顯示真名在上面,不經讓人想到網路實名化政策,目前網路服務的普及,每個人幾乎都有一個網路ID,一個人使用的眾多ID中幾乎都有一點關連性,不管是ID本身,還是註冊ID時填得基本資料
這就好像一個足跡一樣,一個人在網路上的發展史漸漸被勾勒出來
就像超級任務阿亮說得:凡走過必留下痕跡
網路上也不例外

架構:一個搜尋引擎,可輸入一組真實存在的帳號,並劃出ID發展史

2010年9月25日 星期六

應用程式模糊測試


模糊測試工具適用的時機

  • 要尋找某些會被攻擊的缺陷,但不是全部
  • 使用相同協定時,在多種軟體中尋找缺陷
  • 迅速地測試原始碼被關閉的軟體,而不去檢視原始碼或二進碼
  • 簡單地自動化
  • 簡單地平行化
  • 使用依賴協定與檔案類型但獨立於軟體的某些東西

2010年9月19日 星期日

tcpdump

  • 基於Unix作業系統的命令列封包嗅探器(Sniffer)
  • libacp
  • 要捕捉送往主機MAC位址以外的封包,必須啟用網路卡上Promiscuous Mode(混雜模式),這需要superuser/root 的存取權限
  • Tcpdump裡所使用的過濾語言被稱為BPF(Berkeley Packet Filtering)
  • 要捕捉送往主機MAC位址以外的封包,必須啟用網路卡上Promiscuous Mode(混雜模式),這需要superuser/root 的存取權限
  • 使用-i 選項,指定要在哪一個介面上監聽,後面接介面名稱
    $ sudo tcpdump –i eth1
    
  • 可以使用any 關鍵字,輕鬆捕捉到進出任何介面的交通流量
    $ sudo tcpdump –i any
    
  • 顯示捕捉介面清單,使用-D選項
    $ sudo tcpdump –D
      # 印出的表單中,any是基於Linux的系統,lo為loopback介面
    

Snort


模式

  • NIDS(Network Intrusion Detection Sensor,網路入侵偵測感應器):只偵測攻擊
  • NIPS(Network Intrusion Prrvention Sensor,網路入侵防護系統):對攻擊作回應
  • 基本的封包嗅探器

2010年9月9日 星期四

Nmap


TCP掃描

  • TCP協定允許不需完成聯繫,TCP掃描就可以判斷哪些TCP port上有應用程式在偵聽
  • 三段式交握由SYN封包、SYN/ACK封包、ACK封包所組成
  • 掃描器將TCP SYN封包傳送到目標主機port上並且等待回應
    • SYN/ACK封包被回傳,代表port被認為開啟
    • RST封包被回傳,port被認為是關閉
    • 一段時間後沒有封包被回傳,port被認為被過濾掉,或者沒有主機在那個IP上