1. Trang chủ
  2. » Công Nghệ Thông Tin

Cracker Handbook 1.0 part 27 pot

6 176 2
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Cracker Handbook 1.0 Part 27 Pot
Trường học University of Information Technology
Chuyên ngành Computer Science
Thể loại Bài luận
Năm xuất bản 2023
Thành phố Ho Chi Minh City
Định dạng
Số trang 6
Dung lượng 89,53 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

int x, // horizontal position of window int y, // vertical position of window int nWidth, // window width int nHeight, // window height HWND hWndParent, // handle of parent or owner

Trang 1

int x, // horizontal position of window

int y, // vertical position of window

int nWidth, // window width

int nHeight, // window height

HWND hWndParent, // handle of parent or owner window HMENU hMenu, // handle of menu, or child-window identifier HINSTANCE hInstance, // handle of application instance

LPVOID lpParam // address of window-creation data

);

Returns

Nếu function hoàn thành, giá trị trả về là handle của window mới

Nếu function không hoàn thành, giá trị trả về là NULL

SendMessageA / SendMessageW

Hàm SendMessage có nhiệm vụ gởi specified message đến window hoặc windows Hàm này gọi window procedure cho specified window và không quay về cho đến khi window procedure gởi xong message Ngược lại, hàm PostMessage có nhiệm

vụ post message đến message của thread và trở về ngay lập tức

Code:

LRESULT SendMessage(

HWND hwnd, // handle of destination window

UINT uMsg, // message to send

WPARAM wParam, // first message parameter

LPARAM lParam // second message parameter

);

Returns

Giá trị trả về ghi kết quả của message processing và dựa vào message đã được gởi

ShowWindow

Hàm ShowWindow có nhiệm vụ set trạng thái hiện ra của specified window

Code:

BOOL ShowWindow(

HWND hwnd, // handle of window

int nCmdShow // show state of window

);

Returns

Nếu window được thấy, giá trị trả về là TRUE Nếu window bị che, giá trị trả về là FALSE

Trang 2

UpdateWindow

Hàm UpdateWindow có nhiệm vụ cập nhật client area của specified window bằng cách gởi WM_PAINT message đến window nếu vùng update của window không trống Hàm này gởi thẳng WM_PAINT message đến window procedure của

specified window, bỏ qua application queue Nếu vùng update trống thì message sẽ không được gửi đi

Code:

BOOL UpdateWindow(

HWND hwnd // handle of window

);

Returns

Nếu function hoàn thành, giá trị trả về là TRUE

Nếu function không hoàn thành, giá trị trả về là FALSE

The_lighthouse(REA)

03.4 File Accesses

===========

_lread

Hàm _lread có nhiệm vụ đọc dữ liệu từ specified file Hàm này tương thích với phiên bản 16-bit của Window Còn đối với Win32 thì chúng ta nên dùng hàm ReadFile

Code:

UINT _lread(

HFILE hFile, // handle of file

LPVOID lpBuffer, // address of buffer for read data

UINT uBytes // length, in bytes, of data buffer

);

Returns

Giá trị trả về cho biết số byte đã đọc được từ file Nếu số byte nhỏ hơn nhỏ hơn uBytes, function reach đoạn cuối của file trước khi đọc số byte xác định

_lwrite

Hàm _lwrite có nhiệm vụ viết dữ liệu vào specified file Hàm này tương thích với phiên bản 16-bit của Window Còn đối với Win32 thì chúng ta nên dùng hàm WriteFile

Code:

UINT _lwrite(

Trang 3

HFILE hFile, // handle of file

LPCSTR lpBuffer, // address of buffer for data to be written

UINT uBytes // number of bytes to write

);

Returns

Nếu function hoàn thành , giá trị trả về cho biết số byte đã viết được vào file Nếu function không hoàn thành , giá trị trả về là HFILE_ERROR Để có thông tin

về lỗi, chúng ta sử dụng hàm GetLastError

CreateFileA / CreateFileW

Hàm CreateFile có nhiệm vụ tạo ra, mở, hoặc truncate file, pipe(đường dẫn), communication resource, disk device hoặc console Nó return handle mà có thể được dùng để truy cập đối tượng Nó cũng có thể mở và return handle to directory Code:

HANDLE CreateFile(

LPCTSTR lpFileName, // address of name of the file DWORD dwDesiredAccess, // access (read-write) mode

DWORD dwShareMode, // share mode

LPSECURITY_ATTRIBUTES lpSecurityAttributes, // address of security descriptor

DWORD dwCreationDistribution, // how to create

DWORD dwFlagsAndAttributes, // file attributes

HANDLE hTemplateFile // handle of file with attributes to copy

);

Returns

Nếu function hoàn thành, giá trị trả về là open handle của specified file Nếu specified file không tồn tại trước khi function gọi và dwCreationDistribution là CREATE_ALWAYS hoặc OPEN_ALWAYS, lệnh gọi GetLastError trở về

ERROR_ALREADY_EXISTS (ngay cả khi function đã hoàn thành) Còn nếu file tồn tại trước khi gọi, GetLastError trả về 0

Nếu function không hoàn thành , giá trị trả về là INVALID_HANDLE_VALUE

Để có thông tin về lỗi, chúng ta dùng lệnh GetLastError

GetPrivateProfileIntA / GetPrivateProfileIntW

Hàm GetPrivateProfileIntA có nhiệm vụ tìm integer associated với key trong section chỉ định của flie khởi tạo đã quy định Hàm này tương thích với phiên bản

Trang 4

16-bit của Window Còn đối với Win32 thì nên “cất” thông tin khởi tạo vào trong registry

Code:

UINT GetPrivateProfileInt(

LPCTSTR lpAppName, // address of section name

LPCTSTR lpKeyName, // address of key name

INT nDefault, // return value if key name is not found LPCTSTR lpFileName // address of initialization filename

);

Returns

Nếu function hoàn thành , giá trị trả về là số tương đương của chuỗi phía sau tên key chỉ định trong file khởi tạo đã quy định Nếu không tìm thấy key, giá trị trả về

là giá trị mặc định Nếu giá trị của key nhỏ hơn 0, giá trị trả về là 0

GetPrivateProfileStringA / GetPrivateProfileStringW

Hàm GetPrivateProfileString có nhiệm vụ tìm string từ section đã chỉ định trong file khởi tạo Hàm này tương thích với phiên bản 16-bit Window Còn đối với Win32 thì nên “cất” thông tin khởi tạo vào trong Registry

Code:

DWORD GetPrivateProfileString(

LPCTSTR lpAppName, // points to section name

LPCTSTR lpKeyName, // points to key name

LPCTSTR lpDefault, // points to default string

LPTSTR lpReturnedString, // points to destination buffer

DWORD nSize, // size of destination buffer

LPCTSTR lpFileName // points to initialization filename );

Returns

Nếu function hoàn thành , giá trị trả về là số kí tự được copy vào buffer, không tính

kí tự null

Nếu cả IpAppName và IpKeyName đều là NULL và supplied destination quá nhỏ

để chứa yêu cầu của string, chuỗi sẽ được bỏ bớt đi và theo sau là kí tự null, và giá trị trả về là nSize-1

Nếu IpAppName hoặc IpKeyName là NULL và supplied destination quá nhỏ để chứa toàn bộ string, string cuối cùng sẽ được “cắt ra” và theo sau là 2 kí tự null Trong trường hợp này thì giá trị trả về nSize-2

ReadFileA

Trang 5

Hàm ReadFile có nhiệm vụ đọc dữ liệu từ file, bắt đầu tại vị trí được cho biết bởi file pointer Sau khi đọc xong, file pointer sửa lại cho đúng bằng số byte đã được đọc, trừ khi file handle được tạo với thuộc tính overlapped (chồng lên) Nếu file handle được tạo để overlapped input (cho vào) và output (lấy ra) (I / O) , sau khi đọc xong application phải chỉnh lại cho đúng vị trí của file pointer

Code:

BOOL ReadFile(

HANDLE hFile, // handle of file to read

LPVOID lpBuffer, // address of buffer that receives data

DWORD nNumberOfBytesToRead, // number of bytes to read

LPDWORD lpNumberOfBytesRead, // address of number of bytes read

LPOVERLAPPED lpOverlapped // address of structure for data

);

Returns

Nếu function hoàn thành , giá trị trả về là TRUE Nếu giá trị trả về là TRUE và số byte được đọc là 0 thì file pointer ở xa điểm cuối của file tại thời điểm xảy ra quá trình đọc

Nếu function không hoàn thành , giá trị trả về là FALSE Để có thông tin về lỗi, chúng ta dùng hàm GetLastError

ReadFileEx

Hàm ReadFileEx có nhiệm vụ đọc dữ liệu từ file không đồng bộ Nó chỉ được design cho quá trình không đồng bộ, khác với hàm ReadFile được design cho cả 2 quá trình đồng bộ và không đồng bộ ReadFileEx để cho “quá trình gán” gán vào processing khác suốt quá trình đọc

Hàm ReadFileEx “báo cáo” tình trạng không đồng bộ của nó, gọi completion routine chỉ định khi quá trình đọc hoàn thành và lệnh gọi thread là alertable wait state

Code:

BOOL ReadFileEx(

HANDLE hFile, // handle of file to read

LPVOID lpBuffer, // address of buffer

DWORD nNumberOfBytesToRead, // number of bytes to read

LPOVERLAPPED lpOverlapped, // address of offset

LPOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine // address of completion routine

);

Trang 6

Returns

Nếu function hoàn thành , giá trị trả về là TRUE

Nếu function không hoàn thành , giá trị trả về là FALSE Để có thông tin về lỗi, chúng ta dùng hàm GetLastError

Nếu function hoàn thành , calling thread có quá trình I/O không đồng bộ trong khoảng thời gian : overlapped đọc thao tác từ file Khi quá trình I/O này kết thúc,

và lệnh gọi thread bị khóa trong alertable wait state, hệ thống gọi hàm

IpCompletionRoutine, và alertable wait state hoàn thành với đoạn code trở

Ngày đăng: 03/07/2014, 17:20

TỪ KHÓA LIÊN QUAN