打印

请教 hotAjax工具的使用 进行CRC**

[复制链接]
2869|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
cd666|  楼主 | 2013-5-25 12:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
hotpower您好,
请问:hotAjax工具中,功能选择为CRC算法逆向,
在什么位置输入原始数据,以获得多项式和初值,以及移位方向等信息。谢谢

有如下数据,每列倒数第2个数据为前面数据的和校验,最后一字节为CRC校验 求校验的初值与多项式。
00        0A        00        00        00        00        00        00        0A        46
00        09        00        00        00        00        00        00        09        3F
00        04        01        00        00        00        00        00        05        22
00        0C        02        00        00        00        00        00        0E        60
00        06        00        00        00        00        00        00        06        2A
01        07        00        00        00        00        00        00        08        39
01        08        01        00        00        00        00        00        0A        46
01        02        17        00        FF        01        00        00        1B        A3
02        0B        00        00        00        00        00        00        0D        5D
02        00        00        20        08        00        02        00        2C        D4
02        05        00        00        00        00        00        00        07        33
02        07        00        00        00        00        00        00        09        41
02        08        01        00        00        00        00        00        0B        4E
02        02        17        00        FF        01        00        00        1C        AB
02        04        03        00        00        00        00        00        09        3E
02        0C        02        00        00        00        00        00        10        70
02        06        00        00        00        00        00        00        08        3A                               
02        04        07        00        00        00        00        00        0D        56                               
00        04        03        00        00        00        00        00        07        2E                               
00        05        00        00        00        00        00        00        05        23                               
00        0B        00        00        00        00        00        00        0B        4D                               
00        00        00        20        08        00        02        00        2A        C4                               
00        01        02        52        80        01        01        15        26        05        00        00        18        26
00        01        02        52        80        02        01        16        26        05        00        00        1A        32
00        01        02        52        80        03        01        17        26        05        00        00        1C        3E
00        01        02        52        80        04        01        18        26        05        00        00        1E        4A
00        01        02        52        80        05        01        1A        26        05        00        00        21        5B
00        01        02        52        80        06        01        1B        26        05        00        00        23        67
00        01        02        52        80        07        01        1C        26        05        00        00        25        73
00        01        02        52        80        00        01        1D        26        05        00        00        1F        47
00        01        02        52        80        01        01        1E        26        05        00        00        21        53
03        01        02        52        80        03        01        00        27        05        00        00        09        F2
04        01        02        52        80        05        01        23        26        05        00        00        2E        B8
04        01        02        52        80        06        01        24        26        05        00        00        30        C4
04        01        02        52        80        07        01        25        26        05        00        00        32        D0
04        01        02        52        80        02        01        28        26        05        00        00        30        BC
04        01        02        52        80        03        01        29        26        05        00        00        32        C8
04        01        02        52        80        04        01        2A        26        05        00        00        34        D4


相关帖子

沙发
cd666|  楼主 | 2013-5-25 17:43 | 只看该作者
我把倒数第2字节去掉后,得到的多项式权值为0x3F,初值为0,方向为左移.
不知是我那里搞错了,还是这个本来就是这么多.


volatile unsigned char GetCRC8L(unsigned char crcval)
{//(可以不要初值crcinit,多字节CRC8时入口需要对crcval做处理)
unsigned char i, crc;
  crc = crcinit ^ crcval;//初值^明文,将CRC编码矩阵转化为CRC编码表
  for(i = 0;i < 8;i ++)//每字节8位
  {
    if (crc & 0x80)//左移**最高位
    {
      crc <<= 1;
      crc ^= crcpol;//权值
    }
    else
    {
      crc <<= 1;
    }
  }
  return crc;
}


void MakeCRC8Ltable(void)
{unsigned char i;
        for(i=0;i<16;i++)
        {
                CRC8Table[i]=GetCRC8L(i*16);
        }
}


//CRC位域4查表算法(小端):
unsigned char check_CRCR8(unsigned char *crcBuff, unsigned char crcLen) {
unsigned char i;
unsigned char crc = 0x00;
unsigned char crcTemp;
        for(i = 0; i < (crcLen * 2); i ++)
        {
                if (i & 1)
                        crcTemp = crcBuff[i >> 1] >> 4;
                else
                        crcTemp = crcBuff[i >> 1] & 0x0F;
               
                crc = (crc >> 4) ^ CRC8Table[(crc & 0x0F) ^ crcTemp];
        }
        return crc;
}

void main(void)
{unsigned char crc1;
unsigned char crc2;
unsigned char crc3;
        crcinit = 0x00;
        while(++crcpol)
        {
                MakeCRC8Ltable();
                crc1 = check_CRCR8((unsigned char *)dataTable1, sizeof(dataTable1) - 1);
                crc2 = check_CRCR8((unsigned char *)dataTable2, sizeof(dataTable2) - 1);
                crc3 = check_CRCR8((unsigned char *)dataTable3, sizeof(dataTable3) - 1);
                if((crc1 == 0)&&(crc2==0)&&(crc3==0))
                                while(1);
               
        }
}

使用特权

评论回复
板凳
hotpower| | 2014-8-30 21:33 | 只看该作者
很难

使用特权

评论回复
地板
雁塔菜农| | 2014-9-17 11:16 | 只看该作者
不知楼主解来没有?

使用特权

评论回复
5
hotpower| | 2015-10-6 13:43 | 只看该作者
我用最新版本的HotWC3穷举失败。

使用特权

评论回复
6
hotpower| | 2017-5-2 15:51 | 只看该作者
实在没方法!!!

000A0000000000000A46
0009000000000000093F
00040100000000000522
000C0200000000000E60
0006000000000000062A
01070000000000000839
01080100000000000A46
01021700FF0100001BA3
020B0000000000000D5D
02000020080002002CD4
02050000000000000733
02070000000000000941
02080100000000000B4E
02021700FF0100001CAB
0204030000000000093E
020C0200000000001070
0206000000000000083A
02040700000000000D56
0004030000000000072E
00050000000000000523
000B0000000000000B4D
00000020080002002AC4
0001025280010115260500001826
0001025280020116260500001A32
0001025280030117260500001C3E
0001025280040118260500001E4A
000102528005011A26050000215B
000102528006011B260500002367
000102528007011C260500002573
000102528000011D260500001F47
000102528001011E260500002153
03010252800301002705000009F2
0401025280050123260500002EB8
04010252800601242605000030C4
04010252800701252605000032D0
04010252800201282605000030BC
04010252800301292605000032C8
040102528004012A2605000034D4
00-FF
$,,,!,LA
$,,,!,RA
开始权值=00 开始时间:下午3:49:59
$,,,!,LA
$,,,!,RA
结束时间:下午3:51:15

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

47

主题

153

帖子

0

粉丝