|
154 / 110 / 9
Регистрация: 12.06.2013
Сообщений: 168
|
|
Microhex - кроссплатформенный шестнадцатеричный редактор27.08.2013, 14:41. Показов 1504. Ответов 5
Метки нет (Все метки)
Короче, периодически у меня появлялось свободное время, и я писал вот это. Данный выкидыш носит название Microhex, и представляет собой hex-редактор. Написан на Python с использованием PyQt, что позволяет запускаться как на Windows, так и на Linux (где ситуация с графическими hex-редакторами не очень — совсем уж они невеселые). Упор планирую сделать на задачи, связанные с реверс-инженерингом, секьюрити, а также разнообразными копаниями во внутренностях файлов и дисков с не менее разнообразными целями.
Пока что самой интересной фичей является, имхо, возможность манипулировать колонками. Если в большинстве редакторов захардкожено отображение данных в двух колонках — шестнадцатеричные байты и символьный дамп (плюс настройки этих колонок), то здесь можно добавлять сколько угодно колонок с разными параметрами, настраивать их и вообще чувствовать себя вольготно. Велкам. Выглядеть это может, например, вот так: Ограничения на размер файла — вместительность 64-x битного целого (что-то около 18 экзабайт), вне зависимости от разрядности системы. Можно загрузить только кусочек файла, или зафиксировать размер, чтоб запретить операции, которые могут привести к уменьшению или увеличению файла. Отмена/повтор не ограничиваются тем состоянием, в котором документ был в момент последнего сохранения — можно отменить и то, что было сделано до последней записи на диск. Ну, закладки — как же без них. Поиск — пока только шестнадцатеричных значений, к сожалению. Остальной функционал пока что не слишком отличается от того, что есть в других редакторах. Самое интересное, конечно, впереди. В ближайшем будущем планирую избавиться от довольно большого количества багов, стабилизировать и продумать базовый функционал, добавить несколько микроплюшек, усовершенствовать виджет, который показывает данные (он полностью самописный) и взяться за реализацию более серьезного функционала. Это, например, продвинутая система навигации (вперед/назад, поддержка адресации на основе форматов файла, например, секция/смещение для PE, сектор/смещение для дисков); возможно, колонки для редактирования текста (как в текстовых редакторах — с разбивкой на строки, но, конечно, гораздо примитивнее), разбор структуры файла (a'la 010 Editor binary templates), и самое главное — поддержка расширений на Python (должна же быть от его гибкости какая-то польза, а не только тормоза). Естественно, что все это, мягко говоря, не слишком быстро ползает, так как ни питон, ни кьют производительности не добавляют. К тому же это даже не альфа, а что-то вроде индева (баги! баги!). От вас жду мнений о степени велосипедости проекта, интересности, ну и конечно, инфу о найденных ошибках, предложения и прочее. Скачать бинарники и исходники можно на гитхабе (ссылка на репозиторий ниже), а ленивые могут загрузить аттач. Программа установки не требует, но перед запуском советую установить Microsoft Visual C++ 2010 Redistributable Package для x86. Репозиторий проекта: https://github.com/zenwarr/microhex
0
|
|
| 27.08.2013, 14:41 | |
|
Ответы с готовыми решениями:
5
Кроссплатформенный 3D-редактор С# кроссплатформенный ? Кроссплатформенный сокет |
|
Почетный модератор
|
|
| 28.08.2013, 03:06 | |
|
не открывает файлы в 0 байт )
ошибка при попытке открыть файл с опцией Completely read in memory;
---------------------------
Microsoft Visual C++ Runtime Library --------------------------- Assertion failed! Program: ... File: ..\..\..\src\documents\devices.cpp Line: 131 Expression: _cacheBoundary <= _cacheSize For information on how your program can cause an assertion failure, see the Visual C++ documentation on asserts (Press Retry to debug the application - JIT must be enabled) --------------------------- Прервать Повтор Пропустить --------------------------- возможна прокрутка до бесконечности; если открыть файл как read-only, выбрать фрагмент и попробовать обнулить его или удалить, потом закрыть файл и попробовать открыть его снова, то будет ошибка: cannot load device with given options: conflict with already loaded device; тормозит при прокрутке win 7 x64 думаю стоит еще повелосипедить
1
|
|
|
154 / 110 / 9
Регистрация: 12.06.2013
Сообщений: 168
|
|||||||
| 28.08.2013, 09:42 [ТС] | |||||||
|
Спасибо огромное за тест!
0
|
|||||||
|
Почетный модератор
|
||||
| 28.08.2013, 11:15 | ||||
|
нашел еще баг: при добавлении колонки address bar, отсчет начинается не с текущего смещения в файле, а с 0, стоит прокрутить немного и всё ок, видимо при создании просто не учитывается смещение.
0
|
||||
|
154 / 110 / 9
Регистрация: 12.06.2013
Сообщений: 168
|
|||
| 28.08.2013, 22:55 [ТС] | |||
|
0
|
|||
|
154 / 110 / 9
Регистрация: 12.06.2013
Сообщений: 168
|
|
| 01.09.2013, 21:18 [ТС] | |
|
Обновил, исправив указанные баги и еще несколько найденных. И еще. Я думаю, мне нужно сделать некоторое описание функций, хотя бы в той части, касающейся редактирования данных. Итак. Все данные представлены в виде колонок, которые содержат строки, состоящие из ячеек. При входе в режим редактирования появляется мигающий курсор, а вокруг ячейки рисуется обрамление.
Несколько интересных деталей: Колонка чисел. На скрине - редактирование данных в знаковом формате. Маленький tip — хотя курсор стоит перед знаком, можно сразу вводить число, редактор поймет и оставит знак нетронутым, а курсор перейдет на позицию перед второй цифрой. Ввести знак можно при любом положении курсора. Другой tip — с помощью клавиш Ctrl+Up/Ctrl+Down можно быстро увеличить/уменьшить значение в ячейке, а с помощью Ctrl+Shift+Up/Ctrl+Shift+Down — установить максимальное/минимальное возможное значение для текущего формата данных. Текстовая колонка. Понятно, что не все кодировки представляют все символы одинаковым набором байт. Редактировать такие данные так же, как и всё остальное, было бы неудобно — после ввода символа нужно было бы определять количество байт, им занимаемых, и вручную переводить курсор на новую позицию. Редактор делает это автоматически, а в режиме редактирования клавишами Left/Right можно перемещаться по символам вместо отдельных ячеек. Такое поведение удобно при работе с не-ascii символами в кодировке utf-8, а также композитными символами utf-16. Дальше. В редактор можно вставлять текст, который будет интерпретирован по-разному в зависимости от типа активной колонки. Например, можно быстро вставить в документ текст в любой поддерживаемой кодировке, просто добавив колонку нужного формата и вставив в нее текст — он будет автоматически перекодирован. То же самое работает и для всех остальных типов колонок.
0
|
|
| 01.09.2013, 21:18 | |
|
Помогаю со студенческими работами здесь
6
Кроссплатформенный GUI кроссплатформенный агент Кроссплатформенный вирус Кроссплатформенный GetLastError
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
|
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма).
На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
|
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ *
Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам
Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
|
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым.
Но восстановить их можно так.
Для этого понадобится консольная утилита. . .
|
|
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
|
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11
— это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
|
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11
Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
|
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
|