吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 807|回复: 0
收起左侧

[求助] ollydbg_ SetCommTimeouts 超时覆盖设定。COM 超时设定.

[复制链接]
rock_guo 发表于 2023-1-7 10:27
25吾爱币
各位前辈大家好,
以下问题属于优化应该不属于破解. 望版主老师审核. 谢谢
因为水平比较菜不知道应该如何进行了. 望指点。
事情是这样的,  有一个程序会调用.  jmp dword ptr ds:[<&api-ms-win-core-comm>; KernelBa.SetCommTimeouts 这个方法设定与COM口的超时时间.
微软解释 见链接https://learn.microsoft.com/zh-hk/previous-versions/aa909191(v=msdn.10)
                        https://learn.microsoft.com/zh-hk/previous-versions/aa909018(v=msdn.10)
其他参考. https://blog.csdn.net/caoshunxin01/article/details/79355469  SetCommTimeouts
               https://dabaojian.blog.csdn.net/article/details/47746617   COMMTIMEOUTS


windows系统利用此函数设定通讯设备读写时的超时参数,SetCommTimeouts函数声明如下:
  BOOL SetCommTimeouts(  HANDLE hFile,  LPCOMMTIMEOUTS lpCommTimeouts  );  SetCommTimeouts函数的第一个参数hFile是由CreateFile函数返回指向已打开串行口的句柄。第二个参数指向拥有超时数据的控制块COMMTIMEOUTS。如果函数调用成功,则返回值为非0;若函数调用失败,则返回值为0。


COMMTIMEOUTS主要用于串口超时参数设置。COMMTIMEOUTS结构如下:
typedef struct _COMMTIMEOUTS {
DWORD ReadIntervalTimeout;
DWORD ReadTotalTimeoutMultiplier;
DWORD ReadTotalTimeoutConstant;
DWORD WriteTotalTimeoutMultiplier;
DWORD WriteTotalTimeoutConstant;
} COMMTIMEOUTS,*LPCOMMTIMEOUTS;
————————————————


根据调试发现该程序默认是 下图  ReadIntervalTimeout;  时间换算过来要5秒钟了. 我们的数据传输量也非常少不超过20个字符. 现在要等7-10秒时间太长了. 希望能在3秒内完成传输.
因为我们设备就在com旁边. 很近传输有保障. 如何修改原文件把这个参数时间修改为256毫秒. ??
0118A928  88 13 00 00 00 01 00 00 88 13 00 00 00 01 00 00  &#5000;.ā.&#5000;.ā.
0118A938  88 13 00 00                                      &#5000;.


88130000   00001388  5000 毫秒
00100000   00000100  256 毫秒
88130000   00001388  5000 毫秒
00100000   00000100  256 毫秒
88130000   00001388  5000 毫秒
1111.png



发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-23 02:20

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表