Как установить binwalk на windows

Provide feedback

Saved searches

Use saved searches to filter your results more quickly

Sign up

Содержание статьи

  1. Binwalk в Windows
  2. Установка Binwalk в Windows
  3. Использование Binwalk в Windows
  4. Binwalk в Kali Linux / Linux
  5. Использование плагина Binwalk IDA
  6. Установка Binwalk в Kali Linux
  7. Заключение

Binwalk создан в далеком 2010 году Крейгом Хеффнером, но до сих пор не теряет актуальности. Это бесплатный, но мощный инструмент с открытым исходным кодом для анализа, извлечения и реверс-инжиниринга образов прошивок.

Еще по теме: Все для взлома и реверс-инжиниринга Android приложений

Вы можете использовать Binwalk для извлечения компонентов из образа прошивки и реверс-инжиниринга, чтобы понять как она устроена. Искать в бинарных файлах уязвимости, извлекать файлы и искать бекдоры или цифровые сертификаты.

Инструмент можно установить и использовать в операционных системах Linux, OSX, FreeBSD, Cygwin и Windows.

Binwalk в Windows

В этой главе я покажу, как установить Binwalk в Windows, но имейте ввиду, если вы хотите использовать все функции, лучше его использовать в Linux.

Установка Binwalk в Windows

Чтобы установить в Windows, вам необходимо сначала загрузить и установить Python. Следующим шагом будет установка модуля python-lzma. После успешного выполнения вышеуказанных шагов необходимо загрузить архив Binwalk из репозитория на GitHub.

Затем нужно распаковать загруженный файл и открыть его. Теперь откройте командную строку.

Введите следующую команду:

После выполнения этой команды будет установлен Binwalk.

На следующем этапе необходимо скачать скрипт binwalk.py. Обратите внимание, что этот файл будет помещен в отдельную папку на рабочем столе.

Следует отметить, что вы должны открыть командную строку в указанной выше папке. Затем для установки pyinstaller введите следующую команду.

Чтобы создать исполняемый файл (.exe) из binwalk.py, вы должны ввести следующую команду:

pyinstaller onefile binwalk.py

Вы можете найти исполняемый файл, перейдя в текущую папку. Затем вам нужно скопировать его в
C:\Windows\System32.

После того, были выполнены предыдущие шаги, можно удалить папку, созданную на рабочем столе.

Использование Binwalk в Windows

В этой главе покажу пример использования. Как вы можете видеть на изображении ниже, у нас есть файл изображения с именем brain.jpg.

Как установить и использовать binwalk

Чтобы проанализировать это изображение с помощью Binwalk, надо использовать следующую команду:

Выполнив указанную выше команду, вы увидите следующее:

Установить и использовать binwalk

Как видите, это не просто изображение, оно содержит ZIP-архив с файлом flag.txt. Извлечь из образа файлы, можно командой:

Тулза извлекает содержимое изображения и помещает в папку с именем _brain.jpg.extracted.

Еще по теме: Удаленная отладка вредоносных программ

Binwalk в Kali Linux / Linux

Установить Binwalk в Linux просто, но немного сложнее чем установка в Windows.

Использование плагина Binwalk IDA

Установите плагин Binwalk IDA с помощью setup.py. В нем будет указан путь к вашему установочному каталогу IDA.

python setup.py idainstall idadir=/home/user/ida

Когда вы устанавливаете плагин IDA, появятся два пункта меню в раскрывающемся списке меню поиска IDA:

  1. Binwalk signatures — сканирует загруженный IDB на предмет подписей файлов.
  2. Binwalk opcodes — сканирует загруженный IDB на предмет общих подписей опкодов.

Установка Binwalk в Kali Linux

Инструмент установлен в Kali Linux по умолчанию. Чтобы установить Binwalk и любые другие пакеты, от которых он зависит, используйте следующую команду:

sudo aptget install binwalk

Заключение

Я показал, как установить Binwalk и, как с его помощью извлекать файлы. Вы также можете использовать Binwalk для выполнения анализа энтропии. Если вы занимаетесь реверсом, тогда, рекомендую прочитать статью «Лучшие инструменты для реверс-инжиниринга».

Ever wondered what secrets might be hiding inside firmware files? That’s exactly what Binwalk is made for. It’s a widely-used, open-source tool that lets you scan firmware, dissect its structure, and uncover hidden components. In this guide, you’ll learn how to install Binwalk on Windows and use it step-by-step—even if you’re just getting started.

While Binwalk was initially built for Linux environments, many users prefer running it on Windows—especially for testing or educational purposes. In this easy-to-follow guide, we’ll show you how to set up Binwalk on Windows and walk through a real-world example to get you started.

💡 Tip: For full compatibility and better performance, Binwalk works best on Linux. But with a few tweaks, you can run it smoothly on Windows too.

🔍 What Is Binwalk and Why Might You Use It on Windows?

Binwalk is a reverse engineering utility that allows you to inspect binary files—particularly firmware images—by scanning them for embedded files, compressed data, and recognizable patterns. Security researchers, developers, and ethical hackers often use it to analyze unknown firmware and extract useful insights.

On Windows, setting up Binwalk takes a few extra steps, but it’s completely doable. Essentially, when you run a command like:

binwalk file.bin

You’re actually executing a Python script that interprets and processes that binary file for analysis—something we’ll guide you through next.

python binwalk.py file.bin

📥 Step-by-Step Guide to Install Binwalk on Windows

Follow these steps to install and configure Binwalk in a Windows environment:

1. Install Python

First, download the most recent version of Python. During the setup, make sure to check the “Add Python to PATH” option—this step makes sure Python works properly from the command line.

2. Install Required Python Modules

Open Command Prompt and enter the following (if it’s not already included in your version of Python):

pip install backports.lzma

Also, install pyinstaller to create a .exe later:

pip install pyinstaller

These modules are essential for creating a standalone executable version of Binwalk later.

3. Download Binwalk

Head over to the official Binwalk GitHub page and download the ZIP file. Extract it to a location like your Desktop. Then, navigate into that folder using CMD and run:

Open CMD in that folder and run:

python setup.py install

4. Create a Standalone Executable After Installing Binwalk on Windows (Optional)

To convert the script into a standalone .exe:

pyinstaller --onefile binwalk.py

After the build process finishes, go to the dist/ folder. You’ll find binwalk.exe there. You can copy this executable file to:

C:\Windows\System32

This allows you to run binwalk from any directory via CMD.

🚀 How to Use Binwalk on Windows for Firmware Analysis

Let’s try analyzing an image after you install Binwalk on Windows. Suppose you have a file called brain.jpg.

1. Basic Scan

Run the following command in CMD:

binwalk brain.jpg

2. Extract Hidden Files

To extract embedded files:

binwalk -e brain.jpg

This will create a folder like _brain.jpg.extracted containing the hidden files, such as flag.txt if present.

Example Output

When analyzing a suspicious image file, you might discover embedded ZIP or other archive formats. This is useful in CTFs, penetration testing, or reverse engineering firmware dumps.

✅ Final Thoughts on Installing and Using Binwalk on Windows

For anyone diving into firmware analysis or reverse engineering, Binwalk is one of those tools you’ll be glad to have on your side. While its full potential is unlocked on Linux, Windows users can still get great results—especially by following this setup guide. While its full potential is unlocked on Linux, Windows users can absolutely benefit from it—especially after following this setup guide.

💡 Need a Secure Environment to Run Binwalk on Windows?

Looking to safely analyze firmware or perform reverse engineering tasks?

➡️ If you want to run Binwalk securely and without limitations, I’d recommend trying a Windows VPS from Eldernode. It’s Instant Setup, fast, reliable, and gets the job done.

Frequently Asked Questions

Yes, Binwalk can be installed on Windows 11 as long as Python is properly configured.

Binwalk works best on Linux. However, with this guide, you can set it up and use it on Windows as well.

Yes, you may need administrative privileges, especially when copying the .exe file to System32.

No, Binwalk is a Python-based tool. You must have Python installed on your system to run it.

Binwalk can analyze firmware images, binary files, and even suspicious image files containing embedded data.

Несколько дней назад, я решил провести реверс-инжиниринг прошивки своего роутера используя binwalk.

Я купил себе TP-Link Archer C7 home router. Не самый лучший роутер, но для моих нужд вполне хватает.

Каждый раз когда я покупаю новый роутер, я устанавливаю OpenWRT. Зачем? Как правило производители не сильно заботятся о поддержке своих роутеров и со временем софт устаревает, появляются уязвимости и так далее, в общем вы поняли. Поэтому я предпочитаю хорошо поддерживаемую сообществом open-source прошивку OpenWRT.

Скачав себе OpenWRT, я так же скачал последний образ прошивки под мой новый Archer C7 с официального сайта и решил проанализировать его. Чисто ради фана и рассказать о binwalk.

Что такое binwalk?

Binwalk — это инструмент с открытым исходным кодом для анализа, реверс-инжиниринга и извлечения образов прошивок.

Созданный в 2010 году Крейгом Хеффнером, binwalk может сканировать образы прошивок и находить файлы, идентифицировать и извлекать образы файловой системы, исполняемый код, сжатые архивы, загрузчики и ядра, форматы файлов, такие как JPEG и PDF, и многое другое.

Вы можете использовать binwalk для реверс-инжиниринга прошивки для того, что бы понять как она устроена. Искать в бинарных файлах уязвимости, извлекать файлы и искать бекдоры или цифровые сертификаты. Можно так же найти opcodes для кучи разных CPU.

Вы можете распаковать образы файловой системы для поиска определенных файлов паролей (passwd, shadow и т.д.) И попытаться сломать хэши паролей. Вы можете выполнить двоичный анализ между двумя или более файлами. Вы можете выполнить анализ энтропии данных для поиска сжатых данных или закодированных ключей шифрования. Все это без необходимости доступа к исходному коду.

В общем все, что необходимо, есть :)

Как работает binwalk?

Основной особенностью binwalk является его сигнатурное сканирование. Binwalk может сканировать образ прошивки для поиска различных встроенных типов файлов и файловых систем.

Вы знаете утилиту командной строки file?

file /bin/bash
/bin/bash: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/l, for GNU/Linux 3.2.0, BuildID[sha1]=12f73d7a8e226c663034529c8dd20efec22dde54, stripped

Команда fileсмотрит на заголовок файла и ищет подпись (магическое число), чтобы определить тип файла. Например, если файл начинается с последовательности байтов 0x89 0x50 0x4E 0x47 0x0D 0x0A 0x1A 0x0A, она знает, что это файл PNG. На Википедии есть список распространенных подписей файлов.

Binwalk работает так же. Но вместо того, чтобы искать подписи только в начале файла, binwalk будет сканировать весь файл. Кроме того, binwalk может извлечь файлы, найденные в образе.

Инструменты file и binwalk используют библиотеку libmagic для идентификации подписей файлов. Но binwalk дополнительно поддерживает список пользовательских магических сигнатур для поиска сжатых / заархивированных файлов, заголовков прошивок, ядер Linux, загрузчиков, файловых систем и так далее.

Давайте повеселимся?

Установка binwalk

Binwalk поддерживается на нескольких платформах, включая Linux, OSX, FreeBSD и Windows.

Чтобы установить последнюю версию binwalk, вы можете загрузить исходный код и следовать инструкции установки или краткому руководству, доступному на веб-сайте проекта.

У Binwalk много разных параметров:

$ binwalk

Binwalk v2.2.0
Craig Heffner, ReFirmLabs
https://github.com/ReFirmLabs/binwalk

Usage: binwalk [OPTIONS] [FILE1] [FILE2] [FILE3] ...

Signature Scan Options:
    -B, --signature              Scan target file(s) for common file signatures
    -R, --raw=<str>              Scan target file(s) for the specified sequence of bytes
    -A, --opcodes                Scan target file(s) for common executable opcode signatures
    -m, --magic=<file>           Specify a custom magic file to use
    -b, --dumb                   Disable smart signature keywords
    -I, --invalid                Show results marked as invalid
    -x, --exclude=<str>          Exclude results that match <str>
    -y, --include=<str>          Only show results that match <str>

Extraction Options:
    -e, --extract                Automatically extract known file types
    -D, --dd=<type:ext:cmd>      Extract <type> signatures, give the files an extension of <ext>, and execute <cmd>
    -M, --matryoshka             Recursively scan extracted files
    -d, --depth=<int>            Limit matryoshka recursion depth (default: 8 levels deep)
    -C, --directory=<str>        Extract files/folders to a custom directory (default: current working directory)
    -j, --size=<int>             Limit the size of each extracted file
    -n, --count=<int>            Limit the number of extracted files
    -r, --rm                     Delete carved files after extraction
    -z, --carve                  Carve data from files, but don't execute extraction utilities
    -V, --subdirs                Extract into sub-directories named by the offset

Entropy Options:
    -E, --entropy                Calculate file entropy
    -F, --fast                   Use faster, but less detailed, entropy analysis
    -J, --save                   Save plot as a PNG
    -Q, --nlegend                Omit the legend from the entropy plot graph
    -N, --nplot                  Do not generate an entropy plot graph
    -H, --high=<float>           Set the rising edge entropy trigger threshold (default: 0.95)
    -L, --low=<float>            Set the falling edge entropy trigger threshold (default: 0.85)

Binary Diffing Options:
    -W, --hexdump                Perform a hexdump / diff of a file or files
    -G, --green                  Only show lines containing bytes that are the same among all files
    -i, --red                    Only show lines containing bytes that are different among all files
    -U, --blue                   Only show lines containing bytes that are different among some files
    -u, --similar                Only display lines that are the same between all files
    -w, --terse                  Diff all files, but only display a hex dump of the first file

Raw Compression Options:
    -X, --deflate                Scan for raw deflate compression streams
    -Z, --lzma                   Scan for raw LZMA compression streams
    -P, --partial                Perform a superficial, but faster, scan
    -S, --stop                   Stop after the first result

General Options:
    -l, --length=<int>           Number of bytes to scan
    -o, --offset=<int>           Start scan at this file offset
    -O, --base=<int>             Add a base address to all printed offsets
    -K, --block=<int>            Set file block size
    -g, --swap=<int>             Reverse every n bytes before scanning
    -f, --log=<file>             Log results to file
    -c, --csv                    Log results to file in CSV format
    -t, --term                   Format output to fit the terminal window
    -q, --quiet                  Suppress output to stdout
    -v, --verbose                Enable verbose output
    -h, --help                   Show help output
    -a, --finclude=<str>         Only scan files whose names match this regex
    -p, --fexclude=<str>         Do not scan files whose names match this regex
    -s, --status=<int>           Enable the status server on the specified port

Сканирования образов

Начнем с поиска сигнатур файлов внутри образа (образ с сайта TP-Link).

Запуск binwalk с параметром —signature:

$ binwalk --signature --term archer-c7.bin

DECIMAL       HEXADECIMAL     DESCRIPTION
------------------------------------------------------------------------------------------
21876         0x5574          U-Boot version string, "U-Boot 1.1.4-g4480d5f9-dirty (May
                              20 2019 - 18:45:16)"
21940         0x55B4          CRC32 polynomial table, big endian
23232         0x5AC0          uImage header, header size: 64 bytes, header CRC:
                              0x386C2BD5, created: 2019-05-20 10:45:17, image size:
                              41162 bytes, Data Address: 0x80010000, Entry Point:
                              0x80010000, data CRC: 0xC9CD1E38, OS: Linux, CPU: MIPS,
                              image type: Firmware Image, compression type: lzma, image
                              name: "u-boot image"
23296         0x5B00          LZMA compressed data, properties: 0x5D, dictionary size:
                              8388608 bytes, uncompressed size: 97476 bytes
64968         0xFDC8          XML document, version: "1.0"
78448         0x13270         uImage header, header size: 64 bytes, header CRC:
                              0x78A267FF, created: 2019-07-26 07:46:14, image size:
                              1088500 bytes, Data Address: 0x80060000, Entry Point:
                              0x80060000, data CRC: 0xBB9D4F94, OS: Linux, CPU: MIPS,
                              image type: Multi-File Image, compression type: lzma,
                              image name: "MIPS OpenWrt Linux-3.3.8"
78520         0x132B8         LZMA compressed data, properties: 0x6D, dictionary size:
                              8388608 bytes, uncompressed size: 3164228 bytes
1167013       0x11CEA5        Squashfs filesystem, little endian, version 4.0,
                              compression:xz, size: 14388306 bytes, 2541 inodes,
                              blocksize: 65536 bytes, created: 2019-07-26 07:51:38
15555328      0xED5B00        gzip compressed data, from Unix, last modified: 2019-07-26
                              07:51:41

Теперь у нас много информации об этом образе.

Образ использует U-Boot в качестве загрузчика (заголовок образа по адресу 0x5AC0 и сжатый образ загрузчика по адресу 0x5B00). Основываясь на заголовке uImage по адресу 0x13270, мы знаем, что архитектура процессора — MIPS, а ядро Linux — версия 3.3.8. И на основании образа, найденного по адресу 0x11CEA5, мы можем видеть, что rootfs является файловой системой squashfs.

Давайте теперь распакуем загрузчик (U-Boot) с помощью команды dd:

$ dd if=archer-c7.bin of=u-boot.bin.lzma bs=1 skip=23296 count=41162
41162+0 records in
41162+0 records out
41162 bytes (41 kB, 40 KiB) copied, 0,0939608 s, 438 kB/s

Поскольку образ сжат с помощью LZMA, нам нужно распаковать его:

$ unlzma u-boot.bin.lzma

Теперь у нас есть образ U-Boot:

$ ls -l u-boot.bin
-rw-rw-r-- 1 sprado sprado 97476 Fev  5 08:48 u-boot.bin

Как насчет поиска дефолтного значения для bootargs?

$ strings u-boot.bin | grep bootargs
bootargs
bootargs=console=ttyS0,115200 board=AP152 rootfstype=squashfs init=/etc/preinit mtdparts=spi0.0:128k(factory-uboot),192k(u-boot),64k(ART),1536k(uImage),14464k@0x1e0000(rootfs) mem=128M

Переменная окружения U-Boot bootargs используется для передачи параметров ядру Linux. И из вышеприведенного мы лучше понимаем флэш-память устройства.

Как насчет извлечения образа ядра Linux?

$ dd if=archer-c7.bin of=uImage bs=1 skip=78448 count=1088572
1088572+0 records in
1088572+0 records out
1088572 bytes (1,1 MB, 1,0 MiB) copied, 1,68628 s, 646 kB/s

Мы можем проверить, что образ был успешно извлечен с помощью команды file:

$ file uImage
uImage: u-boot legacy uImage, MIPS OpenWrt Linux-3.3.8, Linux/MIPS, Multi-File Image (lzma), 1088500 bytes, Fri Jul 26 07:46:14 2019, Load Address: 0x80060000, Entry Point: 0x80060000, Header CRC: 0x78A267FF, Data CRC: 0xBB9D4F94

Формат файла uImage — это в основном образ ядра Linux с дополнительным заголовком. Давайте удалим этот заголовок, чтобы получить окончательный образ ядра Linux:

$ dd if=uImage of=Image.lzma bs=1 skip=72
1088500+0 records in
1088500+0 records out
1088500 bytes (1,1 MB, 1,0 MiB) copied, 1,65603 s, 657 kB/s

Образ сжат, поэтому давайте распакуем его:

$ unlzma Image.lzma

Теперь у нас есть образ ядра Linux:

$ ls -la Image
-rw-rw-r-- 1 sprado sprado 3164228 Fev  5 10:51 Image

Что мы можем сделать с образом ядра? Мы могли бы, например, сделать поиск по строкам в образе и найти версию ядра Linux и узнать об окружающей среде, используемой для сборки ядра:

$ strings Image | grep "Linux version"
Linux version 3.3.8 (leo@leo-MS-7529) (gcc version 4.6.3 20120201 (prerelease) (Linaro GCC 4.6-2012.02) ) #1 Mon May 20 18:53:02 CST 2019

Несмотря на то, что прошивка была выпущена в прошлом году (2019 г.), когда я пишу эту статью, она использует старую версию ядра Linux (3.3.8), выпущенную в 2012 г., скомпилированную с очень старой версией GCC (4.6) также с 2012 г.!
(прим. перев. еще доверяете своим роутерам в офисе и дома?)

С опцией --opcodes мы также можем использовать binwalk для поиска машинных инструкций и определения архитектуры процессора образа:

$ binwalk --opcodes Image
DECIMAL       HEXADECIMAL     DESCRIPTION
--------------------------------------------------------------------------------
2400          0x960           MIPS instructions, function epilogue
2572          0xA0C           MIPS instructions, function epilogue
2828          0xB0C           MIPS instructions, function epilogue

Как насчет корневой файловой системы? Вместо того, чтобы извлекать образ вручную, давайте воспользуемся опцией binwalk --extract:

$ binwalk --extract --quiet archer-c7.bin

Полная корневая файловая система будет извлечена в подкаталог:

$ cd _archer-c7.bin.extracted/squashfs-root/

$ ls
bin  dev  etc  lib  mnt  overlay  proc  rom  root  sbin  sys  tmp  usr  var  www

$ cat etc/banner
     MM           NM                    MMMMMMM          M       M
   $MMMMM        MMMMM                MMMMMMMMMMM      MMM     MMM
  MMMMMMMM     MM MMMMM.              MMMMM:MMMMMM:   MMMM   MMMMM
MMMM= MMMMMM  MMM   MMMM       MMMMM   MMMM  MMMMMM   MMMM  MMMMM'
MMMM=  MMMMM MMMM    MM       MMMMM    MMMM    MMMM   MMMMNMMMMM
MMMM=   MMMM  MMMMM          MMMMM     MMMM    MMMM   MMMMMMMM
MMMM=   MMMM   MMMMMM       MMMMM      MMMM    MMMM   MMMMMMMMM
MMMM=   MMMM     MMMMM,    NMMMMMMMM   MMMM    MMMM   MMMMMMMMMMM
MMMM=   MMMM      MMMMMM   MMMMMMMM    MMMM    MMMM   MMMM  MMMMMM
MMMM=   MMMM   MM    MMMM    MMMM      MMMM    MMMM   MMMM    MMMM
MMMM$ ,MMMMM  MMMMM  MMMM    MMM       MMMM   MMMMM   MMMM    MMMM
  MMMMMMM:      MMMMMMM     M         MMMMMMMMMMMM  MMMMMMM MMMMMMM
    MMMMMM       MMMMN     M           MMMMMMMMM      MMMM    MMMM
     MMMM          M                    MMMMMMM        M       M
       M
 ---------------------------------------------------------------
   For those about to rock... (%C, %R)
 ---------------------------------------------------------------

Теперь мы можем сделать много разного.

Мы можем искать файлы конфигурации, хэши паролей, криптографические ключи и цифровые сертификаты. Мы можем проанализировать бинарные файлы для поиска ошибок и уязвимостей.

С помощью qemu и chroot мы можем даже запустить (эмулировать) исполняемый файл из образа:

$ ls
bin  dev  etc  lib  mnt  overlay  proc  rom  root  sbin  sys  tmp  usr  var  www

$ cp /usr/bin/qemu-mips-static .

$ sudo chroot . ./qemu-mips-static bin/busybox
BusyBox v1.19.4 (2019-05-20 18:13:49 CST) multi-call binary.
Copyright (C) 1998-2011 Erik Andersen, Rob Landley, Denys Vlasenko
and others. Licensed under GPLv2.
See source distribution for full notice.

Usage: busybox [function] [arguments]...
   or: busybox --list[-full]
   or: function [arguments]...

    BusyBox is a multi-call binary that combines many common Unix
    utilities into a single executable.  Most people will create a
    link to busybox for each function they wish to use and BusyBox
    will act like whatever it was invoked as.

Currently defined functions:
    [, [[, addgroup, adduser, arping, ash, awk, basename, cat, chgrp, chmod, chown, chroot, clear, cmp, cp, crond, crontab, cut, date, dd, delgroup, deluser, dirname, dmesg, echo, egrep, env, expr, false,
    fgrep, find, free, fsync, grep, gunzip, gzip, halt, head, hexdump, hostid, id, ifconfig, init, insmod, kill, killall, klogd, ln, lock, logger, ls, lsmod, mac_addr, md5sum, mkdir, mkfifo, mknod, mktemp,
    mount, mv, nice, passwd, pgrep, pidof, ping, ping6, pivot_root, poweroff, printf, ps, pwd, readlink, reboot, reset, rm, rmdir, rmmod, route, sed, seq, sh, sleep, sort, start-stop-daemon, strings,
    switch_root, sync, sysctl, tail, tar, tee, telnet, test, tftp, time, top, touch, tr, traceroute, true, udhcpc, umount, uname, uniq, uptime, vconfig, vi, watchdog, wc, wget, which, xargs, yes, zcat

Здорово! Но обратите внимание, что версия BusyBox — 1.19.4. Это очень старая версия BusyBox, выпущенная в апреле 2012 года.

Таким образом, TP-Link выпускает образ прошивки в 2019 году с использованием программного обеспечения (GCC toolchain, kernel, BusyBox и т. Д.) 2012 года!

Теперь вы понимаете, почему я всегда устанавливаю OpenWRT на свои роутеры?

Это еще не все

Binwalk также может выполнять энтропийный анализ, печатать необработанные энтропийные данные и генерировать энтропийные графики. Обычно большая энтропия наблюдается, когда байты в образе случайны. Это может означать, что образ содержит зашифрованный, сжатый или обфусцированный файл. Хардкорно прописанный ключ шифрования? Почему бы и нет.

Мы также можем использовать параметр --raw для поиска пользовательской последовательности необработанных байтов в образе или параметр --hexdump для выполнения шестнадцатеричного дампа, сравнивающего два или более входных файла.

Пользовательские сигнатуры могут быть добавлены в binwalk либо через файл пользовательских сигнатур, указанный в командной строке с помощью параметра --magic, либо путем добавления их в каталог $ HOME / .config / binwalk / magic.

Вы можете найти больше информации о binwalk в официальной документации.

Расширение binwalk

Существует API-интерфейс binwalk, реализованный в виде модуля Python, который может использоваться любым скриптом Python для программного выполнения сканирования binwalk, а утилита командной строки binwalk может быть почти полностью продублирована всего двумя строками кода Python!

import binwalk
binwalk.scan()

С помощью Python API вы также можете создавать плагины под Python для настройки и расширения binwalk.

Также существует плагин IDA и облачная версия Binwalk Pro.

Так почему бы вам не скачать образ прошивки из Интернета и не попробовать binwalk? Обещаю, вам будет очень весело :)

Binwalk is a file analysis tool designed to assist researchers in the analysis, extraction and reverse engineering of documents. Easy to use, fully automated scripts, and through custom signatures, extraction rules and plug-in modules, and importantly, can be easily extended.

The above is the introduction of Binwalk. Binwalk in the Kali installed by default, in other versions of the installation of Linux is also very simple, and in Windows sleepy, novice Baidu under the «Binwalk Windows installation» and other words are not necessarily a solution.

and I also searched on the internet for a long time, basically did not see the Windows common exe, MSI form, only find tar.gz form, after decompression for docs and src folder, SRC has a python common setup.py, under the cmd input setup.py Install after the installation magic, after looking for a python-magic module installed, import magic when the hint is missing libmagic, after a tinker, I did not get.

After, I opened https://pypi.python.org/pypi to search Binwalk module, is also only tar.gz, after decompression, setup.py install, it is not prompted what error, installation all the way smoothly, Unfortunately, I went to the Python installation directory, I found an egg file and a binwalk suffix file, no other, also can not afford the feeling.

———

Well, formally introduced in Windows installation of the way, with Binwalk on GitHub on the project to install its source code is the simplest, the introduction said that Windows optional Feature support is the most poor, nevertheless, still enough.

GitHub Project: Https://github.com/devttys0/binwalk

Binwalk’s Wiki:https://github.com/devttys0/binwalk/wiki

———

You need to have Python installed before installing on Windows (version 2, 3 doesn’t matter)

Enter in cmd

git clone https://github.com/devttys0/binwalkcd binwalkpython setup.py Install

(If you do not have Git installed, you can directly access the project address, click on the inside of the download zip download and then unzip it)

After installation, input import Binwalk in Python will not error, indicating that you can call Binwalk in Python (use the wiki provided by yourself), to use to achieve our analysis of the file.

But we like the use of Linux Binwalk, but also want to achieve the same effect on Windows, the Python installation directory in script that the Binwalk file (no suffix) is actually a py file, In the script folder to run it with Python, you can achieve the effect, but in the script folder outside the worry, because the CMD can not run the file without suffix, and Python binwalk this way does not work (because the path must be specified Binwalk, But if the designation is also very troublesome, and if modified to binwalk.py, a run will error, in short headache.

———

I first seriously write blog, poor wording, if there is insufficient to write, and there is a better way also please advise, thank you.

Here is my own solution, is to write a bat batch file to run.

Create a new folder and add the path of the folder to the system variable path (which can be run directly in cmd). )

Create a new binwalk.bat file in the folder

@echo Offecho * suggest:you ' d better to input the parameters enclosed in double Quotes.echo * made by Pcatpython "%~dp0\p _binwalk.py "%1%2%3%4%5%6%7%8%9

Create a new p_binwalk.py file (it is very simple to write, it may be rewritten when the ability grows)

#-*-Coding:utf-8-*-# author:pcat# http://pcat.cnblogs.comimport sysimport binwalkif __name__ = = "__main__": lst=sys.ar Gvif Len (LST) <2:print ("No files.") Exit () try:if lst[1][0]== '-': Binwalk.scan (*lst[2:],signature=lst[1]) elif lst[1][0]!= '-': Binwalk.scan (*lst[1:], Signature=true) Except:pass

As long as the path to this folder exists in the system variable path and the 2 files, then you can use Binwalk in cmd like Linux.

:)

Binwalk How to install and use Windows

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • How to run apk on windows
  • Чем отличается файловая система windows от linux
  • Run exe from cmd windows
  • Windows 11 openvpn не работает
  • Формат mkv чем открыть на windows