Wednesday, February 28, 2007

Friday, February 16, 2007

系統安全基礎之常用Win32 API函數簡介

現在很多講Windows程式設計的書都是講基於MFC庫和OWL庫的Windows設計,對Windows實現的細節都鮮有討論,而調試程式都是和系統底層打交道,所以有必要掌握一些Win32 API函數的知識,這樣我們可快捷地找出程式調用錯在哪?是哪個參數出了問題。

Windows程式模組包括KERNEL、USER和GDI,其中KERNEL完成記憶體管理、程式的裝人與執行和任務調度等功能,它需要調用原MS─DOS中的文件管理、磁片輸入輸出和程式執行等功能;USER是一個程式庫,它用來對聲音、時鐘、滑鼠器及鍵盤輸入等操作進行管理;GDI是一功能十分豐富的子程式庫,它提供了圖形與文字輸出、圖像操作和窗口管理等各種與顯示和列印有關的功能。上述KERNEL、USER和GDI模組中的庫函數可被應用程式調用,也可被其他程式模組調用。把包含庫函數的模組稱為輸出者(export)。你應明白為什麼跟蹤軟體時經常在KERNEL32!.text和 USER32.text等系統領空轉的問題吧。

這裡列出幾個經常碰到的Win 32 API函數,它們都是存在Windows系統核心文件KERNEL32.DLL中和視窗管理文件USER32.DLL中。

Windows函數是區分字符集的:A表示ANSI,W表示Wide,即Unicode (Wide character-set),前者就是通常使用的單字節方式,但這種方式處理象中文這樣的雙字節字符不方便,容易出現半個漢字的情況。而後者是雙字節方式,方便處理雙字節字符。Windows的所有與字符有關的函數都提供兩種方式的版本。儘管你編程時使用GetWindowText,但實際上編譯程式會根據設置自動調用GetWindowTextA或GetWindowTextW。函數的最後一個字母告訴我們函數是使用單字節還是雙字節字符串。

1、Hmemcpy函數

void hmemcpy(hpvDest, hpvSource, cbCopy)

void _huge* hpvDest; // 目的數據地址

const void _huge* hpvSource; // 源數據地址

long cbCopy; // 數據大小 (Bytes)

這個函數在KERNEL32.DLL中,它很常用,俗稱萬能中斷點,但一般的編程書籍上很少提到,原因它是底層的東西,沒有特殊需要,一般不直接調用。但的確它是很有用的!有意思的是它執行的操作很簡單,只是將記憶體中的一塊數據拷貝到另一個地方。

注意:此函數只在Windows 9x系統上有效,在Win NT/2K系統上相關的函數是memcpy,但在Win NT/2K上不同於Windows 9x上,很少再調用memcpy來處理數據了,用此函數設斷基本上什麼也攔不住。

2、GetWindowText函數

此函數在USER32.DLL用戶模組中,它的作用是複製指定窗口中的字符到緩衝區。函數原型:

int GetWindowText( HWND hWnd//欲獲取文字的那個窗口的句柄  LPTSTR lpString //預定義的一個緩衝區,至少有cch+1個字符大小;隨同窗口文字載入  int nMaxCount//lpString緩衝區的長度 ); 16位:GetWindowText 32位:GetWindowTextA,GetWindowTextW <strong>3、GetDlgItemText</strong>

3、GetDlgItemText

此函數在USER32.DLL用戶模組中,它的作用是返回對話方塊中某一個窗口的標題或文字。函數原型:

UINT GetDlgItemText( HWND hDlg, // 對話方塊句柄 int nIDDlgItem, //控制標識符 LPTSTR lpString, / 預定義的一個字符緩衝區 int nMaxCount// 字符緩衝區的長度 ); 16位:GetDlgItemText 32位:GetDlgItemTextA,GetDlgItemTextW

4、MessageBox函數

此函數是在USER32.DLL用戶模組中,它的作用創建、顯示和操作資訊框。函數原型:

int MessageBox( HWND hWnd, //窗口句柄 LPCTSTR lpText, // 資訊框中文字的地址 LPCTSTR lpCaption, // 資訊框標題地址 UINT uType // 資訊框類型 ); 16位:MessageBox 32位:MessageBoxA,MessageBoxW

Fwd: Google 快訊 - PocketPC



---------- Forwarded message ----------
From: Google 快訊 <googlealerts-noreply@google.com>
Date: 2007/2/16 上午 7:09
Subject: Google 快訊 - PocketPC
To: cwthome@gmail.com

Google 新聞快訊關於: PocketPC

側滑蓋雙鍵盤!HTC智慧Vox正式發布
臺灣新浪網 - Taiwan
有完整QWERTY鍵盤的PocketPC WM6 Professional版本(支援觸控螢幕的那版)手機不在少數,HTC 自家就做了一大票,但WM6 Standard版中放入QWERTY鍵盤可就是頭一遭了。應該可以大大地降低非觸控式螢幕帶來的挫折感吧!
查看此主題下的所有報導


 此即時 Google 快訊是由 Google 提供給您。.

移除 此快訊。
建立 另一個快訊。
管理 您的快訊。

Saturday, February 10, 2007

Verilog - Code Gen

http://search.cpan.org/~wvdb/Verilog-CodeGen-0.9.4/CodeGen/Gui.pm
v2html (http://www.burbleland.com/v2html/v2html.html)
If you want to inspect the generated code, you need the v2html Verilog to HTML convertor and a controllable browser, I use galeon (http://galeon.sourceforge.net).
A Verilog compiler/simulator
To run the testbench, I use Icarus Verilog http://icarus.com/eda/verilog/index.html, a great open source Verilog simulator.
A VCD waveform viewer
To plot the results, I use GTkWave (http://www.cs.man.ac.uk/apt/tools/gtkwave/index.html, a great open source waveform viewer.

SW -- iCodeGenerator

http://swik.net/iCodeGenerator
iCodeGenerator is an Open Source template based code generator for the programming language of your choice. It is very easy to use because its own simple syntax.
It can generate Data Access code for any programming language, like C#, Java, SQL, PHP, or Perl to name a few, from any supported database (SQL Server and MySQL, Postgres). It is being developed with C#.

HW -- Fuse / Relay - Tyco

http://www.tycoelectronics.com/
http://catalog.tycoelectronics.com/TE/bin/TE.Menu?M=MENU&ID=20860&BML=18022&LG=1&I=13

Circuit Protection Devices (無鎔絲保險絲)
OverCurrent Devices
OverVoltage Devices

MontaVista升級版Linux IDE與Eclipse相容

http://www.eettaiwan.com/ART_8800450578_676964_e1590c43200701.HTM

RF 可攜式無線產品中的小型天線設計

http://www.eettaiwan.com/ART_8800450598_617723_ccd76100200701.HTM

實現完全無NRE的可編程ASIC

http://www.eettaiwan.com/ART_8800450585_480202_a45ba56c200701.HTM

HW -- Search (電子工程專輯)

http://www.eettaiwan.com/

java download

DDR3蓄勢待發 2010年可望超越DDR2

http://www.eettaiwan.com/ART_8800450608_628626_fafda2ba200701.HTM

Friday, February 02, 2007

JavaScript

Visual JavaScript Library is an easy to use script collection that helps you add javascripts and applets to your web pages with no experience or HTML knowledge.