100分求教HOOK recv后数据包的问题,不够可以再加,谢谢,在线等……

radarhp 2008-02-24 07:36:42
VC的DLL hook recv以后,拿到了封包数据,格式化%x,数据如下:
8,fffffff5,fffffff6,fffffff7,fffffff8,49,fffffff1,fffffff2

另外,我写的VB程序发送的数据是&H8, &HF5, &HF6, &HF7, &HF8, &H49, &HF1, &HF2


请问为什么会在f5前面多了那么6个f,为什么格式化的结果不是8,f5,f6,f7,f8,49,f1,f2
另外8和49的前面怎么又不灭有那6个f呢?

请大家指点,谢谢
...全文
106 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
radarhp 2008-02-24
  • 打赏
  • 举报
回复
感谢兄弟的指点,测试成功,由衷的感谢,结帖
cnzdgs 2008-02-24
  • 打赏
  • 举报
回复
我最怕的是回答了问题楼主理解不了,反去相信其它人给出的错误回答。
cnzdgs 2008-02-24
  • 打赏
  • 举报
回复
如果你不嫌麻烦,比较时在每个lpBuffers->buf[]前加上(BYTE)强制转换也行。
radarhp 2008-02-24
  • 打赏
  • 举报
回复
谢谢指点,偶试试,完了就结帖,再次感谢兄弟对我们这种水准的程序员无私指点
cnzdgs 2008-02-24
  • 打赏
  • 举报
回复
判断前先定义一个PBYTE p=(PBYTE)lpBuffers-> buf,然后用p[]来比较就可以了。
radarhp 2008-02-24
  • 打赏
  • 举报
回复
偶就是迷惑buf里面的存放该是什么样子啊,兄弟……所以格式化输出了来看,希望能知道如何写if判断,结果格式化输出的时候又出现了负数的情况,补码这些偶搞不懂,麻烦兄弟告诉我下我的这个判断该是怎么写好吗?
cnzdgs 2008-02-24
  • 打赏
  • 举报
回复
说错了,0xF5这个写法由于没有指定类型,编译的时候认为它是无符号数,而buf[]是char型,是有符号数,所以不等。
cnzdgs 2008-02-24
  • 打赏
  • 举报
回复
因为49和0x49是不等的。
radarhp 2008-02-24
  • 打赏
  • 举报
回复
请问楼上的兄弟,那我的if判断总为假是怎么搞滴呢?vc偶很弱,麻烦兄弟指点了
cnzdgs 2008-02-24
  • 打赏
  • 举报
回复
结果是没错的,你显示的问题,格式化时char型数会自动转为int型,负数前面所有位补“1”。
jwybobo2007 2008-02-24
  • 打赏
  • 举报
回复
不清楚啊,我HOOK 过指定程序的RECV,没什么问题
radarhp 2008-02-24
  • 打赏
  • 举报
回复
附上代码
int iRet = NextProcTable.lpWSPRecv(s, lpBuffers, dwBufferCount
, lpNumberOfBytesRecvd, lpFlags, lpOverlapped
, lpCompletionRoutine, lpThreadId, lpErrno);
if ( lpBuffers->buf[0] == 0x8
&& lpBuffers->buf[1] == 0xF5
&& lpBuffers->buf[2] == 0xF6
&& lpBuffers->buf[3] == 0xF7
&& lpBuffers->buf[4] == 0xF8
&& lpBuffers->buf[5] == 0x49
&& lpBuffers->buf[6] == 0xF1
&& lpBuffers->buf[7] == 0xF2
)
{
........//DO SOMETHING....
}
sTemp3.Format("%x,%x,%x,%x,%x,%x,%x,%x"
,lpBuffers->buf[0]
,lpBuffers->buf[1]
,lpBuffers->buf[2]
,lpBuffers->buf[3]
,lpBuffers->buf[4]
,lpBuffers->buf[5]
,lpBuffers->buf[6]
,lpBuffers->buf[7]);

sTemp3的结果就是:8,fffffff5,fffffff6,fffffff7,fffffff8,49,fffffff1,fffffff2

16,548

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • AIGC Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧