Схемы, программы, прошивки Чем распаковать прошивку роутера D-Link Dir-100

Discussion in 'Электроника и Фрикинг' started by Vova66, 8 Sep 2015.

  1. Vova66

    Vova66 New Member

    Joined:
    22 May 2015
    Messages:
    6
    Likes Received:
    0
    Reputations:
    0
    Всем привет.
    Купил сей девайс экспериментов ради, т.е. для приобретения нового опыта.
    Выбор пал на него благодаря вот этой статье:
    http://www.sans.org/reading-room/whitepapers/testing/exploiting-embedded-devices-34022
    Здесь учат обращаться с железками. Мой затык оказался в том самом месте, где надо разобрать прошивку. А точнее - получить ей в виде файловой системы. Дело в том, что в книжице исследуется d-link dir-100 с прошивкой для железа версии A, в то время как такое уже не делают. В наличие есть только версии не ниже D.
    Как в книжице и написано, скачанная мною прошивка для версии А легко идентифицируется программой binwalk как нечто, хранящееся в сжимающей файловой системе squashfs. Так же легко, как и в книжице, программой firmware-mod-kit это нечто оттуда вынимается в виде юниксовой файловой системы. И вот в чём соль: для прошивок на железо версии D и выше binwalk пишет, что файловая система там WDK 2.0. Информации о ней в инете не нашёл. Вообще. Есть только какая-то виртуальная файловая система WDK.VFS, представленная неким Евгениусом из Румынии. Это всё, что известно Википедии. На сайте этого Евгениуса есть страничка контактов, которая выдаёт ошибку. Впрочем, практически уверен, что этот товарищ тут ни при делах, несмотря на то, что он крутой программер.

    Знающие, подскажите, чем выковыривать?
    Прилагаю отчёты binwalk'a: первый, для прошивки на старое железо - полностью отчёт, второй - на купленное пару месяцев назад - только фрагмент . Может binwalk ошибается?

    Спасибо!


    root@kalinik:~# binwalk DIR-100A1_FW113EUB01.bix

    DECIMAL HEXADECIMAL DESCRIPTION
    --------------------------------------------------------------------------------
    4 0x4 Realtek firmware header, ROME bootloader, image type: RUN, header version: 1, created: 8/15/2010, image size: 1690468 bytes, body checksum: 0x9D, header checksum: 0xF0
    9515 0x252B Unix home path string: "/home/release/teresa/100811_DIR100/RealTek865x_062/linux-2.4.x/"
    13046 0x32F6 mcrypt 2.2 encrypted data, algorithm: blowfish-256, mode: CBC, keymode: 8bit
    646016 0x9DB80 Squashfs filesystem, big endian, version 2.0, size: 1040979 bytes, 528 inodes, blocksize: 65536 bytes, created: Wed Aug 11 11:30:01 2010



    root@kalivv/usr# binwalk DIR100D1_FW402WWB03.bin
    DECIMAL HEXADECIMAL DESCRIPTION
    --------------------------------------------------------------------------------
    48 0x30 LZMA compressed data, properties: 0x5D, dictionary size: 33554432 bytes, uncompressed size: 1001032 bytes
    276992 0x43A00 WDK file system, version 2.0
    278464 0x43FC0 LZMA compressed data, properties: 0x5D, dictionary size: 33554432 bytes, uncompressed size: 75341 bytes
    И далее - полсотни строк типа LZMA compressed data и несколько JPEG
     
  2. POS_troi

    POS_troi Elder - Старейшина

    Joined:
    1 Dec 2006
    Messages:
    1,569
    Likes Received:
    466
    Reputations:
    108
    Правило №1 - не верь тому что пишет binwalk.
    Точнее верь но не всегда ;)
     
  3. Vova66

    Vova66 New Member

    Joined:
    22 May 2015
    Messages:
    6
    Likes Received:
    0
    Reputations:
    0
    Так и не верю, а то бы спросил, чем распаковать WDK. Вобщем легче с правилом №1 не стало. Наверное должно быть правило №2?
     
  4. SXZhbgo

    SXZhbgo New Member

    Joined:
    17 Jan 2016
    Messages:
    2
    Likes Received:
    0
    Reputations:
    0
    Ставим binwalk поновее вручную. У меня, например, Binwalk v2.1.1, после этого редактируем файл shared-ng.inc: меняем значение BINWALK на "binwalk" После этого должно извлечься.

    А за статью спасибо