Идентифицировать алгоритм упаковки

Тема в разделе "WASM.RESEARCH", создана пользователем Velheart, 27 ноя 2008.

  1. Velheart

    Velheart New Member

    Публикаций:
    0
    Регистрация:
    2 июн 2008
    Сообщения:
    526
    Привет,
    столкнулся со следующей проблемой: есть приложение, которое из базы вытаскивает сжатый bmp, после чего каким-то огромным-непонятным(длл на 70кб экспортирующая только функцию распаковки) алгоритмом его распаковывает, в процессе распаковки использует такую таблицу:
    Код (Text):
    1.  db 0FFh                 ; anonymous_0
    2. .data:1000C1E7                                         ; DATA XREF: sub_10001280:loc_1000157Cr
    3. .data:1000C1E7                                         ; sub_10001280:loc_1000158Dr ...
    4. .data:1000C1E7                 db 0C0h, 40h, 60h, 70h, 78h, 7Ch
    5. .data:1000C1E7                 db 7Eh                  ; anonymous_1
    6. .data:1000C1E7                 db 7Fh                  ; anonymous_0
    7. .data:1000C1E7                 db 0E0h, 60h, 20h, 30h, 38h, 3Ch
    8. .data:1000C1E7                 db 3Eh                  ; anonymous_1
    9. .data:1000C1E7                 db 3Fh                  ; anonymous_0
    10. .data:1000C1E7                 db 0F0h, 70h, 30h, 10h, 18h, 1Ch
    11. .data:1000C1E7                 db 1Eh                  ; anonymous_1
    12. .data:1000C1E7                 db 1Fh                  ; anonymous_0
    13. .data:1000C1E7                 db 0F8h, 78h, 38h, 18h, 8, 0Ch
    14. .data:1000C1E7                 db 0Eh                  ; anonymous_1
    15. .data:1000C1E7                 db 0Fh                  ; anonymous_0
    16. .data:1000C1E7                 db 0FCh, 7Ch, 3Ch, 1Ch, 0Ch, 4
    17. .data:1000C1E7                 db 6                    ; anonymous_1
    18. .data:1000C1E7                 db 7                    ; anonymous_0
    19. .data:1000C1E7                 db 0FEh, 7Eh, 3Eh, 1Eh, 0Eh, 6
    20. .data:1000C1E7                 db 2                    ; anonymous_1
    21. .data:1000C1E7                 db 3                    ; anonymous_0
    22. .data:1000C1E7                 db 0FFh, 7Fh, 3Fh, 1Fh, 0Fh, 7
    23. .data:1000C1E7                 db 3                    ; anonymous_1
    24. .data:1000C1E7                 db 1                    ; anonymous_0
    25. .data:1000C1E7                 db 1, 3, 7, 0Fh, 1Fh, 3Fh
    26. .data:1000C1E7                 db 7Fh                  ; anonymous_1
    27. .data:1000C1E7                 db 0FFh                 ; anonymous_0
    28. .data:1000C1E7                 db 3, 2, 6, 0Eh, 1Eh, 3Eh
    29. .data:1000C1E7                 db 7Eh                  ; anonymous_1
    30. .data:1000C1E7                 db 0FEh                 ; anonymous_0
    31. .data:1000C1E7                 db 7, 6, 4, 0Ch, 1Ch, 3Ch
    32. .data:1000C1E7                 db 7Ch                  ; anonymous_1
    33. .data:1000C1E7                 db 0FCh                 ; anonymous_0
    34. .data:1000C1E7                 db 0Fh, 0Eh, 0Ch, 8, 18h, 38h
    35. .data:1000C1E7                 db 78h                  ; anonymous_1
    36. .data:1000C1E7                 db 0F8h                 ; anonymous_0
    37. .data:1000C1E7                 db 1Fh, 1Eh, 1Ch, 18h, 10h, 30h
    38. .data:1000C1E7                 db 70h                  ; anonymous_1
    39. .data:1000C1E7                 db 0F0h                 ; anonymous_0
    40. .data:1000C1E7                 db 3Fh, 3Eh, 3Ch, 38h, 30h, 20h
    41. .data:1000C1E7                 db 60h                  ; anonymous_1
    42. .data:1000C1E7                 db 0F0h                 ; anonymous_0
    43. .data:1000C1E7                 db 7Fh, 7Eh, 7Ch, 78h, 70h, 60h
    44. .data:1000C1E7                 db 40h                  ; anonymous_1
    45. .data:1000C1E7                 db 0C0h                 ; anonymous_0
    46. .data:1000C1E7                 db 0FFh, 0FEh, 0FCh, 0F8h, 0F0h, 0E0h
    47. .data:1000C1E7                 db 0C0h                 ; anonymous_1
    48. .data:1000C25F                 db  80h ; А
    также встречается константа 4D4D5220h ("MMR ")

    и еще вот кусок запакованного файла(предположительно сами данные начинаются со смещения 0х15, а первые 0х15
    байт заголовок в базе, со мещения 0х10 первые 3 байта -- размер, записанный "моторольским" порядком, а следующие 2 --размер хвоста с доп данными, так что видимо отношения к данным не имеют):

    Код (Text):
    1. 00000000   00 26 9D 33 30 39 30 30  36 38 20 02 F8 04 58 33   .&ќ3090068 .ш.X3
    2. 00000010   00 25 96 00 F2 FF FF FF  FF FF FE 57 15 23 C6 67   .%–.тяяяяяюW.#Жg
    3. 00000020   9A 66 67 54 C1 42 A7 9E  1A 34 7D 1A 3D EB 07 0F   љfgTБB§ћ.4}.=л..
    4. 00000030   FF FF AB FD FF FF D7 FF  EC 7F FF 60 88 FF FF C2   яя«эяяЧямя`?яяВ
    5. 00000040   2B 3F 75 D6 FF FC 53 1F  B1 DE BD A8 88 88 E5 73   +?uЦяьS.±ЮЅЁ??еs
    6. 00000050   25 F9 36 16 5C 79 36 1B  33 C4 7F 27 CF 97 4E C2   %щ6.\y6.3Д'П—NВ
    7. 00000060   82 A7 E7 8A 34 7E 78 FE  EB 0E 0E 3F 57 FF F9 5D   ‚§зЉ4~xюл..?Wящ]
    8. 00000070   3A 23 AF FF 04 B9 5F 40  BF 6B FF 08 1F B1 F8 37   :#Їя.№_@їkя..±ш7
    9. 00000080   D1 2C 0F D8 22 3F EF D0  20 9B A8 45 67 CF 7F 32   С,.Ш"?пР ›ЁEgП2
    10. 00000090   D1 24 83 EA D7 FF 84 41  C1 15 C7 15 F1 F0 83 41   С$ѓкЧя„AБ.З.срѓA
    11. 000000A0   32 A9 69 FD AE 11 28 0C  20 84 38 88 88 F0 82 86   2©iэ®.(. „8??р‚†
    12. 000000B0   61 9D 59 C1 7A 84 11 80  CB 04 28 F2 E1 34 10 22   aќYБz„.ЂЛ.(тб4."
    13. 000000C0   12 CB 1C 30 40 95 CC 94  28 26 10 85 04 08 49 40   .Л.0@•М”(&.…..I@
    14. 000000D0   91 C2 53 83 F8 22 2B 86  11 07 A0 93 A1 08 70 44   ‘ВSѓш"+†.. “Ў.pD
    15. 000000E0   79 20 4F F2 FD 84 42 9C  A7 25 AB 6C BE 12 44 51   y Oтэ„Bњ§%«lѕ.DQ
    16. 000000F0   FF B0 C3 04 42 07 40 83  04 47 9B 6E 91 AE 1F E5   я°Г.B.@ѓ.G›n‘®.е
    17. 00000100   72 AE 50 E1 86 19 D8 20  48 84 C4 22 3E F7 08 8E   r®Pб†.Ш H„Д">ч.Ћ
    18. 00000110   90 55 FC 27 65 E7 08 8A  5C 20 D9 1F 6D C7 A5 FE   ђUь'eз.Љ\ Щ.mЗҐю
    19. 00000120   57 14 0B 0C 8F D9 D8 B8  48 6C 7B 7A A5 EB 04 1C   W...ЏЩШёHl{zҐл..
    20. 00000130   67 04 3B 12 08 68 2D 86  DB FA 05 FE 88 F9 87 50   g.;..h-†Ыъ.ю?щ‡P
    21. 00000140   40 81 03 94 E1 86 1E E3  14 BF 40 83 0C 30 E5 B8   @Ѓ.”б†.г.ї@ѓ.0её
    22. 00000150   22 3E 76 AC 39 98 67 B0  C3 6D BB AD 7A 09 B6 20   ">v¬9˜g°Гm»­z.¶
    23. 00000160   88 E4 47 82 21 26 43 F0  76 DB 0F E0 AB A2 2E B0   ?дG‚!&CрvЫ.а«ў.°
    24. 00000170   9B 0C 70 CE F4 0E 7C 38  30 EC 30 DB DD 02 D7 22   ›.pОф.|80м0ЫЭ.Ч"
    25. 00000180   42 1C 33 1F 06 D8 20 4C  8E 61 10 93 04 1B 6D 86   B.3..Ш LЋa.“..m†
    26. 00000190   1B 7E CC 62 12 C8 10 22  17 A0 AC 26 2C 10 20 44   .~Мb.И.". ¬&,. D
    27. 000001A0   28 46 C3 0C 36 1D EC 6B  95 60 42 75 59 53 60 81   (FГ.6.мk•`BuYS`Ѓ
    28. 000001B0   1F 0A 1D 86 DA FA A0 B2  5C 10 F9 17 09 E7 8E 18   ...†Ъъ І\.щ..зЋ.
    29. 000001C0   65 D9 58 08 08 84 13 B6  18 7F 12 87 55 9A 81 DA   eЩX..„.¶..‡UљЃЪ
    30. 000001D0   97 6F 87 C3 2C 71 65 4C  29 E0 B8 64 57 66 89 02   —o‡Г,qeL)аёdWf‰.
    Может кто-нибудь опознает в этом деле какой-нибудь известный алгоритм упаковки, как-то не очень хочется реверсить все это...

    зы: пакуются только данные(без хэдера) двухцветного битмэпа.
     
  2. Velheart

    Velheart New Member

    Публикаций:
    0
    Регистрация:
    2 июн 2008
    Сообщения:
    526
    Нагуглил, что существует метод сжатия черно-белых изображений MMR, вроде бы то, что надо, но только ссылки, которые выдает гугл ничего не говорят кроме "наш факс поддерживает сжатие MMR ", может кто-нибудь с этой штукой сталкивался?
     
  3. keYMax

    keYMax New Member

    Публикаций:
    0
    Регистрация:
    2 июл 2003
    Сообщения:
    276
    Адрес:
    Новоуральск
    Может это?
    h**p://rain.ifmo.ru/cat/view.php/theory/data-compression/facsimile-compression-2006
     
  4. Velheart

    Velheart New Member

    Публикаций:
    0
    Регистрация:
    2 июн 2008
    Сообщения:
    526
    keYMax
    Сенкс, только полминуты назад сам нашел эту статью =) На РСДНе тоже кто-то полгода назад искал и ни одного ответа, думаю готовых исходников мне не найти =(
     
  5. keYMax

    keYMax New Member

    Публикаций:
    0
    Регистрация:
    2 июл 2003
    Сообщения:
    276
    Адрес:
    Новоуральск
    Velheart

    :) был бы у нас на работе инет побыстрее запостил бы пораньше

    Может быть поиск через гуглокод по словам "ccitt t4" выдаст что нибудь дельное...
     
  6. reverser

    reverser New Member

    Публикаций:
    0
    Регистрация:
    27 янв 2004
    Сообщения:
    615
    Залей куда-нибудь длл, по сжатым данным гадать можно долго.
    P.S. CCITT Group 3 and Group 4:
    http://www.google.com/codesearch?hl=en&q=show:CXzEWfHGe_8:7U5a7C6wGdc:hRPIhPapjhE
     
  7. Velheart

    Velheart New Member

    Публикаций:
    0
    Регистрация:
    2 июн 2008
    Сообщения:
    526
    Всем сенкс, манагер сказал, что можно просто использовать эту длл, так что проблема отпала =)