我现在有一个结构体存的文件,但不知道结构体的结构。只有文件的内容,我想从中分析出数据来。请大家指教。
我想问的是分析他的结构体构成有什么办法?我的一个思路是得到该文件的长度,那么该结构提大大小该大于2小于文件的结构体长度。假设结构体的大小为struct_length,文件的长度 (file_length),那么file_length/struct_length=i(整数)。就是说结构体的大小为i,再根据结构体的大小i,穷举构成该结构体的可能组合。但该方法计算量特别大,而且很难能穷举他的可能组合,还有个字节对齐的问题。昨天晚上我勉强去举了一下遗憾没有得到有用的实际信息。请问大家还有没有其他的好办法??思路代码都可以,磕头谢谢了!
结构存的文件见下:
  估计大家看不清楚,请留下你们的email,我发原文件给大家。

解决方案 »

  1.   

    我用ultraedit打开看过,给我感觉很难说清楚他的数据类型.但是肯定有int类型的.请楼上大哥留email,帮我看看!
      

  2.   

    一般都是用UEDIT打开,分析,一般都不好得出结论。不同的软件可以生成不通结构文件。加密的话那就更难分析了。
    要有相关的线索和资料才能推出。
      

  3.   

    没有文件头!文件存储就是结构体!这点我可以肯定,还有就是其中包含int是可以肯定的!
      

  4.   

    光靠这些是没用的。首先,必须知道文件的用途,目的。乱猜是浪费时间的。
    7F 90 A1 32 CF 5F E2 40 FF FF FF FF 00 00 FF FF 02 01 00 7F 90 A1 32 CF 5F E2 40 00 FF 00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
      

  5.   

    1  file_length % struct_length == 0          :true
    2  随机媒举几个i*struct_length 判断是否合格的结构。
    穷举不建议,频繁访问磁盘的效率很低的,要么判断一下(就是条件2)就一次把它写到内存再操作。
    至于你所谓的“字符对齐”问题,哪个是在结构的范围内是不会出现这样的问题的。