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