赋闲在家 发表于 2023-2-16 16:09:13

已有 1 人购买  本主题需向作者支付 50 鱼币 才能浏览 购买主题

liuhongrun2022 发表于 2023-2-16 16:15:12

求助帖怎么还要鱼币?

liuhongrun2022 发表于 2023-2-16 16:21:14

你是不是设置错了?

liuhongrun2022 发表于 2023-2-16 16:29:58

求助帖价格要 50 鱼币,我买了
但是我不会
帮你找下大神吧@zhangjinxuan @isdkz @额外减小
以下为求助帖内容:

#define PAYLOAD_COUNTER_OFFSET      4
VOID CPayloadGenerator::GenerateIncrementalData(PUCHAR a_pucBuffer, ULONG a_ulBytesToCopy)//从外面输入
{
    for (ULONG i=0, j=m_ucPayloadIncrementalLastCharUsed; i<a_ulBytesToCopy; )
    {
      // Add the header counter for every 512 bytes
      if (i%m_ulPayloadHeaderCounterInterval == PAYLOAD_COUNTER_OFFSET &&
            a_ulBytesToCopy >= i+m_ulPayloadHeaderCounterSize)
      {
            AddDataHeader(a_pucBuffer+i);
            i+=m_ulPayloadHeaderCounterSize;
      }
      else
      {
            // Set the incremented payload character
            a_pucBuffer = j%256;
            m_ucPayloadIncrementalLastCharUsed = a_pucBuffer;
            i++;
            j++;
      }
    }
}


有大佬知道为什么是Add the header counter for every 512 bytes吗 有点看不懂

赋闲在家 发表于 2023-2-16 16:31:54

liuhongrun2022 发表于 2023-2-16 16:29
求助帖价格要 50 鱼币,我买了
但是我不会
帮你找下大神吧@zhangjinxuan @isdkz @额外减小


好的感谢感谢

isdkz 发表于 2023-2-16 16:36:29

不清楚你原来的代码是做什么的,这里大概的意思应该是说每512个字节加上一个数据头部,

而且这个头部好像是一个计数器,大概是用来标识是第几段的吧

是冰不是兵 发表于 2023-2-16 16:44:29

leletatann 发表于 2023-2-16 17:12:12

大家可以去另外一个帖子看,不用购买,他应该是发错了
https://fishc.com.cn/thread-224530-1-1.html

isdkz 发表于 2023-2-16 17:32:18

歌者文明清理员 发表于 2023-2-16 17:01
已举报

你领币,人家也是领个币,你举报他干啥

ExiaGN001 发表于 2023-2-16 18:04:32

因为1段内存是512B?

sfqxx 发表于 2023-2-16 18:58:12

学习一下{:10_256:}{:10_256:}{:10_256:}

zhangjinxuan 发表于 2023-2-16 23:08:37

什么东东

myd0313 发表于 2023-2-16 23:10:06

来研究研究

额外减小 发表于 2023-2-16 23:28:53

我不会windows

sfqxx 发表于 2023-5-14 18:39:53

这段代码中的注释 "// Add the header counter for every 512 bytes" 是因为该程序在生成增量数据时,在每隔m_ulPayloadHeaderCounterInterval字节后(即512字节之后)添加一个4字节的计数器来跟踪当前生成的数据量。

这个计数器在 `AddDataHeader` 函数中实现,并将被附加到a_pucBuffer数组的正确位置。具体而言,计数器通过将此函数中的i作为偏移量并使用等于 `PAYLOAD_COUNTER_OFFSET` 的常量进行引用。所以,每输入512字节,该函数会调用一次 `AddDataHeader` ,并在缓冲区中插入一个新的计数器值。

对于此语句 "if (i%m_ulPayloadHeaderCounterInterval == PAYLOAD_COUNTER_OFFSET && a_ulBytesToCopy >= i+m_ulPayloadHeaderCounterSize)" ,表示当处理到512字节数组时,才会在该缓冲区的当前位置附加一个额外的计数器。除非已经接近缓冲区边界或不足以容纳计数器和 extra byte(每个整数是4字节长),否则将尝试将计数器附加到缓冲区。
页: [1]
查看完整版本: 求助代码