Вскрытие формата файла

Тема в разделе "WASM.RESEARCH", создана пользователем BOB4uK, 12 авг 2009.

  1. BOB4uK

    BOB4uK New Member

    Публикаций:
    0
    Регистрация:
    12 авг 2009
    Сообщения:
    10
    Всем привет!
    Уже весь мозг сломал, не могу вскрыть двоичный файл созданный сторонней программо.
    Есть программа, которая создает двоичные файлы. Структура файлов не известна!
    Как можно извлечь информацию? С чего начать????
    Помогите пожалуйста.

    Пример файла и программу прилагаю...
     
  2. RET

    RET Well-Known Member

    Публикаций:
    17
    Регистрация:
    5 янв 2008
    Сообщения:
    789
    Адрес:
    Jabber: darksys@sj.ms
    Начинать нужно с реверса программы
     
  3. crypto

    crypto Active Member

    Публикаций:
    0
    Регистрация:
    13 дек 2005
    Сообщения:
    2.533
    BOB4uK
    Какие-то таблицы базы данных. Формат таких файлов либо вообще неизвестен (за исключением тривиальных случаев), либо слегка кое-где описан. Но с этим никто обычно не парится, поскольку есть драйвера и язык запросов. Здесь судя по всему оригинальный формат, поэтому присоединяюсь к RET: если очень нужно, либо реверсить программу, либо пытаться понять формат с помощью дебуггера (поставить бряки скажем на функции работы с файлами, их можно посмотреть в таблице импортируемых функций в исполняемом файле). Кстати, не стоит игнорировать функции MapViewOfFile и ей подобные.
     
  4. icent

    icent New Member

    Публикаций:
    0
    Регистрация:
    23 апр 2009
    Сообщения:
    154
    Гугл в первую очередь. Очень часто все форматы уже описаны, либо есть наводки. Потом только 1 выход: реверсить и изучать хэкс-редактором байтеки..
     
  5. BOB4uK

    BOB4uK New Member

    Публикаций:
    0
    Регистрация:
    12 авг 2009
    Сообщения:
    10
    а с помощью чего можно про реверсить?
    Как можно через HEX узнать формат файла? или как читать двоичный файл не зная формата?
     
  6. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.792
    BOB4uK
    Начни с анализа того, что выдают пункты: "Информация о заказе", "Ввод данных чертежа", "расположение швов". То же содержится и в Example.spb, Triabgle150.spb, Triabgle300.spb. Диллер, исполнитель, номер заказа, дата заказа, материал, примечание, площадь, клиент, адрес клиента -- создай свой файл *.spb и сохраняй например слово "nezumi" -- посмотри на каком месте оно окажется, достаточно просматривать файл через far или hiew -- там анализа, начинающему вроде тебя часа на 2...
     
  7. crypto

    crypto Active Member

    Публикаций:
    0
    Регистрация:
    13 дек 2005
    Сообщения:
    2.533
    BOB4uK
    Если нужно просто данные вытащить, то могу посоветовать хороший способ: поищи функции работы с базой данных в этой программе, изучи, что они делают, тогда, может быть, получится написать свои функции или использовать имеющиеся (особенно, если они в dll). У меня неоднократно тако
     
  8. crypto

    crypto Active Member

    Публикаций:
    0
    Регистрация:
    13 дек 2005
    Сообщения:
    2.533
    й способ проходил.
    ЗЫ
    Блин, все-таки плохо, когда нельзя редактировать сообщение: нажал случайно не на ту клавишу и...
     
  9. BOB4uK

    BOB4uK New Member

    Публикаций:
    0
    Регистрация:
    12 авг 2009
    Сообщения:
    10
    Вам хорошо рассуждать, потому что вы с этим работали, а я первый раз столкнулся с этим, де же не знаю с какой стороны к этому вопросу подойти!
    Все что вы говорите пока для меня темный лес...
    Может есть какие нибудь обучающие примеры или уроки на конкретных примерах? Было бы просто здорово!
     
  10. crypto

    crypto Active Member

    Публикаций:
    0
    Регистрация:
    13 дек 2005
    Сообщения:
    2.533
    BOB4uK
    Все с чего-то начинали (об этом тоже на форуме много говорили). Для начала загрузи файл в IDA, выясни, на чем написана программа, посмотри таблицу импортируемых функций, найди код, работающий с файлами, имеющими расширение spb. Определи, в каком месте открывается файл, в какую переменную сохраняется хэндлер открытого файла, от него танцуй дальше: найди функции чтения, перемещения указателя файла...
    При необходимости продебужь непонятные места.
     
  11. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.792
    BOB4uK
    У тебя три файла, посмотри что у них общего -- это заголовок, содержимое файлов показывает программа, там координаты точек и растояния между точками, кроме того: диллер, исполнитель, номер заказа, дата заказа, материал, примечание, площадь, клиент, адрес клиента. Если хочешь. чтобы твою работу делали за тебя -- "Добро пожаловать в Wasm.Commerce!" -- но это не бесплатно :dntknw:
     
  12. crypto

    crypto Active Member

    Публикаций:
    0
    Регистрация:
    13 дек 2005
    Сообщения:
    2.533
    Mikl___
    Да, наверное так, как ты предлагаешь, даже будет проще, чем ковыряться в программе.
     
  13. BOB4uK

    BOB4uK New Member

    Публикаций:
    0
    Регистрация:
    12 авг 2009
    Сообщения:
    10
    Вы наверное правы! Создать новую тему или эту можно переместить?
    А может уже есть желающие с ценами? Ваши предложения?
     
  14. crypto

    crypto Active Member

    Публикаций:
    0
    Регистрация:
    13 дек 2005
    Сообщения:
    2.533
    BOB4uK
    Перенести тему поможет модератор.