Hex Editor

Здесь выкладываются готовые к использованию макросы и скрипты.
Shmuel
Posts: 7246
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 48 times
Been thanked: 636 times

Hex Editor

Post by Shmuel »

Latest post of the previous page:

Zeroes wrote: Tue 19 Jul, 2022 16:44 При определенных действиях получаем ошибку
файл > экрана фар, жал F3 потом выход из режима редактирования по ESC и PgDn, и так несколько раз.
Падение воспроизвести удалось. Там по факту 2 проблемы:
  1. Обращение сабжевого скрипта за пределы буфера
  2. Падение Фара
Мне 2-я проблема показалась более важной, повозился с ней, но причину пока не нашёл.
Падение Фара происходит при ситуации ошибки Lua в диалоговой процедуре немодального диалога.
На случай, если кто-то из команды Фара проявит интерес - вот простой скрипт, воспроизводящий падение:

Code: Select all

local F = far.Flags
local items = { {F.DI_SINGLEBOX,0,0,40,2,0,0,0,  0, "Test"} }

local DlgProc = function(hDlg, msg, p1, p2)
  if msg==F.DN_CONTROLINPUT and p2.EventType==F.KEY_EVENT and p2.KeyDown then
    error"I'm sorry"
  end
end

far.DialogInit("", -1, -1, 42, 3, nil, items, F.FDLG_NONMODAL, DlgProc)
Last edited by Shmuel on Thu 04 Jan, 2024 22:10, edited 1 time in total.
User avatar
zg
zero-gravity
Posts: 6207
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 206 times
Contact:

Hex Editor

Post by zg »

Shmuel wrote: Thu 04 Jan, 2024 22:09Обращение сабжевого скрипта за пределы буфера
воспроизведение этого тоже интересно.
User avatar
zg
zero-gravity
Posts: 6207
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 206 times
Contact:

Hex Editor

Post by zg »

Shmuel wrote: Thu 04 Jan, 2024 22:09 Мне 2-я проблема показалась более важной, повозился с ней, но причину пока не нашёл.
Падение Фара происходит при ситуации ошибки Lua в диалоговой процедуре немодального диалога.
На случай, если кто-то из команды Фара проявит интерес - вот простой скрипт, воспроизводящий падение:
800. зачем-то в DoDlgProc со стека доставалась ошибка, хотя она уже достаётся тут. в в модальных диалогах не падало, потому что при вызове DoDlgProc всегда на стеке хотя бы одно значение было, а вот для немодальных вызывалось с пустым стеком.
Shmuel
Posts: 7246
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 48 times
Been thanked: 636 times

Hex Editor

Post by Shmuel »

zg wrote: Fri 05 Jan, 2024 02:13
Shmuel wrote: Thu 04 Jan, 2024 22:09Обращение сабжевого скрипта за пределы буфера
воспроизведение этого тоже интересно.
  • Выявить закономерность не могу пока и что-то добавить к исходному описанию тоже.
  • Но вот удалось чуть больше собрать данных об одном из падений.
  • Поставил keylogger - макрос, повешенный на /.+/ который в condition пишет клавишу в файл, и condition ничего не возвращает.
    Лог приложен, картинка тоже. Последовательность F3 CtrlF4 в логе - это вызов макроса исходного репортера, который вызывает сабж и после этого вроде влиять не должен.
  • Я специально сдвинул диалог выдачи ошибки, чтобы было видно артефакт, который как правило при этой ошибке имеет место.
    Clipboard01.png
    log-0.txt
    (529 Bytes) Downloaded 105 times
Shmuel
Posts: 7246
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 48 times
Been thanked: 636 times

Hex Editor

Post by Shmuel »

zg wrote: Fri 05 Jan, 2024 07:57
  1. зачем-то в DoDlgProc со стека доставалась ошибка
Снимаю шляпу.
User avatar
zg
zero-gravity
Posts: 6207
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 206 times
Contact:

Hex Editor

Post by zg »

Shmuel wrote: Fri 05 Jan, 2024 17:25
  • Выявить закономерность не могу пока и что-то добавить к исходному описанию тоже.
100% воспроизведение: на достаточно длинном файле ctrlend pgup down pgdn (тут уже не видно курсора) f3.
обновлённая версия на гитхабе.
Ultrabyte
Posts: 213
Joined: Sun 26 Mar, 2023 17:59
Has thanked: 19 times
Been thanked: 20 times

Hex Editor

Post by Ultrabyte »

HexEdit.moon упал с красным окном, с указанием на ошибки __newindex.

Как воспроизвести: окно уменьшаю вместо 80x25 на 64x25 (это нужно было для просмотра дампа, где данные хранились 64-байтовые стринги, дамп "выравнивается" по окну для читабельности) и нажимаю переход в HEX-View (F4) и вызываю Hexedit.moon: гарантировано падает.

Можно даже проще: уменьшать ширину до 75 - тоже падает.
Last edited by Ultrabyte on Tue 29 Apr, 2025 20:49, edited 1 time in total.
Shmuel
Posts: 7246
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 48 times
Been thanked: 636 times

Hex Editor

Post by Shmuel »

Есть версия этого скрипта для far2m с моими изменениями, и конкретно с учётом изменения размеров окна.
Она вроде не падает.
В её тепершнем виде она не является портабельной между far3 и far2m.
На случай, если автор захочет взглянуть: https://github.com/shmuz/luafar2m/tree/ ... arty/Hexed
User avatar
John Doe
Бюрократ
Posts: 14582
Joined: Wed 27 Apr, 2005 20:42
Location: github.com/FarManagerLegacy
Has thanked: 92 times
Been thanked: 514 times
Contact:

Hex Editor

Post by John Doe »

Shmuel wrote: Tue 29 Apr, 2025 21:08 и конкретно с учётом изменения размеров окна.
Вероятно речь об этом: https://github.com/shmuz/luafar2m/commi ... 477914c855
https://t.me/FarManager — Telegram чат
User avatar
zg
zero-gravity
Posts: 6207
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 206 times
Contact:

Hex Editor

Post by zg »

Ultrabyte wrote: Tue 29 Apr, 2025 20:47Можно даже проще: уменьшать ширину до 75 - тоже падает.
исправил.
Post Reply

Return to “Полезные макросы и скрипты”