Возможности release VIII: - просмотр файлов любой длины в текстовом, шестнадцатеричном и в режиме дизассемблера - x86-64 ассемблер и дизассемблер (включая инструкции AVX) - просмотр и редактирование логических и физических дисков - подержка форматов исполняемых фалов NE,LE,LX,PE/PE32+,ELF/ELF64(little-endian),Mach-O(little-endian),TE - поддержка Netware Loadable Modules NLM,DSK,LAN,... - переходы по call/jmp одним нажатием - поиск по шаблону в дизассемблере - встроенная 64битная система расшифровки/зашифровки - встроенный мощный 64битный калькулятор - блоковые операции любой длины: чтение, запись, заполнение, удаление, копирование, перемещение - многофайловый поиск/замена - клавиатурные макросы - просмотр, редактирование, поиск в unicode/utf8 - возможность создавать свои Hiew Extrenal Modules - ArmV6 дизассемблер
Ограничения DEMO-версии: - поддержка только файлов PE 32бит - нет ассемблера - нет 64битного дизассемблера - нет ARM дизассемблера - нет поддержки логических/физических дисков - нет модуля крипта - нет обработки ini-файла - нет sav-файла - нет клавиатурных макросов - нет записи/чтения имен (names) - нет загрузки HEM (Hiew External Module)
8.63 (31 Jan 2018) - utf8 (1- and 2-bytes) - @o/@O в калькуляторе для local/global offset - (Shift-)Alt-N: (предыдущая)следующая маркировка - PE Import dll list сортирован - hex mode: переключение между файлами по Ctrl-Tab сохраняет текущее смещение
Создано: 21 октября 2016 06:48 New! Цитата · Личное сообщение · #5
Лет хз ..15 назад, когда никаких сырков не было, засобирался было делать аналог. Понемногу стал собирать компоненты. То есть делать их. Ну и засохло всё на будущем встроенном ассемблере - хотелось сделать покруче, поэтому зашло всё в дебри. И ушло всё в автономный асм, но завяло и там, аккурат на линкере. Времени было мало.. В конце концов проект таки не пошёл, потому что начинать надо было с простейшего хекс-редактора, а дальше идти эволюционно. И решил - какого члена? - Хью вполне устраивает. А чужие сырки не прикалывают - слишком всё сложно и тяжело врубаться в существующую концепцию. Тянет всё перекручивать с ноля.
С концепцией, если глядеть конкретней, тоже масса вопросов. Во-первых, какая должна быть "платформа"? Традиционно для себя выбрал REAL DOS COM. Но уже тогда на мосх давила необходимость задействовать WIN32 CONSOLE. А чуть позже стала очевидной необходимость всёже WIN32 GUI. Кстати, и у SEN'а всё то же самое, только он реально прошёл 2/3 пути. Насколько помню, он сейчас подумывает об WIN32 GUI на базе MFC. Может, так и надо, но не прикалывает двигаться в этом направлении.
Впрочем, это всё виртуальные размышления о несуществующей проблеме..
Создано: 21 октября 2016 12:12 New! Цитата · Личное сообщение · #6
dosprog Вот такая книжка (она была и в бумаге, видел её в 90-х) : --> HIEWBOOK <-- "Вы пpобовали когда нибудь загpужать в IDA или SOURCER исполняемый файл мегабайт эдак под двадцать? Десятки часов жужжания винта и сотни метpов свопа явление хоpошо знакомое каждому хакеpу. А сам дизассемблеp? Сколько дискет потpебуется, что бы его pазместить, если пpедстоит pабота "на выезде"? Всех этих недостатков лишен hiew. Шустpый, компактный, пpовоpный, в умелых pуках он способен твоpить чудеса, пpи этом огpаничиваясь число "фоpмальными" тpебованиями к аппаpатуpе" - отлично описывает hiew. п.с. Назначение и необходимость этого инструмента в наше время (когда есть ida, x64, Hex Editor Neo..) имхо, сомнительны.
Создано: 21 октября 2016 13:49 · Поправил: 21 октября 2016 13:51 VodoleY New! Цитата · Личное сообщение · #9
bizdon, difexacaw нет плохих инструментов, есть кривые руки и нехватка понимания.. что в каком случае использовать. Не инструмент используется, а знание. Не стоит ради одного колоска заводить целый комбаин. Тот же ДосНавигатор.. под досом.. для быстрой оценки и работы на те времена комплексно решал в одном флаконе все задачи.. как щаз 10 инструментов. Не надо забивать гвозди микроскопом. ЗЫ. в одной проге был и калькулятор. и таблица символов и хекс редактор и дизасемблер простой + возможности навешивания кучи доп инструментов на хоткеях + мултки оконность в досе.. я лет 5 кодил на асме на кастомных настройках дос навигатора.. и все это умещалос в 1.5 мб
Создано: 22 октября 2016 00:17 New! Цитата · Личное сообщение · #10
difexacaw пишет: radare сейчас популярный инструмент, тоже умеет всё(заявлено), тоже консоль
GUI есть и даже больше трех вариаций. Удобная штука, по мне так удобней этого консольного наследия в виде hiew, в котором хоткеи прибиты гвоздями, а от вида хочется блевать. Собственно там все и построено на библиотеках, любой может сделать свой GUI и прибить к нему библиотеки radare, причем даже не обязательно все тянуть, если какой то компонент не нужен, то можно запросто его выкинуть, а что делать с монолитным говнищем знает лишь сусликов.
Создано: 30 января 2017 23:32 · Поправил: dosprog New! Цитата · Личное сообщение · #11
bizdon пишет: Назначение и необходимость этого инструмента в наше время (когда есть ida, x64, Hex Editor Neo..) имхо, сомнительны.
[offtop] --Петька, а каие газеты будем выписывать на следующий год? --Василий Иваныч, необходимость газет в наше время сомнительна - у нас же есть компьютер и интернет! --Интернет да. А в сортир ты, надо понимать, будешь ходить с клавиатурой? [/offtop]
Ну и заодно, чтобы дважды не вставать (может, SEN увидит эту прымху) - хорошо бы в Hiew добавить фичу кеширования при отработке <F5> ("GOTO ADDRESS") - чтобы предыдущее введённое значение адреса подставлялось по умолчанию в строчку задания нового адреса. Тогда можно перейти по прошлому введённому адресу по <F5> по умолчанию, или же подредактировать старое значение, это проще, чем набирать его заново. Расширением этой опции можно было бы приделать к строке задания адреса историю прошлых введённых адресов, которые можно было бы листать стрелками <ArrowUp>/<ArrowDown>. Прямо там же в строке. (Несмотря даже на то, что "История адресов" есть и так по <PgDown>). ((Как вариант - вызов того меню "Истории" по стрелкам вверх/вниз, а не по <PgDown>. Будет значительно удобней имхо)).
--Добавлено--
Вот в аттаче, собственно, и есть то, о чём написано выше, (добавлена подстановка предыдущего введённого адреса при нажатии <F5>), - на примере Hiew32 версии 7.01: { Атач доступен только для участников форума } <-- = Hiew32.exe + Loader f5!.exe - на примере Hiew (DOS) v. 6.03: --> Hiew.exe fixed <-- Это в качестве иллюстрации к написанному, хотя оно и вполне функционально.
Как-то так
--Добавлено2--
.. а при первом вызове GOTO по <F5>, когда ещё не заполнено "предыдущее введённое значение адреса", имело бы смысл подставлять адрес текущей позиции в файле. Каким он отображается в поле адресов (абсолютный или VA). Опция однозначно годная.
--Добавлено3--
Ну, и чтобы трижды не вставать - в Hiew версий начиная с 6.15 (sw) изменено меню редактирования DOS MZ-заголовка. Получилось плохо - поскольку в v.6.15 ещё было удобно подгонять длину файла в заголовке (PAGES & LASTBYTES) там же, не выходя из меню. В версии 6.50 уже это не получается. То же самое сохранилось и во всех последующих версиях, включая и версии для WIN32.
--Добавлено4--
По поводу перекодировочных (.XLT) файлов. Поглядел на офсайте, - там раздаются готовые XLT-файлы. Но проще их делать самому. --> Вот тут <-- приспособа для облегчения редактирования файла HIEW.XLT. Каждая табличка из 256 байтов редактируется в самОм же HIEW отдельно, а затем выполняется окончательная сборка файла с помощью BAT-файла. Для такой задачи отдельная утилита вроде как и не уместна, не нужны лишние сложности. Делалось году этак в 1997.
--Добавлено5--
В "Disasm View Mode" текущую строку хорошо бы выделить цветом . Или хотя бы выделить цветом только мнемонику в текущей строке, поскольку на опкоде и так стоит курсор. На крайний случай (но это хуже) - слева от мнемоники какой-нибудь маркер для текущей строки.
| Сообщение посчитали полезным: gazlan, redlord, SkyRE
Создано: 5 февраля 2017 08:00 New! Цитата · Личное сообщение · #12
дублировать историю на стрелки я не буду - она всегда была и везде именно на PgDn, если надо вновь возвращаться в одно место - то есть закладки ( + / - / Alt-1..8 )
Создано: 5 февраля 2017 10:32 · Поправил: dosprog New! Цитата · Личное сообщение · #14
sen пишет: дублировать историю на стрелки я не буду
Ну хз, стрелки up/down там сейчас вроде не задействованы вообще, хотя в какой-то из более древних версий сбрасывали текущее наредактированное значение строчки и обнуляли всю историю [uppss]. Впрочем, это ладно, можно и не. Даже не буду пробовать добавлять такое, только ото время тратить. Хотя.. Ну не знаю в общем.
sen пишет: если надо вновь возвращаться в одно место - то есть закладки
Смысл был как раз не в закладках и не в Истории - это побочные эффекты, так сказать. Смысл был в пустой строке ввода адреса при нажатии <F5>. Тогда, чтобы его заполнить каким-то значением из предыдущих, нужно выполнить минимум два дополнительных нажатия на кнопки - <PgDown> и <Enter>. А это неудобно и отвлекает, приходилось просто сразу набирать в пустой строке желаемый адрес, не имея возможности поредактировать уже существующую строку. Сейчас пробую пользовать пропатченную v.6.03 (которая представлена в предыдущем посте) - доволен. Как раз то, что было нужно. А добавить такую фичу ерунда делов - всего-то вызывать редактирование строчки не напрямую, а через функцию-обёртку (как в представленных выше примерах).
sen пишет: что с редактированием MZ не так ?
Теперь по редактированию MZ-заголовка. Вначале опишу, как это происходило в версии 6.03 (до изменений): Допустим, дописали к DOS-exe файлу оверлей и хотим, чтобы он грузился в память при запуске вместе со всем EXE. Нажимаем [HexMode] -> [F8] - видим в поле Overlay Length длину добавленного куска (как и в новых версиях). Дальше жмём [F3] и обнуляем поле "Bytes in last Page". Сразу видим изменение значения "Overlay length". Если оно меньше, чем 200h, то просто записываем его значение в поле "Bytes in last Page" и сохраняем изменение по [f9]. Если значение "Overlay length" больше, чем 200h, то , даже без калькулятора, увеличиваем значение "Pages in File", пока значение "Overlay Length" не станет в пределах [0..200h[. Сохраняем. После этого, если "Overlay Length" не 0, то записываем его значение в поле "Bytes in last Page" и сохраняем изменения по [F9]. Всё, файл работоспособен.
В более новых версиях всё то же самое, но при редактировании значений не виден "Overlay Length" и сохранение изменений сопровождается вообще выходом из диалога MZ-HEADER'а. Что делает вышеописанный метод вообще практически неприменимым и приходится тупо считать все значения заранее на калькуляторе, а потом тупо их сразу задавать в окончательном виде - и всё.
[add] ? ..вплоть до того, что вернуть обратно вообще весь MZ-диалог из версии 6.11 .. ? Впрочем, в новых версиях теперь уже на это вряд ли кто-то сильно обратит внимание. [/add]
По выделению текущей дизасм-строки - однозначно, нужно как-то выделять строку с мнемоникой. Сильно облегчает чтение листинга при поиске. Для этого же в классических редакторах текста всегда имеется подсветка всей текущей строки. Оно себя оправдывает.
--Добавлено--
Так уж получилось, что все предложения касаются только фронт-энда, то есть эргономики и удобства использования интерфейса. Это важно на самом деле. Тему внутренностей не хотелось бы подымать, там вообще можно блукать бесконечно и бестолку. Хотя вцелом всё работает, вполне. )) А что не работает, про то я не догадываюсь.
Теперь это. --------------------------------------------------------------------
--Добавлено2--
neshta пишет: сделать кастомный key bindings непосильная задача, да.
Чувак, а ты уверен, что это так уж просто? Кеймап в виде пронумерованных строк-ресурсов обычному юзеру вряд ли сильно поможет, без целого дополнительного справочника. А ты бы хотел составить такой справочник, а? В принципе, при стойком непреодолимом желании можно перемапить кнопку и без этого всей вещей.
И речь была немного о другом, а именно о дополнении функционала, а не о переназначениях кнопок.
neshta пишет: естественно, это элементарная задача даже для джуниора.
)) чуваг, будь уверен, - джуниор этого не будет делать, однозначно. И не джуниор тоже. Вот увидишь.
neshta пишет: прогрессивное человечество для подобных целей давно ... neshta пишет: ... было бы желания и больше одной прямой извилины.
)) Чуваг, тема про Хью. Человечество до такого пока не допёрло. Прогрессивное.
) Хорош уже засирать тему. Создай тему про emacs и удивляй.
Или вон закалампоцай за пару вечеров хекс-редактор, на коленке, как ты умеешь, - чтоб все увидели как надо.
Создано: 5 февраля 2017 11:48 New! Цитата · Личное сообщение · #15
dosprog пишет: Чувак, а ты уверен, что это так уж просто?
естественно, это элементарная задача даже для джуниора.
dosprog пишет: И речь была немного о другом, а именно о дополнении функционала, а не о переназначениях кнопок.
vim\emacs\sublime\atom\etc хоть раз в жизни запускал? там целые расширения можно вешать на кнопки и с адресами\кнопками\хотением странного можно делать что угодно, только вряд ли автор осилит, здесь требуется знаний немного больше чем знание модели слотов с сигналами, и прочих эвентов с хандлерами.
dosprog пишет: Кеймап в виде пронумерованных строк-ресурсов обычному юзеру
прогрессивное человечество для подобных целей давно использует json\yaml которые внезапно позволяют комментарии, один раз написал и забыл, на всякий случай хранить копию по умолчанию которую при необходимости дропать в замен правленого или же запретить править и для кастома завести пользовательский вариант.
все решаемо и все более чем элементарно, было бы желания и больше одной прямой извилины.
Создано: 5 февраля 2017 12:14 New! Цитата · Личное сообщение · #17
dosprog пишет: Или вон закалампоцай за пару вечеров хекс-редактор, на коленке, как ты умеешь, - чтоб все увидели как надо.
нет необходимости и без этого призрака доса хватает инструментов. но если вот прям так хочется: capstone + keystone + unicorn (alternative) = profit. подключить библиотеки и вызвать несколько функций наверное даже ты сможешь, напишешь редактор своей мечты.
Создано: 6 февраля 2017 05:21 New! Цитата · Личное сообщение · #18
dosprog стрелки не задействованы в диалоге перехода, а в диалоге поиска - по полной программе, хочется единства и уже постоянства.
редактировать адрес... часто быстрее новый набрать чем в старом менять, к тому же в pe есть переход по rva, без imagebase что уменьшает набор. и сколько адресов надо вводить что PgDn+enter мазоль натирает ? и да, можно автоматом вызывать эту связку при F5, только что делать если адрес надо ввести совсем не похожий ? давить PgUp чтобы очистить поле или наворачивать еще ерундового кода который детектит это очищение сам ?
про выделить строку - а просто сделать цвет текущего байта очень ярким чтоб сразу в глаз бросалось ? и поиск всегда центрируется, не надо его результат искать по всему экрану, он в одном месте (за исключением самого начала файла)
редактирование MZ - дописали оверлей и теперь надо пересчитать поля Pages и Bytes on last page в заголовке ? - ну так просто F3 на любом из этих полей все само пересчитает
Создано: 6 февраля 2017 06:42 · Поправил: dosprog New! Цитата · Личное сообщение · #19
sen пишет: стрелки не задействованы в диалоге перехода, а в диалоге поиска - по полной программе, хочется единства и уже постоянства.
аа, ну да - там же используется одна и та же процедура редактирования строки.. В общем, понятно.
sen пишет: и сколько адресов надо вводить что PgDn+enter мазоль натирает ?
Да бывает прилично. И менять всего-то 1-2-3 цифры (из 7 символов адреса). Ну, с этой опцией более-менее разобрался, всё вроде нормально, - просто решил вот полезную идею подбросить - очень уж нормально работает.
sen пишет: ну так просто F3 на любом из этих полей все само пересчитает
)) Упс. Прошу извинить. Действительно, в новых версиях это работает. Удобно получилось. Тогда "совет" мимо, да. (Просто смотрел v.6.50, а там этого ещё не было. Потому и пользую v.6.03). ..Можно считать это изъяном всех шароварных версий 6.х (с номер больше 6.11). Просто это последнее, что ещё работало в чистой DOS.
Так что по этим двум вопросам вроде как обсуждать дальше нечего.
А по подсветке текущей строки - да, выделение её более ярким атрибутом было бы самое то, что надо. Центрироваться-то она центрируется, но приходится смотреть текст и выше/ниже центра, и возвращать потом взгляд в центр тяжело. Не за что зацепиться - ни маркера, ни выделения. Если это происходит довольно быстро, то изматывает. (По аналогии с поиском в обычном редакторе текста, тоже консоль и тоже листинг. Так что сравнение адекватное).
--Добавлено--
Вот скриншот того, как это выделение строки атрибутом должно было бы выглядеть (дорисовано в паинтбраше):
Ранг: 600.9 (!) Статус: Модератор Research & Development
Создано: 26 февраля 2017 04:47 New! Цитата · Личное сообщение · #21
dosprog Идея с подстановкой предыдущего введённого адреса правильная, поддерживаю.
sen Реализовать загрузку предыдущего адреса для перехода достаточно тем же образом, как сейчас идёт повторный вызов плагина: F11 (открывается меню), F11 (запускается выделенный в списке плагин). Поскольку выделение в списке плагинов сохраняется, и выделен всегда последний запущенный плагин, то двойное нажатие F11 автоматически вызывает последний использовавшийся плагин.
Таким образом, для подстановки предыдущего адреса в строку для перехода, достаточно нажать F5 два раза подряд: F5, F5.
Такой подход позволит не изменять существующую логику программы, когда поле для ввода адреса всегда пустое по умолчанию. Для навигации по всей истории, после вызова строки для перехода (F5), нажать Alt+F5 для открытия списка адресов навигации (в списке будет .VA / Offset в зависимости от текущего режима). Список а-ля F8, F7 – список функций импорта.
Создано: 26 февраля 2017 14:56 · Поправил: dosprog New! Цитата · Личное сообщение · #22
Возможность повторного нажатия F5 как раз потребует влезть в функцию диалога редактирования строки, которая вызывается и для других целей, не только для принятия строки-адреса перехода.
Самый простой вариант это функция-"обёртка" - вот он, действительно, не потребовал бы никаких затрат всего-то при десятке строчек, вставленных в текст программы.
Ранг: 600.9 (!) Статус: Модератор Research & Development
Создано: 26 февраля 2017 16:27 New! Цитата · Личное сообщение · #23
dosprog пишет: Возможность повторного нажатия F5 как раз потребует влезть в функцию диалога редактирования строки разумеется )) это же и есть программирование )
Создано: 6 марта 2017 19:36 New! Цитата · Личное сообщение · #24
sen Наибольшая проблема в HIEW к текущему времени лимит длин строк ввода поиска / замены, 20 символов вообще ниочём, особенно если ищешь длинную hex строку из YARA правила.
Да и лимит в HEM непонятен для поля ввода, 300 символов GetString уже не взял (хотя вот это уже может быть проблема конкретно в pyhiew).
Создано: 6 марта 2017 20:45 · Поправил: =TS= New! Цитата · Личное сообщение · #26
Jupiter Я тут на выходных попробовал на Python такое прикрутить (чтобы конструкции без переделок сразу использовать в скриптах). Вот и столкнулся с тем, что стандартным интерфейсом получить строку не могу, а сам HIEW очень режет строки при использовании его функционала.
Создано: 8 апреля 2017 13:41 · Поправил: dosprog New! Цитата · Личное сообщение · #28
Такой странный и запоздавший вопрос - а что это за ерунда со вводом кириллицы в HIEW32 всех версий? - Щас-то проблему для себя решил, просто интересно, так и должно быть? - что не удаётся переключиться на ввод кириллицы по обычным виндоусным клавиатурным хоткеям, а только насильно кнопкой в "панели быстрого запуска" на "рабочем столе" виндовса?
--Добавлено-- К следующему посту:
microxa пишет: просто нет слов
Hiew да, но всё-таки, что с кириллицей в консоли? Раскладки должны переключаться обычными виндоусными хоткеями? , или они не должны этого? Неужели это у меня только у одного такая трабла? - поиском в гугле ничего подобного и близко не нашёл..
microxa пишет: Так например, сделал памятку об х86-ых инструкциях (рипнутых с biew)
А как оно выглядит, интересно? - Там же довольно большой файл, куда его втулить в EXE? - и как пользоваться? Обычно достаточно простого текстового файла со справочной информацией, не обязательно даже в каталоге самого hiew. Всё равно туда всего не засунешь
microxa пишет: Вобще многие ограничения, снимаются патчами самого хиева.
Всего не запатчишь. Например, в последних 8.x версиях как-то криво реализован поиск ссылок - не находятся те ссылки, которые раньше находились нормально.. Лезть патчить? - я б побоялся такое затевать
Создано: 9 апреля 2017 04:27 New! Цитата · Личное сообщение · #29
Вобще многие ограничения, снимаются патчами самого хиева. Так например, сделал памятку об х86-ых инструкциях (рипнутых с biew).
sen, просто нет слов, выразить Вам ту признательность, за то что Hiew все эти десятилетия был и остается, настоящим боевым товарищем.. и топором.. да..
Создано: 14 апреля 2017 21:12 · Поправил: dosprog New! Цитата · Личное сообщение · #30
... В общем, закончился вопрос со вводом кириллицы тупо прикручиванием к HIEW HEM-плагина - переключателя раскладок с шестью доступными раскладками клавиатуры
Создано: 17 апреля 2017 22:42 · Поправил: dosprog New! Цитата · Личное сообщение · #31
--В добавление к предыдущему посту--
Обнаружился небольшой баг в KBD_CYR.HEM при восстановлении параметров для <Alt+Shift>. Состояние автоматически не восстанавливалось при загрузке HEM'а, надо было явно выбирать пункт <Alt+Shift> из меню плагина, каждый запуск.