Среда, 19 Июня 2019, 19:48

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Программирование » C/C++ » Делаю hex редактор
Делаю hex редактор
afqДата: Суббота, 01 Июня 2019, 21:32 | Сообщение # 1
Разработчик
Сейчас нет на сайте
Не знаю как в других редакторах, но вроде бы такого нет в других редакторах, то что есть в моем. )
Я тут осваиваю qt фреймворк. И решил написать hex редактор для начала. Вот хотел бы узнать у вас. Нужен ли вообще такой софт? Редактор ещё не доработан. Но то что я хотел наконецто сделал. Весь день потратил на это.
Чем отличается мой редактор от остальных. Это тем что он подсвечивает секции. Пока что я сделал чтобы подсвечивала две секции, это секции .text и .data. Цвета ещё будут меняться. Но это удобно использовать. Можно в редакторе сразу определить где начинается код. Вот черновой вариант. Я хотел сделать ещё чтобы объединялись команды ассемблерные в одну группу, чтобы видно было по hex где заканчивается команда и начинается новая. Но это я не знаю буду делать или нет. Потому что надо все команды ассемблера в программу вписать. И пока работает только с 64 битными программами и только в линукс. Но так как это qt, то может я осилю и windows.



XakepДата: Воскресенье, 02 Июня 2019, 05:10 | Сообщение # 2
めちゃくちゃちゃ
Сейчас нет на сайте
hex редакторами обычно не пользуются чтобы читать объектные файлы, его используют для чтения, редактирования и анализа бинарных форматов. Какой смысл, если легко можно дизасемблировать код и читать по человечески. Ну и к слову, я думаю у тебя по функционалу и половины нету, того что есть в обычных, ну скажем я пользуюсь emacs'ом с hexl-mode (есть еще nhexl-mode, более продвинутый вроде, ном енхватает и hexl), там во первых весь функционал emacs'а с удобновй навигацие и прочее, а во вторых можно легко дописать недостающий на лиспе, как пример - твое подсвечиване секций .text. Вероятно есть более мощные специализированные hex редакторы, где можно помечать вручную секции и ставить им теги (вроде wxHexEditor так может), скрывать определенные последовательности байтов, чтобы не мешали анализу итд.
afqДата: Воскресенье, 02 Июня 2019, 13:45 | Сообщение # 3
Разработчик
Сейчас нет на сайте
Xakep, так это бинарный формат. Да у меня фукнционала пока что нет вообще. Я пока только учусь на qt работать. В ncurses у меня бы получилось лучше. В ncurses я например могу объединить команды mov ax, 0x04, это 66 b8 04 00 00 в одну группу. Можно например учить опкоды ассемблерных команд. Я такое видел в фильме "Кибер" blackhat. Он почему то читал код именно в hex редакторе. Видимо от вируса не осталось заголовка. Но как он код читал ( это же фильм конечно ), так наверное врядли кто сможет. Ладно ассемблерные команды учить, это ещё нормально, но учить их hex коды это наверное через чур.

Добавлено (02 Июня 2019, 13:50)
---------------------------------------------
Xakep, я помню учавствовал в конкурсе. Там надо было пройти игру. После каждого уровня появляется подсказка. Игра была не для ос. Она загружалась как ос. Я её через qemu запускал. Там типа тетриса вроде игра была. Так вот. Я дизассемблировал её. Но проблема в том, что дизассемблер не различает где данные и диззассемблирует всё подряд. Также диззассемблер не знает где начало кода из-за того что не имеет заголовков например для этой игры. И команды будут может быть не те. Но я всё равно изменял команды, уже не помню как. Увеличивал скорость игры и непобедимость. Но всё равно подсказка была какая то не такая, я так и не смог понять что не так.


TLTДата: Воскресенье, 02 Июня 2019, 14:49 | Сообщение # 4
Сейчас нет на сайте
Цитата afq ()
Не знаю как в других редакторах, но вроде бы такого нет в других редакторах, то что есть в моем

Серьёзно? В этом сегменте нет ничего, что превосходит функционал IDA уже много лет. Это, похоже, безальтернативный софт для реверс-инжиниринга.

Цитата afq ()
он подсвечивает секции

По-моему, это было абсолютно во всех хекс-редакторах, которыми я пользовался...


Дао, выраженное словами, не есть истинное Дао.
afqДата: Воскресенье, 02 Июня 2019, 15:07 | Сообщение # 5
Разработчик
Сейчас нет на сайте
Цитата
Серьёзно? В этом сегменте нет ничего, что превосходит функционал IDA уже много лет. Это, похоже, безальтернативный софт для реверс-инжиниринга.

TLT, так ida и стоит своих денег. Не каждый захочет платить такие деньги, если не занимается этим каждый день, что анализирует софт.

Добавлено (02 Июня 2019, 15:10)
---------------------------------------------
TLT, а я линукс редакторы использовал. Но вот например в ghex нет такого функционала. А в каких есть посветка секций?

Добавлено (02 Июня 2019, 16:43)
---------------------------------------------
Думаю не самым удачным решением было делать hex редактор. Но зато хоть попрактиковался в разработке qt.


XakepДата: Понедельник, 03 Июня 2019, 07:45 | Сообщение # 6
めちゃくちゃちゃ
Сейчас нет на сайте
Цитата afq ()
TLT, так ida и стоит своих денег. Не каждый захочет платить такие деньги, если не занимается этим каждый день, что анализирует софт.

чтобы суметь написать хорошую альтернативу IDA, нужно как минимум иметь не плохой опыт в реверс инженеринге и иметь опыт работы в том же IDA или OllyDBG. А по поводу денег, уже давно есть куча альтернатив той же IDA, вероятно не такие удобные и навороченные (ну по крайне мере по навороченее твоего хекс редактора будут), но тем не менее они есть, как пример: Radare

Цитата afq ()
А в каких есть посветка секций?

в wxHexEditor ты можешь сам подсветить и протегировать нужные секции и последовательности.
afqДата: Понедельник, 03 Июня 2019, 10:17 | Сообщение # 7
Разработчик
Сейчас нет на сайте
Xakep, странно конечно, я писал про hex редактор, а мне пишут про ida диззассемблер. Что это является совсем разными вещами.
Цитата
ну по крайне мере по навороченее твоего хекс редактора будут

Xakep, также и я могу сказать о чем угодно. Например какое приложение вы на работе делаете? Может есть альтернативы понавароченнее! :D
Или что вы пытаетесь игры делать, если уже есть понавароченнее?
На это можно ответить - потому что хочу делать. Вот и я хочу опыта набраться в построении интерфейсов и не только, вот и делаю что придумаю.

Добавлено (03 Июня 2019, 10:23)
---------------------------------------------

Цитата
в wxHexEditor ты можешь сам подсветить и протегировать нужные секции и последовательности.

Я посмотрел wxHExEditor. Там нет такого что секция кода уже была бы подсвечена. Надо самому искать, а откуда ты знаешь где начало кода? Хорошо что есть диззассемблер. Не плохо бы в свой встроит, но это пока сложно для меня.


XakepДата: Понедельник, 03 Июня 2019, 11:59 | Сообщение # 8
めちゃくちゃちゃ
Сейчас нет на сайте
Цитата afq ()
Например какое приложение вы на работе делаете? Может есть альтернативы понавароченнее!

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

Цитата afq ()
На это можно ответить - потому что хочу делать. Вот и я хочу опыта набраться в построении интерфейсов и не только, вот и делаю что придумаю.

Да это хорошая идея, с этим спорить не буду, просто имей ввиду что вряд ли кому-то понадобится твой hex редактор вот и все.

Цитата afq ()
Я посмотрел wxHExEditor. Там нет такого что секция кода уже была бы подсвечена. Надо самому искать, а откуда ты знаешь где начало кода? Хорошо что есть диззассемблер. Не плохо бы в свой встроит, но это пока сложно для меня.

Ну я думаю как минимум можно найти нужную последовательность байт (через поиск) и подсветить ее вручную. Ну и полезность данного функционала весьма спорное.
afqДата: Понедельник, 03 Июня 2019, 12:09 | Сообщение # 9
Разработчик
Сейчас нет на сайте
Цитата
Ну я думаю как минимум можно найти нужную последовательность байт (через поиск) и подсветить ее вручную. Ну и полезность данного функционала весьма спорное.

Xakep, да но так ты найдешь если знаешь какой оператор искать. Если бы ты знал hex коды ассемблера, то моя программа была бы удобной, открыл программу в редакторе, она показывает где начинается код и читаешь код. Но это в том случае если файл не поврежден. Если поврежден, то можно и без диззассемблера догадаться что там и как работает, если знаешь hex коды операторов ассемблера.

Добавлено (03 Июня 2019, 12:27)
---------------------------------------------
Xakep, вообще я хочу сделать программу по анимации векторной графики для игр например. И составить конкуренцию программу Spriter и Spriter2. Во-первых Spriter для текущей версии линукс уже не работает, нужны старые библиотеки. Во вторых я хочу составить конкуренцию этой программе. Если бы я только научился делать свои виджеты на gtk, и опыта побольше, я бы сделал эту программу. Но пока мне надо несколько программ сделать со своими виджетами чтобы потренироваться. Да мой редактор может и не будет таким навороченным как spriter, но будет работать так, как в моих мечтах. Правда я ещё мало что нафантазировал. Но и цена будет меньше. Думаю сделать хороший функционал. И наконец таки это будет поддерживать линукс версии, что не мало важно для меня и для других, у кого spriter не работает на линукс. Также я знаю что на gtk пишут и на windows, так что можно будет портировать и на эту ос.


drcrackДата: Понедельник, 03 Июня 2019, 13:31 | Сообщение # 10
старожил
Сейчас нет на сайте
не понимаю зачем кому-то может понадобится редактировать (или даже просто смотреть) машинный код в хекс редакторе без дизассемблера
PS юзаю HxD, все устраивает


Dynamic GPU Occlusion Culling for Unity
Zeal — онлайн 3rd person ARPG без гринда


Сообщение отредактировал drcrack - Понедельник, 03 Июня 2019, 13:32
afqДата: Понедельник, 03 Июня 2019, 13:45 | Сообщение # 11
Разработчик
Сейчас нет на сайте
drcrack, а для чего ты используешь HxD?

Форум игроделов » Программирование » C/C++ » Делаю hex редактор
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2019 Рейтинг