91在线观看视频-91在线观看视频-91在线观看免费视频-91在线观看免费-欧美第二页-欧美第1页

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

黑客常用WinAPI函數有哪些_常用的7大API函數詳解

電子工程師 ? 作者:工程師a ? 2018-05-12 09:24 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

為了對黑客常用的Windows API有個更全面的了解以及方便日后使用API方法的查詢,特將這些常用的API按照7大分類進行整理如下,希望對大家的學習有所幫助。

一、進程

創建進程:

CreateProcess("C:\\windows\\notepad.exe",0,0,0,0,0,0,0,&si,&pi);

WinExec("notepad",SW_SHOW);

ShellExecute(0,"open","notepad","c:\\a.txt","",SW_SHOW);

ShellExecuteEx(&sei);

遍歷進程:

CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);

Process32First(hsnap,&pe32);

Process32Next(hsnap,&pe32);

終止進程:

ExitProcess(0);

TerminateProcess(hProc,0);

打開進程:

OpenProcess(PROCESS_ALL_ACCESS,0,pid);\

獲取進程ID:

GetCurrentProcesssId();

獲取進程可執行文件路徑:

GetModuleFileName(NULL,buf,len);

GetProcessImageFileName(hproc,buf,len);

遍歷進程模塊信息:

CreateToolhelp32Snapshot(TH32CS_SNAPMODILE,pid);

Module32First(hsnap,&mdl32);

Module32Next(hsnap,&mdl2);

獲取指定模塊句柄:

GetModuleHandle(“kernel32.dll”);

獲取模塊內函數地址:

GetProcessAddr(hmdl,”MessageBox”);

動態加載DLL:

LoadLibrary(“user32.dll”);

卸載DLL:

FreeLibrary(hDll);

獲取進程命令行參數:

GetCommandLine();

任何進程GetCommandLine函數地址后偏移一個字節后的4字節地址為命令行地址。

讀寫遠程進程數據:

ReadProcessMemory(hproc,baseAddr,buf,len,&size);

WriteProcessMemory(hproc,baseAddr,buf,len,&size);

申請內存:

VirtualAlloc(0,size,MEM_COMMIT, PAGE_EXECUTE_READWRITE);

VirtualAllocEx(hproc,0,size,MEM_COMMIT, PAGE_EXECUTE_READWRITE);

修改內存屬性:

VirtualProtect(addr,size,PAGE_EXECUTE_READWRITE,&oldAddr);

VirtualProtectEx(hproc,addr,size,PAGE_EXECUTE_READWRITE,&oldAddr);

釋放內存:

VirtualFree( addr, size, MEM_RELEASE);

VirtualFreeEx(hproc, addr, size, MEM_RELEASE);

獲取系統版本(Win NT/2K/XP<0x80000000):

getVersion();

讀寫進程優先級:

SetPriorityClass(hproc,Normal);

GetPriority(hproc);

SetProcessPriorityBoost(hproc,true);

GetProcessPriorityBoost(hproc,pBool);

二、線程

創建線程(CreateThread的線程函數調用了strtok、rand等需使用_endthread()釋放內存):

CreateThread(0,0,startAddr,?,0,&tid);

_beginthread(startAddr,0,0);

_beginthreadex(0,0,startAddr,0,0,&tid);

CreateRemoteThread(hproc,0,0,func,?,0,&tid);

獲取線程ID:

GetCurrentThreadId();

關閉線程句柄(減少內核對象使用次數,防止內存泄漏):

CloseHandle(hthread);

掛起與激活線程(維護暫停次數):

SuspendThread(hthread);

ResumeThread(hthread);

獲取線程退出代碼:

GetExitCode(hthread,&code);

等待線程退出(線程受信狀態或超時):

WaitForSignleObject(htread,1000);

WaitForMultipleObjects(num,handles,true,INFINITE);

遍歷線程:

CreateToolhelp32Snapshot(TH32CS_SNAPTHREAD,0);

Thread32First(hsnap,&mdl32);

Thread32Next(hsnap,&mdl2);

獲取線程函數入口:

ZwQueryInfomationThread(hthread,ThreadQuerySetWin32StartAddress,&buf,4,NULL);

打開線程:

OpenThread(THREAD_ALL_ACCESS,false,&tid);

獲取線程函數地址所屬模塊:

GetMappedFileName(hproc,addr,buf,256);

讀寫線程優先級:

SetThreadPriority(hthread,Normal);

GetThreadPriority(hthread);

SetThreadPriorityBoost(hproc,true);

GetThreadPriorityBoost(hproc,pBool);

終止線程:

ExitThread(5);

TerminateThread(hthread,5);

線程同步臨界區對象:

InitializeCriticalSection(&cs);

EnterCriticalSection(&cs);

LeaveCriticalSection(&cs);

DeleteCriticalSection(&cs);

線程同步事件內核對象:

OpenEvent(EVENT_ALL_ACCESS,false,name);

CreateEvent(NULL,false,true,NULL);

WaitForSingleObject(hevnt,INFINITE);

SetEvent(hevnt);

ResetEvent(hevnt);

線程同步互斥內核對象:

CreateMutex(NULL,false,NULL);

WaitForSingleObject(hmutex,INFINITE);

ReleaseMutex(hmutex);

OpenMutex(MUTEX_ALL_ACCESS,false,name);

三、注冊表

創建鍵:

RegCreateKeyEx(HKEY_CURRENT_USER,”TestNewKey”,0,0,REG_OPTION_VOLATILE,KEY_ALL_ACCESS,0,&subkey,&state);

打開鍵:

RegCreateKeyEx(HKEY_CURRENT_USER,”Control Panel”,0,KEY_ALL_ACCESS,&subkey);

關閉鍵:

RegCloseKey(hkey);

遍歷鍵:

RegEnumKeyEx(hsubkey,index,keyname,&nameSize,0,0,0,&time);

FileTimeToSystemTime(&time,&systime);

RegQueryInfo(hsubkey,0,0,0,&count,0,0,0,0,0,0,0);

刪除鍵:

RegDeleteKeyEx(hmainkey,subkeyName);

創建值:

RegSetValueEx(hsubkey,”test”,0,REG_WORD,(BYTE*)&value,4);

遍歷值:

RegEnumValue(hsubkey,index,name,&nameSize,0,&type,valuebuf,valueLen);

RegQueryValueEx(hsubkey,name,0,type,buf,&size);

刪除值:

RegDeleteValue(hsubkey,valuename);

四、文件

創建/打開文件:

CreateFile(“a.txt”,GENERIC_READ|GENERIC_WRITE,FILE_SHARE_READ,0,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0);

設置文件指針:

SetFilePointer(hFile,0,NULL,FILE_END);

讀寫文件:

ReadFile(hFile,buf,len,&size,0);

WriteFile(hFile,buf,len,&size,0);

強制文件寫入磁盤,清空文件高速緩沖區:

FlushFileuffers(hFile);

[解]鎖文件區域:

LockFile(hFile,0,0,100,0);

UnlockFile(hFile,0,0,100,0);

復制文件:

CopyFile(src,des,true);

CopyFileEx(src,des,func,?,false, COPY_FILE_FAIL_IF_EXISTS);

移動文件:

MoveFile(src,des);

MoveFileEx(src,des,false);

MoveFileWithProgress(src,des,fun,?, MOVEFILE_COPY_ALLOWED);

刪除文件:

DeleteFile(filename);

獲取文件類型(FILE_TYPE_PIPE):

GetFileType(hFile);

獲取文件大?。?/p>

GetFileSize(hFile,&high);

獲取文件屬性(例如FILE_ATTRIBUTE_DIRECTORY進行&運算):

GetFileAttributes(hFile);

遍歷文件:

FindFirstFile(nameMode,&wfd);

FindNextFile(hFile,&wfd);

創建管道:

CreatePipe(&hRead,&hWrite,&sa,0);

創建內存映射文件:

CreateFile(“d:\\a.txt”,GENERIC_READ|GENERIC_WRITE,FILE_SHARE_READ,0,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,”myMap”);

加載內存映射文件:

MapViewOfFile(hmap,FILE_MAP_ALL_ACCESS,0,0,0);

打開內存映射文件:

OpenFileMapping(FILE_AMP_ALL_ACCESS,false,”myMap”);

卸載內存映射文件:

UnmapViewOfFile(baseAddr);

強制寫入內存映射文件到磁盤:

FlushViewOfFile(baseAddr,len);

創建文件夾(只能創建一層):

CreateDirectory(“D:\\a”,NULL);

CreateDirectory(“C:\\a”,”D:\\b”,NULL);

刪除文件夾(只能刪除空文件夾):

RemoveDirectory(“C:\\a”);

檢測邏輯驅動器

GetLogicalDrives();

GetLogicalDriveStrings(len,buf);

獲取驅動器類型(DRIVE_CDROM):

GetDriveType(“D:\\”);

五、網絡

打開網絡資源枚舉過程(winnetwk.h、Mpr.lib):

WNetOpenEnum(RESOURCE_GLOBAL,RESOURCETYPE_ANY,0,NULL,hnet);

枚舉網絡資源:

WNetEnumResource(hnet,&count,pNetRsc,&size);

關閉網絡資源枚舉過程:

WNetCloseEnum(hnet);

打開關閉WinSocket庫:

WSAStartup(version,&wsa);

WSACleanup();

創建套接字:

socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);

綁定套接字IP和端口

bind(sock,&addr,len);

監聽TCP連接:

listen(sock,10);

接收TCP連接請求:

accept(sock,&addr,&len);

客戶端連接:

connect(sock,&addr,len);

發送TCP數據:

send(sock,buf,len,0);

接收TCP數據:

recv(sock,buf,len,0);

發送UDP數據:

sendto(sock,buf,len,0,&addr,len);

接收UDP數據:

recvfrom(sock,buf,len,0,&addr,&len);

六、服務

打開SCM服務控制管理器:

OpenSCManager(NULL,NULL,SC_MANAGER_ALL_ACCESS);

創建服務:

CreateService(mgr,"MyService"," MyService",SERVICE_ALL_ACCESS, SERVICE_WIN32_OWN_PROCESS,SERVICE_AUTO_START,SERVICE_ERROR_IGNORE,path,NULL,NULL,NULL,NULL,NULL);

打開服務對象:

OpenService(mgr," MyService ",SERVICE_START);

啟動服務:

StartService(serv,0,NULL);

查詢服務狀態:

QueryServiceStatus(serv,&state);

關閉服務句柄:

CloseServiceHandle(hdl);

連接到SCM:

StartServiceCtrlDispatcher(DispatchTable);

注冊服務控制函數:

RegisterServiceCtrlHandler("MyServicer",ServiceCtrl);

設置服務狀態:

SetServiceStatus(hss,&ServiceStatus);

控制服務:

ControlService(serv,SERVICE_CONTROL_STOP,&state);

刪除服務:

DeleteService(serv);

遍歷服務:

EnumServicesStatus(hscm,SERVICE_WIN32|SERVICE_DRIVER,SERVICE_STATE_ALL,&srvSts,len,&size,&count,NULL);

查詢服務配置:

QueryServiceConfig(hserv,&srvcfg,size,&size);

七、消息

發送消息:

SendMessage(HWND_BROADCAST,WM_LBUTTONDOWN,0,0);

接收消息:

GetMessage(&msg,NULL,0,0);

投遞消息:

PostMessage(HWND_BROADCAST,WM_LBUTTONDOWN,0,0);

獲取消息:

PeekMessage(&msg,NULL,0,0);

轉換消息:

TranslateMessage (&msg);

分發消息:

DispatchMessage (&msg);

等待消息:

WaitMessage();

發送退出消息:

PostQuitMessage(0);

安裝消息鉤子:

SetWindowsHookEx(WH_KEYBOARD,keyBoardProc,0,tid);

卸載消息鉤子:

UnhookWindowsHookEx(hhk);

以上是作者目前就相關技術所接觸的最常用的一批API函數,這肯定不是最完整的,但是都是博主從一份份資料中挖掘出來的,也希望讀者能多多補充,相互進步!

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • API
    API
    +關注

    關注

    2

    文章

    1620

    瀏覽量

    64063
  • API函數
    +關注

    關注

    0

    文章

    15

    瀏覽量

    8263
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    達夢數據庫常用管理SQL命令詳解

    達夢數據庫常用管理SQL命令詳解
    的頭像 發表于 06-17 15:12 ?597次閱讀
    達夢數據庫<b class='flag-5'>常用</b>管理SQL命令<b class='flag-5'>詳解</b>

    MSP430常用內聯函數說明

    電子發燒友網站提供《MSP430常用內聯函數說明.docx》資料免費下載
    發表于 06-05 17:20 ?0次下載

    SSH常用命令詳解

    SSH常用命令詳解
    的頭像 發表于 06-04 11:30 ?671次閱讀

    迅為RK3568開發板驅動指南GPIO子系統GPIO子系統API函數的引入

    迅為RK3568開發板驅動指南GPIO子系統GPIO子系統API函數的引入
    的頭像 發表于 05-29 14:05 ?464次閱讀
    迅為RK3568開發板驅動指南GPIO子系統GPIO子系統<b class='flag-5'>API</b><b class='flag-5'>函數</b>的引入

    詳解RTOS中的Hook函數

    Hook函數是RTOS中的一個關鍵特性,通過該函數,用戶可以增強對任務管理的控制,定義系統行為。
    的頭像 發表于 03-24 16:14 ?394次閱讀

    Kubernetes Pod常用管理命令詳解

    Kubernetes Pod常用管理命令詳解
    的頭像 發表于 02-17 14:06 ?512次閱讀
    Kubernetes Pod<b class='flag-5'>常用</b>管理命令<b class='flag-5'>詳解</b>

    常用SQL函數及其用法

    SQL(Structured Query Language)是一種用于管理和操作關系數據庫的編程語言。SQL 提供了豐富的函數庫,用于數據檢索、數據更新、數據刪除以及數據聚合等操作。以下是一些常用
    的頭像 發表于 11-19 10:18 ?1455次閱讀

    RNN的損失函數與優化算法解析

    函數以下幾種: 交叉熵損失函數 :交叉熵(Cross Entropy)是一種評估兩個概率分布之間差異的度量方法,即通過比較模型預測的概率分布和真實概率分布之間的差異,來評估模型訓練的性能。在RNN中,交叉熵損失
    的頭像 發表于 11-15 10:16 ?1399次閱讀

    詳解kubectl常用命令

    詳解kubectl常用命令
    的頭像 發表于 11-05 15:39 ?1368次閱讀
    <b class='flag-5'>詳解</b>kubectl<b class='flag-5'>常用</b>命令

    Python常用函數大全

    在 Python 世界里,一些寶藏函數和模塊,它們可以讓你編程更輕松、代碼更高效。這篇文章將帶你一一認識這些神器,讓你的開發生活瞬間輕松不少!
    的頭像 發表于 10-27 17:20 ?921次閱讀

    RTOS中鉤子函數的用途及用法

    在很多操作系統中,都存在這樣一類API函數接口:HOOK函數(也叫鉤子函數)。
    的頭像 發表于 10-23 16:25 ?783次閱讀
    RTOS中鉤子<b class='flag-5'>函數</b>的用途及用法

    什么叫系統的頻率響應函數?它和傳遞函數何關系

    工具。它是一個復數函數,通常用H(jω)表示,其中ω是角頻率,j是虛數單位。頻率響應函數可以提供系統在頻域內的行為特征,包括系統的增益、相位以及共振頻率等信息。 頻率響應函數與傳遞
    的頭像 發表于 10-18 09:29 ?4837次閱讀

    labview常用的基本函數

    電子發燒友網站提供《labview常用的基本函數.pdf》資料免費下載
    發表于 10-15 17:29 ?7次下載

    labview中常用的字符串函數哪些?

    在LabVIEW中,常用的字符串函數廣泛覆蓋了對字符串的各種操作,包括但不限于格式化、搜索、替換、連接、計算長度等。以下是一些常用的字符串函數及其簡要說明: 字符串長度(String
    的頭像 發表于 09-04 15:43 ?1857次閱讀

    簡述socket編程中的常用函數

    Socket編程是一種基于TCP/IP協議的網絡編程技術,它允許應用程序通過網絡進行通信。在Socket編程中,許多常用函數,它們用于創建、配置、連接、發送和接收數據等操作。以下是對這些
    的頭像 發表于 08-16 10:49 ?893次閱讀
    主站蜘蛛池模板: 拍真实国产伦偷精品 | 欧美激情xxxx性bbbb | 亚洲国产情侣偷自在线二页 | 亚洲第一黄色网址 | 3344a毛片在线看 | 天堂网av2014| 午夜爽爽性刺激一区二区视频 | 国产精品美女一区二区三区 | 国产欧美日韩综合精品一区二区 | 人人干国产 | 国产盗摄女子私密保健视频 | 热久久久久久 | 天天操天天爱天天干 | 欧美三级一区二区三区 | 老师受不了了好硬好大 | 我把美女日出白浆 | 色丁香婷婷 | 亚洲黄色小说网站 | 亚洲伊人天堂 | 久在草影院 | 色在线看 | 99久久久久国产精品免费 | 午夜在线播放视频在线观看视频 | 欧美色视频日本片免费高清 | 亚洲一区二区三区电影 | 欧美日一级 | 黄色激情小说视频 | 张柏芝三级无删减在线观看 | 亚洲天堂网站在线 | 天天噜天天干 | 农村妇女高清毛片一级 | 婷婷网五月天天综合天天爱 | 啪啪亚洲 | 99精品国产高清自在线看超 | 日本又粗又长一进一出抽搐 | 日本aaaa毛片在线看 | 亚洲欧美在线一区二区 | 在线www天堂资源网 在线播放 你懂的 | 天天夜夜久久 | 特级毛片aaa免费版 特级毛片a级毛免费播放 | 中文字幕天堂在线 |