MFc下,想把别的应用程序发给串口的指令抓包抓过来,要怎么做求大神~~~~~~~~~~

MFc下,想把别的应用程序发给串口的指令抓包抓过来,要怎么做求大神~~~~~~~~~~,第1张

MFC抓?那是不太现实的。

有三种方式:

1、写驱动,进入RING0抓IRP;

2、逆向别的应用程序;

3、使用AccessPort。

3最简单,因为下载下来然后监控指定串口就行了。

你是在破解别人的通讯协议吗?或者是你自己把协议设计成这样防别人破解?

看你的追问:

“我这边自己在发送之前先改了 接收串口的波特率,但是循环里它执行了一次,后面的发送串口就不发送了。”——执行了一次就不发送了,程序是否卡在了接收函数调用上?这种情况说明你发完之后,接收端口并没有产生数据。(请检查你发送的数据及波特率是否有问题,以致接收端不能产生正确响应)

“还有一个情况就是能够接收,但是改完以后它只能接收到正确的数据仅是第一次,之后收到的数据都是错误的。”——请检查你第一次接收数据,是否把所有返回的数据都接收完,一个byte都没有在接收队列中留下。(如果你不能确保接收队列中是否会剩余数据,请你每次接收之后,将串口队列数据清空,以确保下次接收的时候不会受上次接收结果干扰)

其他情况我就不了解了。

使用MSComm控件串口接收数据,一般设置成SetRThreshold(1);

//参数1表示每当串口接收缓冲区中有多于或等于1个字符时将引发一个接收数据的OnComm事件

并且串口每次接收到的数据个数是不确定的,如果你自己确定需要接收到多少个数据的话,就好办了。

//全局变量

BYTE Comm_Packet_Len; //需要接收到的数据个数

BYTE Comm_DataBuffer[20]; //依次存放串口接收到的数据

long Comm_Packet_Index; //每次收到数据个数,并标志数据应放在全局数组位置的索引

//每次处理完数据后清空,为下一次接收做准备

void CEOLDlg::OnMscomm()

{

// TODO: Add your control notification handler code here

VARIANT variant_inp;

COleSafeArray safearray_inp;

long len=0, k=0; //转换为数组时使用的变量

BYTE rxdata[204]; //设置BYTE数组 An 8-bit integerthat is not signed

CString strtemp; //字符型变量

int temp = 0; //临时变量

unsigned char ecuchecksum = 0; //ecu回传校验码

if(m_ctrlCommGetCommEvent() == 2) //事件值为2表示接收缓冲区内有字符

{ //以下你可以根据自己的通信协议加入处理代码

variant_inp = m_ctrlCommGetInput();//读缓冲区

safearray_inp = variant_inp; //VARIANT型变量转换为ColeSafeArray型变量

len = safearray_inpGetOneDimSize(); //得到有效数据长度

for(k = 0; k < len; k++) //将ColeSafeArray型变量转换为BYTE型数组

{

safearray_inpGetElement(&k, rxdata + k);//转换为BYTE型数组

}

for(temp = 0; temp < len; temp++)

{

Comm_DataBuffer[Comm_Packet_Index + temp] = rxdata[temp];

}

Comm_Packet_Index += len;

if(Comm_Packet_Index == Comm_Packet_Len)//接收到的数据个数等于

{

//处理接收到的数据

}

}

}

以上就是关于MFc下,想把别的应用程序发给串口的指令抓包抓过来,要怎么做求大神~~~~~~~~~~全部的内容,包括:MFc下,想把别的应用程序发给串口的指令抓包抓过来,要怎么做求大神~~~~~~~~~~、MFC 串口通信设置串口问题、MFC串口接收数据等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/10638604.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-10
下一篇 2023-05-10

发表评论

登录后才能评论

评论列表(0条)

保存