Hacker编程常用API函数

1.窗口信息
 
MS 为我们提供了打开特定桌面和枚举桌面窗口的函数。
 
hDesk=OpenDesktop(lpszDesktop,0,FALSE,DESKTOP_ENUMERATE);
 
//打开我们默认的Default 桌面;
 

GetWindowText(hWnd,szWindowText,dwMaxCount);//取得编辑框中的文字
 

GetWindowThreadProcessId(hWnd,&dwPID);
 


2.磁盘信息
 
获得系统所有磁盘的信息,包括软盘,硬盘,光盘等等;
 
GetLogicalDriveStrings(dwBufferLength,lpBuffer); //获得逻辑设备的信息;
 

GetVolumeInformation(lpRootPathName,lpVolumeNameBuffer,
 
dwVolumeNameSize,&dwVolumeSerialNumber,
 
&dwMaximumComponentLength,&dwFileSystemFlags,
 
lpFileSystemNameBuffer,dwFileSystemNameSize);
 
//获得磁盘卷信息,包括卷名称和格式类型;
 

GetDiskFreeSpaceEx(lpRootPathName,&FreeBytesAvailable,
 
&TotalNumberOfBytes,&TotalNumberOfFreeBytes);
 
//探测磁盘的空间使用情况;
 


3.环境变量
 
从注册表中获得环境块的信息:
 
RegOpenKeyEx(HKEY_LOCAL_MACHINE,RegKey,0,KEY_QUERY_VALUE,&hKey);
 
//打开注册表的键;
 

RegEnumValue(hKey,dwIndex,EnvironVariable,
 
&dwVariableLength,NULL,NULL,NULL,NULL);
 
//查询我们需要的信息值;
 

GetEnvironmentVariable(EnvironVariable,EnvironString,1024);
 
//获得环境变量的字符串信息;
 


4.事件记录信息
 
OpenEventLog(NULL,szLog);
 
//打开时间日志记录;
 

GetOldestEventLogRecord(hEvent,&dwThisRecord);
 
//获得最新的日志信息,以便继续查找;
 

ReadEventLog(hEvent,EVENTLOG_FORWARDS_READ │ EVENTLOG_SEQUENTIAL_READ,
 
0,pEventLogRecord,1024*32,&dwRead,&dwNeeded)
 
//读取日志信息;
 

LookupAccountSid(NULL,pSid,szName,&dwName,szDomain,&dwDomain,&SNU);
 
//获取账户的SID,以便获得账户的用户名称;
 

GetNumberOfEventLogRecords(hEvent,&dwTotal);
 
//获得事件日志的总数;
 

CloseEventLog(hEvent);
 
//不要忘记关闭事件句柄;
 


5.网络共享
 
NetShareEnum(NULL,dwLevel,(PBYTE
 
*)&pBuf,MAX_PREFERRED_LENGTH,&entriesread,&totalentries,&resume);
 
//列举所有的共享目录及相关信息;
 

NetApiBufferFree(pBuf);//释放缓冲区;
 

NetShareDel(NULL,(char *)lpShareNameW,0); //删除网络共享目录;
 


6.网络适配器信息
 
我们要探测NIC的信息和网络流量;
 
GetAdaptersInfo(&AdapterInfo,&OutBufLen);
 
//获取适配器信息;
 


7.系统性能
 
获取系统的存储器使用情况;
 
GetPerformanceInfo(&PerfInfo,sizeof(PERFORMACE_INFORMATION))
 
//获取系统性能信息;
 


8.进程/线程/模块信息
 
在此我们使用工具帮助函数(ToolHelp32)和系统
 
OpenProcessToken(GetCurrentProcess(),TOKEN_QUERY │
 
TOKEN_ADJUST_PRIVILEGES,&hToken);
 
//打开进程的令牌,提升权限;
 

AdjustTokenPrivileges(hToken,FALSE,&TokenPrivileges,sizeof(TOKEN_PRIVILEGES
 
),NULL,NULL);
 
//将进程的权限提升到支持调试(Debug);
 

CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
 
//创建进程的快照;
 

Process32First(hProcessSnap,&ProcessEntry32);
 
//枚举所有进程;
 

OpenProcess(PROCESS_QUERY_INFORMATION,FALSE,ProcessEntry32.th32ProcessID);
 
//打开特定进程,以查询进程相关信息;
 

GetProcessTimes(hProcess,&CreateTime,&ExitTime,&KernelTime,&UserTime);
 
//获取进程的时间信息;
 

GetProcessMemoryInfo(hProcess,&PMCounter,sizeof(PMCounter));
 
//获取进程的存储区信息;
 

GetPriorityClass(hProcess);
 
//获取进程的优先权;
 

GetProcessIoCounters(hProcess,&IoCounters);
 
//获取进程的IO使用情况;
 

CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, dwProcessID);
 
//创建模块快照;
 

Module32First(hModuleSnap, &ModuleEntry32);
 

Module32Next(hModuleSnap, &ModuleEntry32);
 
//枚举进程模块信息;
 

CreateToolhelp32Snapshot(TH32CS_SNAPTHREAD, 0);
 
//创建线程快照;
 

Thread32First(hThreadSnap, &ThreadEntry32);
 
Thread32Next(hThreadSnap, &ThreadEntry32);
 
//枚举线程信息;
 

OpenThread(THREAD_ALL_ACCESS,FALSE,ThreadEntry32.th32ThreadID);
 
//打开线程,须自己获得此函数地址;
 

TerminateProcess(hProcess,0);
 
//终止进程;
 

SuspendThread(hThread);
 
//悬挂线程;
 

ResumeThread(hThread);
 
//激活线程;
 


9.关机
 
AdjustTokenPrivileges(hToken,FALSE,&TokenPrivileges,sizeof(TOKEN_PRIVILEGES),NU
 
LL,NULL);
 
//调整进程令牌,使其支持关机;
 

ExitWindowsEx(EWX_LOGOFF,0); //注销系统;
 

LockWorkStation(); //锁定系统;
 

InitiateSystemShutdown(NULL,szMessage,dwTimeout,FALSE,bSig);
 
//支持到记时和消息显示的关机/重启;
 

SetSystemPowerState(bSig,FALSE);//系统休眠;
 


10.用户信息
 
NetUserEnum(NULL,dwLevel,FILTER_NORMAL_ACCOUNT,(LPBYTE*)&pBuf,
 
dwPrefMaxLen,&dwEntriesRead,&dwTotalEntries,&dwResumeHandle);
 
//枚举系统用户信息;
 

NetUserDel(NULL,lpUserNameW); //删除指定用户;
 


11.系统版本信息
 
GetVersionEx((LPOSVERSIONINFO)&osviex);//获取操作系统的版本信息;
 
也可以通过注册表(HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows
 
NT\CurrentVersion)获取相关信息:
 

GetTickCount();
 
//获取开机时间;
 

GetComputerName(szInfo,&dwInfo);
 
//获取计算机名称;
 

GetUserName(szInfo,&dwInfo);
 
//获取计算机用户名;
 

GetWindowsDirectory(szInfo,MAX_PATH+1);
 
//获取Windows目录;
 

GetSystemDirectory(szInfo,MAX_PATH+1);
 
//获取系统目录;
 


12.文件操作
 
DeleteFile(LPCTSTR lpFileName);
 
//删除文件
 

CopyFile(LPCTSTR lpExistingFileName,//存在的源文件
 
LPCTSTR lpNewFileName,//要复制到的目标文件
 
BOOL bFailIfExists
 
)
 
//拷贝文件
 

MoveFile(LPCTSTR lpExistingFileName,//源文件
 
LPCTSTR lpNewFileName//目标文件
 
)
 
//移动文件
 

CreateDirectory(LPCTSTR lpPathName,
 
LPSECURITY_ATTRIBUTES lpSecurityAttributes)
 
//创建目录
 

RemoveDirectory(LPCTSTR lpPathName)
 
//删除目录
 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值