Сейчас на форуме: (+5 невидимых)

 eXeL@B —› Дневники и блоги —› [BLOG] Error13Tracer
Посл.ответ Сообщение

Ранг: 18.8 (новичок), 21thx
Активность: 0.030
Статус: Участник

Создано: 26 сентября 2013 04:00 · Поправил: Error13Tracer
· Личное сообщение · #1

Создам, пожалуй, бложег, дабы не захламлять весь форум.

Первым делом выложу Highlight.
Репозиторий на GitHub
Всем известно, что IDR мощное орудие в умелых руках, но ему очень уж не хватает подсветки синтаксиса; данная DLL способна "скрасить" наши будни
Юзать сорцы как кому угодно, ограничений нет
Все багрепорты желательно сюда слать.
PS: Про баг с ChangeLanguage мне известно, как будет время - исправлю. Баг из-за того, что прога не может изначально угадать, код на каком языке ей сунули, и, следовательно, порой виснет...

Пара скринов



9f9a_28.09.2013_EXELAB.rU.tgz - Highlight-v1.0.7z

| Сообщение посчитали полезным: hors, SReg, Gideon Vi


Ранг: 990.2 (! ! !), 380thx
Активность: 0.680
Статус: Модератор
Author of DiE

Создано: 26 сентября 2013 15:32
· Личное сообщение · #2

может сразу включить в поставку с IDR?

-----
[nice coder and reverser]





Ранг: 756.3 (! !), 113thx
Активность: 0.610.05
Статус: Участник
Student

Создано: 27 сентября 2013 13:08 · Поправил: Isaev
· Личное сообщение · #3

Error13Tracer, я не тестил на скорость, но плюсовать строки по 1 символу это жесть при большом объёме информации...
Delphi с длинными строками работает как с динамическими массивами и от этого могут быть потери скорости. В частности, в случае OutStr := OutStr + ItemText[i], каждый раз будет вызываться менеджер памяти, который будет выделять память под более длинную строку. Ещё в циклах стараться уходить от неявных вызовов UniqueString. И вообще по строкам лучше через указатели PChar лазить, будет ещё быстрее. И если заменить стандартные менеджер памяти станет вообще шустро.
Думаю раз в 20 будет быстрее, как минимум при нормальной оптимизации

-----
z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh




Ранг: 18.8 (новичок), 21thx
Активность: 0.030
Статус: Участник

Создано: 28 сентября 2013 00:42
· Личное сообщение · #4

Isaev, соглашусь с вами, что есть более элегантные решения, но пока со временем не очень, да и современное железо вполне позволяет работать и данным способом. Прошу заметить, что это первая версия, в дальнейшем многое исправится
Hellspawn, автор заинтересовался (см. топик о IDR), и , думаю, всё-же будет поставляться с IDR в дальнейшем.



Ранг: 18.8 (новичок), 21thx
Активность: 0.030
Статус: Участник

Создано: 29 сентября 2013 04:28
· Личное сообщение · #5

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



Ранг: 18.8 (новичок), 21thx
Активность: 0.030
Статус: Участник

Создано: 29 сентября 2013 04:53
· Личное сообщение · #6

Отойдём от темы, кому-нибудь удалось скомпилить ODBGscript под вторую олю? У китайцев видел криворукую реализацию, но не более...Коmу-то удалось или я такой один лошара без скриплов сижу?xD



Ранг: 18.8 (новичок), 21thx
Активность: 0.030
Статус: Участник

Создано: 19 октября 2013 16:46
· Личное сообщение · #7

Прожект будет в ближайшее время обновлён, Настройка подсветки реализована (Код даже больше занял, чем сама подсветка))
Извиняюсь перед желающими потестить, ближе к концу месяца выложу. С кучей исправлений.



Ранг: 0.0 (гость)
Активность: 0.250
Статус: Участник

Создано: 21 октября 2013 00:14
· Личное сообщение · #8

Error13Tracer пишет:
Отойдём от темы, кому-нибудь удалось скомпилить ODBGscript под вторую олю?

Там такой лютый говнокод, что проще и лучше написать с нуля или прикрутить готовый энджин, мне например ChaiScript нравится для таких вещей, лаконичен и прост ( если просто автоматизация, а не писать плагины по сложности соизмеримые с программой для которой пишется скрипт, иначе python ).



Ранг: 18.8 (новичок), 21thx
Активность: 0.030
Статус: Участник

Создано: 22 октября 2013 15:31
· Личное сообщение · #9

Обновление в репозитории. Версия 1.1.0
Прикрутил редактор настроек/тем, ещё по мелочи исправил.
Продублировано в аттаче

b0ca_22.10.2013_EXELAB.rU.tgz - Highlight-v1.1.0.7z



Ранг: 0.0 (гость)
Активность: 0.250
Статус: Участник

Создано: 23 октября 2013 02:57
· Личное сообщение · #10

Error13Tracer пишет: Прикрутил редактор настроек/тем
Не могли бы добавить такую тему molokai или тут Monokai-Dark?
Очень хорошая тема.



Ранг: 18.8 (новичок), 21thx
Активность: 0.030
Статус: Участник

Создано: 23 октября 2013 15:28 · Поправил: Error13Tracer
· Личное сообщение · #11

F_a_u_s_t, до этого не сталкивался с данным редактором, посмотрю, что можно сделать для подгона его тем, сам привык к Notepad++
F_a_u_s_t, мои шаблоны на основе Notepad++ не подойдут для реализации подсветки Vim? Если подойдут, то если можете, то набросайте шаблон, включу обязательно Если не подойдёт, то, в принципе, на Delphi, в отличие от C++, особых проблем не составит (кроме времени) переписать подсветку под Vim тупо перераспарсить....



Ранг: 0.0 (гость)
Активность: 0.250
Статус: Участник

Создано: 23 октября 2013 16:09
· Личное сообщение · #12

Error13Tracer пишет: не подойдут для реализации подсветки Vim?
Не а, там свой формат, а вот Sublime Text вполне можно распарсить, там шаблоны в xml, как и в Notepad++, под него есть генераторы тем, хотя готовых десятки на все вкусы, в том числе стандартная Notepad++ подсветка.



Ранг: 18.8 (новичок), 21thx
Активность: 0.030
Статус: Участник

Создано: 23 октября 2013 16:39
· Личное сообщение · #13

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



Ранг: 0.0 (гость)
Активность: 0.250
Статус: Участник

Создано: 23 октября 2013 16:55 · Поправил: F_a_u_s_t
· Личное сообщение · #14

Error13Tracer пишет: но если оно того стоит, то сделаю
Те кто привык сидеть за темной темой, за белой уже становится проблематично.
Вот вариант monokai для notepad++
--> Link <--
Ок, запилю темную тему, а так то лучше сделать парсер для какого нибудь популярного блокнота, проще конвертить чем делать с нуля.



Ранг: 18.8 (новичок), 21thx
Активность: 0.030
Статус: Участник

Создано: 23 октября 2013 21:34
· Личное сообщение · #15

Насчёт конвертера тем: натолкнули на мысль, подумаю над этим и попробую реализовать



Ранг: 18.8 (новичок), 21thx
Активность: 0.030
Статус: Участник

Создано: 12 января 2014 05:39
· Личное сообщение · #16

Мужики(а может и девушки) извиняйте, меня долго не было, проблемы с ментами были не по теме реверсинга, а из-за одной девки... Сейчас всё решено) Встаю в строй снова)

| Сообщение посчитали полезным: Hellspawn

Ранг: 18.8 (новичок), 21thx
Активность: 0.030
Статус: Участник

Создано: 16 января 2014 19:08
· Личное сообщение · #17

Снова клерк нарисовался Да с девкой ничего, прост залетела, как думали, оказалось что нет А с ментами проблемы из-за того, что этой твари меньше, чем сказала.... гораздо меньше...



Ранг: 18.8 (новичок), 21thx
Активность: 0.030
Статус: Участник

Создано: 10 апреля 2014 17:53 · Поправил: Error13Tracer
· Личное сообщение · #18

Приношу извинения за долгое отсутствие. Сейчас веду работы над проектом заказчика. Как только будет свободное время, отпишусь тут. Спасибо за терпение и понимание.



Ранг: 18.8 (новичок), 21thx
Активность: 0.030
Статус: Участник

Создано: 18 января 2015 23:17 · Поправил: Error13Tracer
· Личное сообщение · #19

Какой символ в начале строки не будет мешать работе IDR и,в то же время, будет индикатором для подсветки синтаксиса? PS: crypto не добавляет подсветку синтаксиса асма из-за невозможности замены нужных строк более светлым цветом. Выдвигайте свои предложения. Главное чтобы они не вели к осложнениям работы IDR. Сейчас склоняюсь к точке(которая видна не будет с плагином) в начале строки, а лишь индикатор осветлённости. Выскажите свои мнения по этому поводу, выберу что-то более-менее подходящее и реализую это.



Ранг: 188.1 (ветеран), 419thx
Активность: 0.140
Статус: Участник

Создано: 20 января 2015 08:18
· Личное сообщение · #20

Error13Tracer
Дык у меня первый символ строки как-раз и используется для задания цветов (точнее биты данного символа). А в твоей библиотеке я не нашел возможности задать цвет фона, собственно именно это и нужно реализовать - возможность передать в рисовалку цвет фона.



Ранг: 19.2 (новичок), 12thx
Активность: 0.030
Статус: Участник

Создано: 21 января 2015 09:18 · Поправил: _FUCKER_
· Личное сообщение · #21

crypto, так уже проще. Объясни как различить, осветлять строку или нет? Нужно чтобы какой-то индикатор был, лучше первый символ строки. Реализация такова например: Если строку нужно осветлить, то в начале строки первым символом ставим какой-то определённый, заранее обговорённый. Только именно этот символ должен быть вставлен именно когда DLL с подсветкой обнаружена. Эту проверку можно убрать, если DLL включить в комплект поставки IDR. Тут уже решать тебе. Как удобней, так и сделай. Кусок кода для осветления я допишу, только конфиг будет различаться, тк нужен будет процент осветления. С твоей стороны нужен будет кусок кода с проверкой есть ли загруженная DLL в IDR (чтобы правильно отображалось) и если есть, то добавлялся определённый символ в начало строки. Либо предложи вариант, который для тебя удобнее будет, я реализую. Подсветка делфей есть, удобно исходники смотреть, но вот подсветки асма очень не хватает...

ЗЫ: не всегда есть доступ к основному аккаунту, поэтому чаще пишу с этого. Это тоже мой.



Ранг: 188.1 (ветеран), 419thx
Активность: 0.140
Статус: Участник

Создано: 21 января 2015 10:08
· Личное сообщение · #22

_FUCKER_
Мне было бы удобнее, чтобы в процедуру HighlightDrawItem можно было бы передать цвет фона.



Ранг: 19.2 (новичок), 12thx
Активность: 0.030
Статус: Участник

Создано: 10 февраля 2015 02:32
· Личное сообщение · #23

Хм, вот с этого и нужно было начинать Сделаю, как только выдастся время. Только учитывай, что для разных тем фон лучше разным делать(На некоторых темах смотреться не будет). А так идея хорошая. Не создаст сложностей ни тебе не мне. Как только протестирую на заготовках и уберу баги, то отпишусь.
На теме с Notepad++ основной подбери цвет, думаю, многим будет по нраву. Есть исключения - Faust тёмную хочет. На первое время сойдёт вариант с фиксированным цветом, но для полного удовлетворения желаний всех хотелось-бы иметь выбор цвета Редактор тем есть в последней опубликованной версии(есть на гитхабе) подсветки. Небольшими усилиями туда могу добавить и цвет для осветления(фона нужных строк). Главное иметь флаг что строка должна быть осветлена. А так давай попробуем. Как будет достаточно времени, то допишу нужный функционал и оповещу.



Ранг: 18.8 (новичок), 21thx
Активность: 0.030
Статус: Участник

Создано: 03 марта 2015 12:53 · Поправил: Error13Tracer
· Личное сообщение · #24

Нашлось время. Исправил и добавил функционал

Version 1.2.0
В функцию HighlightDrawItem добавлен параметр для осветления (Lighten).
Исправлен баг в редакторе подсветки.
Подправлено редактирование. Теперь для редактирования шрифта нужно нажать левой кнопкой, для расширенного выбора цвета шрифта - левая кнопка + Ctrl, цвет фона - правая кнопка.
Добавлен загрузчик для редактора.
Прочие изменения.

Брать и смотреть тут

crypto, реализована необходимая функция. Особых изменений не требуется. Только в HighlightDrawItem добавить ещё один параметр - Lighten. Если нужно осветлять строку, то True, если нет, то False. По умолчанию задан цвет 0xBBBBBB (отскринил и скомуниздил цвет осветления по умолчанию в IDR). Если в какой-то теме не будет подходить, то в редакторе добавлено изменение параметров осветления (шрифт, его цвет и цвет фона).
Серым цветом на скрине по ссылке какраз осветлённые (генерируются случайным образом для наглядности, а так всё учитывается).

Для всех: исходники так-же юзаем кто как хочет, в типе лицензий не шарю, но вроде что-то типа MIT. Короче кому надо, то нагло тырим под свои нужды, перекомпилируем и всё прочее. Делается для удобства использования, поэтому считаю, что каждый в праве подправить под себя любимого Если есть вопросы по поводу правки, то можно их задать тут или в ПМ

| Сообщение посчитали полезным: SReg, crypto

Ранг: 188.1 (ветеран), 419thx
Активность: 0.140
Статус: Участник

Создано: 02 апреля 2015 10:50 · Поправил: crypto
· Личное сообщение · #25

Error13Tracer
Пробую подключить новую библиотеку. Сразу вопрос: в предыдущем релизе освобождение ресурсов выглядело так:
if (DeleteHighlight)
{
DeleteHighlight(AsmLbId);
DeleteHighlight(DelphiLbId);
}
FreeHighlight();
Сейчас (в демо) идет просто вызов
FreeHighlight();
в котором закрывается библиотека. Что-то тут не стыкуется...

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

Попробовал подключить Settings. При изменении чего-либо кнопка Apply не активируется, а если нажать Ок, то ничего не меняется. Наверное нужен какой-то Refresh? Флажок Use Highlight по-моему вообще не нужен, потому что при его отключении все контролы формы пропадают, что выглядит не кошерно. При попытке его выключить, а потом снова включить, начинает постоянно вылезать сообщение, что что-то изменилось, не хотите ли сохраниться? Это при выключенном флажке Autosave. В общем, эта часть пока сыровата, хотя очень даже интересна.

В целом все очень неплохо, но имплементировать будет на мой взгляд не совсем просто (двумя if не обойдешься .

А вообще было бы удобнее, если бы вместо параметра Lighten передавались бы два параметра: BackgroundColor и FontColor, тогда можно было бы создавать окрашенные области под разные нужды, но я об этом уже когда-то говорил.



Ранг: 18.8 (новичок), 21thx
Активность: 0.030
Статус: Участник

Создано: 18 июня 2015 12:29
· Личное сообщение · #26

crypto, сейчас начинаю разбираться с плюсами, поэтому, по возможности, будет весь код как модуль для C++. Сейчас "мёртвый сезон" для студенческих работ, поэтому времени, возможно, будет побольше. Ничего не могу обещать, тк немного отхожу от темы. Сейчас другие дела, к сожалению.



Ранг: 8.2 (гость), 11thx
Активность: 0.050.04
Статус: Участник

Создано: 08 апреля 2018 04:57
· Личное сообщение · #27

Мне ник чтоль менять хардверно, чтоб меня узнавали свои?


 eXeL@B —› Дневники и блоги —› [BLOG] Error13Tracer
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати