使用WriteFile() GetLastError()的返回值是5,如何提升权限?谢谢
ComHandle=CreateFile(Port,
GENERIC_READ||GENERIC_WRITE,
0,NULL,OPEN_EXISTING,NULL,NULL);
if(ComHandle==INVALID_HANDLE_VALUE){MessageBox("1"); return 0;}
char tmpP[11]="9600,n,8,1";//设置通讯参数
DCB dcb;
if(GetCommState(ComHandle,&dcb)==0){MessageBox("2");return -1;}
if(BuildCommDCB(tmpP,&dcb)==0){MessageBox("3");return -1;}
if(SetCommState(ComHandle,&dcb)==0){MessageBox("4");return -1;}
COMMTIMEOUTS TimeOuts;//设置超时时间
GetCommTimeouts(ComHandle,&TimeOuts);
TimeOuts.ReadIntervalTimeout=2000;
TimeOuts.ReadTotalTimeoutConstant=400;
TimeOuts.ReadTotalTimeoutMultiplier=400;
TimeOuts.WriteTotalTimeoutMultiplier=40;
TimeOuts.WriteTotalTimeoutConstant=400;
if(SetCommTimeouts(ComHandle,&TimeOuts)==0){MessageBox("6");return -2;}
if(SetupComm(ComHandle,2048,1024)==0){MessageBox("7");return -3;}//设置缓冲区
//PurgeComm(ComHandle,PURGE_RXABORT||PURGE_RXCLEAR);
//PurgeComm(ComHandle,PURGE_TXABORT||PURGE_TXCLEAR);
if(ComHandle<0){MessageBox("111");return 111;}
BYTE m_SendBuffer[1];
DWORD m_Number;
m_SendBuffer[0]=0x06;
if(WriteFile(ComHandle, m_SendBuffer, 1 , &m_Number,NULL)==0)
{
DWORD ErrorCode;
ErrorCode=GetLastError();
char temp[5];
sprintf(temp,"%d",ErrorCode);
MessageBox(temp);
MessageBox("here!");
return -5;
}
CloseHandle(ComHandle);
// Write();
MessageBox(Port);
return 0;相关推荐
如何使用系统API函数
如何使用系统API函数实例源码
Windows远程线程注入实战:七步原理、Debug陷阱与杀软绕过
远程线程注入是Windows进程内存操作的核心技术,本质是在目标进程地址空间动态分配可执行内存并启动代码,涉及权限提升、跨进程内存管理、API地址解析与NX保护绕过等底层机制。其技术价值在于实现无文件落地的静默控制,广泛应用于系统调试、软件热更新和安全研究场景。实践中,Debug模式下的ILT跳转表、/RTC栈检查、0xCC填充等编译器行为极易导致远程崩溃;而杀软检测主要基于ETW行为日志(如CreateRemoteThread+VirtualAllocEx+WriteProcessMemory序列),非文
Windows本地提权:内核驱动漏洞与命名管道攻击链剖析
本地提权是操作系统安全领域的核心议题,指攻击者在已获得普通用户权限后,通过利用系统漏洞或设计缺陷,将权限提升至系统最高级别。其原理通常涉及绕过内核与用户态之间的安全边界,利用驱动漏洞或进程间通信机制中的逻辑缺陷。从技术价值看,理解本地提权有助于深入掌握操作系统的安全模型、内存管理和权限隔离机制。在实际应用场景中,此类技术常被用于渗透测试、漏洞研究及红蓝对抗演练,以评估系统在面对高级威胁时的韧性。本文聚焦于Windows环境下,结合内核驱动漏洞与命名管道构建的经典攻击链,详细解析如何通过驱动漏洞和命名管道实现
串口通信功能的实现小结
利用VC++实现串口通信的方法有多种,我们采取直接调用Window API中的一系列标准的串口通信函数,直接用这些标准函数来完成Windows下面的串口通信编程[11]。利用WindowsAPI函数控制利用API 函数实现对RS232串口通信的访问,在实现控制通信中,我们必定要调动3个函数来实现对串口的控制: CreatFile()函数实现串口初始化并打开串口;
如何使用VC实现串口通信
详细介绍了怎么用VC做串口通信,并附有详细代码。


