Tải bản đầy đủ (.pdf) (6 trang)

Cracking part 18 potx

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (102.11 KB, 6 trang )


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êm thông tin về lỗi,
chúng ta dùng hàm GetLastError.
Nếu hàm WriteFileEx hoàn thành , calling thread có quá trình I/O không đồng bộ trong
khoảng thời gian : overlapped viết thao tác vào 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à sự chờ đợi hoàn thành với đoạn code trở lại
WAIT_IO_COMPLETION.
Nếu function hoàn thành và quá trình viết dữ liệu vào file hoàn thành, nhưng lệnh call
thread không nằm trong alertable wait state, hệ thống queue lệnh call *IpCompletion, típ
tục lệ
nh call cho đến khi lệnh gọi thread “gia nhập” alertable wait state. Đọc
Synchronization để biết thêm thông tin về alertable wait state và quá trình overlapped
input / output

WritePrivateProfileStringA / WritePrivateProfileStringW
Code:
BOOL WritePrivateProfileString(
LPCTSTR lpszSection, // address of section name
LPCTSTR lpszKey, // address of key name
LPCTSTR lpszString, // address of string to add
LPCTSTR lpszFile // address of initialization filename
);

Returns
Nếu function copy string vào file khởi tạo thành công, giá trị trả về là TRUE.
Nếu function không hoàn thành , hoặc nếu nó flush cached version của hầu hết file khởi
tạo truy cập gần đây, giá trị trả về là FALSE. Để có thông tin về lỗi, chúng ta dùng hàm
GetLastError.



03.5 Registry Accesses
==============
RegCreateKeyA / RegCreateKeyW
Hàm RegCreateKey có nhiệm vụ tạo specified key. Nếu key đã có trong registry, hàm
này s
ẽ mở nó. Hàm này tương thích với Windows 3.1. Đối với Win32 chúng ta nên sử
dụng hàm RegCreateKeyEx.
Code:
LONG RegCreateKey(
HKEY hKey, // handle of an open key
LPCTSTR lpszSubKey, // address of name of subkey to open
PHKEY phkResult // address of buffer for opened handle
);

Returns
Nếu function hoàn thành , giá trị trả về là ERROR_SUCCESS
Nếu function không hoàn thành , giá trị trả về là 1 giá trị lỗi.

RegCreateKeyExA / RegCreateKeyExW
Hàm RegCreateKeyEx có nhiệm vụ tạo specified key. . Nếu key đã có trong registry,
hàm này sẽ mở nó.
Code:
LONG RegCreateKeyEx(
HKEY hKey, // handle of an open key
LPCTSTR lpszSubKey, // address of subkey name
DWORD dwReserved, // reserved
LPTSTR lpszClass, // address of class string
DWORD fdwOptions, // special options flag
REGSAM samDesired, // desired security access

LPSECURITY_ATTRIBUTES lpSecurityAttributes, // address of key security
structure
PHKEY phkResult, // address of buffer for opened handle
LPDWORD lpdwDisposition // address of disposition value buffer
);


Returns
Nếu function hoàn thành , giá trị trả về là ERROR_SUCCESS
Nếu function không hoàn thành , giá trị trả về là 1 giá trị lỗi.

RegDeleteKeyA / RegDeleteKeyW
Hàm RegDeleteKey có nhiệm vụ xóa key và tấ
t cả các key khác nằm trong nó
Code:
LONG RegDeleteKey(
HKEY hKey, // handle of open key
LPCTSTR lpszSubKey // address of name of subkey to delete
);

Returns
Nếu function hoàn thành , giá trị trả về là ERROR_SUCCESS
Nếu function không hoàn thành , giá trị trả về là 1 giá trị lỗi.

RegDeleteValueA / RegDeleteValueW
Hàm RegDeleteValue có nhiệm vụ di chuyển named value từ specified registry key
Code:
LONG RegDeleteValue(
HKEY hKey, // handle of key
LPTSTR lpszValue // address of value name

);

Returns
Nếu function hoàn thành , giá trị trả về là ERROR_SUCCESS
Nếu function không hoàn thành , giá trị trả về là 1 giá trị lỗi.

RegOpenKeyA / RegOpenKeyW
Hàm RegOpenKey có nhiệm vụ mở specified key. Hàm này tương thích với Windows
3.1. Đối với Win32 chúng ta nên dùng hàm RegOpenKeyEx
Code:
LONG RegOpenKey(
HKEY hKey, // handle of open key
LPCTSTR lpszSubKey, // address of name of subkey to open
PHKEY phkResult // address of handle of open key
);

Returns
Nếu function hoàn thành , giá trị trả về là ERROR_SUCCESS
Nếu function không hoàn thành , giá trị trả về là 1 giá trị lỗi.

RegOpenKeyExA / RegOpenKeyExW
Hàm RegOpenKeyEx có nhiệm vụ mở specified key
Code:
LONG RegOpenKeyEx(
HKEY hKey, // handle of open key
LPCTSTR lpszSubKey, // address of name of subkey to open
DWORD dwReserved, // reserved
REGSAM samDesired, // security access mask
PHKEY phkResult // address of handle of open key
);


Returns
Nếu function hoàn thành , giá trị trả về là ERROR_SUCCESS
Nếu function không hoàn thành , giá trị trả về là 1 giá trị lỗi.

RegQueryValueA / RegQueryValueW
Hàm RegQueryValue có nhiệm vụ tìm giá trị kết hợp với giá trị không tên cho specified
key trong registry. Những giá trị trong registry có tên, type (loại) và thành phần dữ liệu.
Hàm này tìm dữ liệu cho giá trị đầu tiên của key có NULL name. Hàm này tương thích
với Windows 3.1. Còn đối với Win32 thì chúng ta nên dùng hàm RegQueryValueEx.
Code:
LONG RegQueryValue(
HKEY hKey, // handle of key to query
LPCTSTR lpszSubKey, // address of name of subkey to query
LPTSTR lpszValue, // address of buffer for ret string
PLONG pcbValue // address of buffer for size of ret string
);

Returns
Nếu function hoàn thành , giá trị trả về là ERROR_SUCCESS
Nếu function không hoàn thành , giá trị trả về là 1 giá trị lỗi.

RegQueryValueExA / RegQueryValueExW
Hàm RegQueryValueEx có nhiệm vụ tìm loại và dữ liệu cho giá trị có tên đã được xác
định kết hợp với việc mở registry key.
Code:
LONG RegQueryValueEx(
HKEY hKey, // handle of key to query
LPTSTR lpszValueName, // address of name of value to query
LPDWORD lpdwReserved, // reserved

LPDWORD lpdwType, // address of buffer for value type
LPBYTE lpbData, // address of data buffer
LPDWORD lpcbData // address of data buffer size
);

Returns
Nếu function hoàn thành , giá trị trả về là ERROR_SUCCESS
Nếu function không hoàn thành , giá trị trả
về là 1 giá trị lỗi.

03.6 Serial Catching
============
GetDlgItemInt
Hàm GetDlgItemInt có nhiệm vụ dịch text của specified control trong dialog box sang giá
trị integer
Code:
UINT GetDlgItemInt(
HWND hDlg, // handle to dialog box
int nIDDlgItem, // control identifier
BOOL* lpTranslated, // points to var to rec. suc/failr indicator
BOOL bSigned // specifies whether value is un/-signed
);
Returns
Nếu function hoàn thành , biến số pointed to bởi IpTranslated được set TRUE, và giá trị
trả về là giá trị đã dịch từ control text
Nếu function không hoàn thành , biến số pointed to bởi IpTranslated được set FALSE, và
giá trị trả về là 0. Nếu như 0 là giá trị translated thì giá trị trả về của 0 không tự indicate
failure
Nếu IpTranslated là NULL, function return không có thông tin về hoàn thành hay không
hoàn thành .

Nếu thông số bSigned là TRUE, ghi rõ giá trị được tìm thấy là giá trị integer signed,
“quăng” giá trị trả về vào int type.

GetDlgItemText / GetDlgItemTextA / GetDlgItemTextW
Hàm GetDlgItemText có nhiệm vụ tìm title hoặc text kết hợp với control trong dialog
box
Code:
UINT GetDlgItemText(
HWND hDlg, // handle of dialog box
int nIDDlgItem, // identifier of control
LPTSTR lpString, // address of buffer for text
int nMaxCount // maximum size of string
);
Returns
Nếu function hoàn thành , giá trị trả về ghi rõ số
kí tự được copy vào buffer, không bao
gồm kí tự null.
Nếu function không hoàn thành , giá trị trả về là 0.

GetWindowLong / GetWindowLongA / GetWindowLongW
Hàm GetWindowLong có nhiệm vụ tìm thông tin về specified window. Hàm này còn tìm
giá trị 32bit tại specified offset và đưa nó vào extra window memory của window.
Code:
LONG GetWindowLong(
HWND hWnd, // handle of window
int nIndex // offset of value to retrieve
);
Returns
Nếu function hoàn thành , giá trị trả về là giá trị 32bit
Nếu function không hoàn thành , giá trị trả về là 0. Để biết thêm thông tin về lỗi, chúng ta

dùng hàm GetLastError.

GetWindowText / GetWindowTextA
Hàm GetWindowText có nhiệm vụ copy text của title bar(nếu nó chỉ có 1) của specified
window vào buffer. Nếu specified window là 1 control thì text của control sẽ được copy.
Code:
int GetWindowText(
HWND hWnd, // handle of window or control with text
LPTSTR lpString, // address of buffer for text

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×