Сейчас на форуме: Lohmaty (+7 невидимых) |
eXeL@B —› Вопросы новичков —› Патчер DUP 2.26, настроить(убрать) вывод строк(лога) в ListBox |
Посл.ответ | Сообщение |
|
Создано: 26 ноября 2018 03:10 · Поправил: mp3muzika · Личное сообщение · #1 Здравствуйте. Есть на свете патчер под названием У него есть скины типа standard_skin.res, которые можно редактировать программами типа resource_hacker и настраивать тем самым сам патчер. Есть проблема: необходимо чтобы патчер не выводил в ListBox никакие логи (строки) по умолчанию, т.е чтобы он оставался полностью пустым, желательно и без пустых строк (не спрашивайте зачем). В патчере есть плагин [LogMessage], который может выводить настраиваемые сообщения в ListBox. Добиться этого редактированием res файла у меня не получилось, максимум что вышло это заменить строки из таблицы на пустоту. Но в итоге такие логи типа адреса или имя конечного файла все равно попадают в лог. Или может я просто не знаю как это сделать правильно.. В патчере есть исходники плагина [Log Message] на ассемблере, и батник, конвертирующий их в dll и .dup файлы. Может можно как-то заставить этот плагин писать сообщения не в этот ListBox, а в другой, а этот просто убрать? Можно даже просто ID сменить у ListBox и уже в него ничего не пишется. |
|
Создано: 26 ноября 2018 08:56 · Поправил: f13nd · Личное сообщение · #2 В сгенерированном патче есть ресурс 'dll', это как ни странно зашифрованная длл. Расшифровывается по-детски: - берется очередной байт - ксорится на младший байт 0xDEADBEEF - 0xDEADBEEF циклически сдвигается на 1 бит вправо Эта длл в ресурсах содержит этот самый скин и 3 диалога, в одном из которых этот листбокс. Code:
В экспорте этой длл есть функция AddMsg, которая выводит строки в этот листбокс. Code:
Вставляешь этот 'retn 4' в ее начало и больше там ничего не будет. Либо подменяешь в ней хендл листбокса, чтобы выводить в другой. На что фантазии хватит. Либо выборочно занопываешь вызовы этой функции, чтобы убрать определенные сообщения. ----- 2 оттенка серого | Сообщение посчитали полезным: mp3muzika |
|
Создано: 26 ноября 2018 11:11 · Личное сообщение · #3 mp3muzika пишет: Добиться этого редактированием res файла у меня не получилось Сделай свой скин, в котором ListView вынеси за пределы основного окна, для этого в скрипте диалога задай любую из координат за пределами габаритов диалога. Как вариант можешь ешё и габариты окна лога уменьшить. Сохрани этот скин и укажи его в настройках dUP. При запуске патча он будет писать в лог, но сам лог виден не будет. ----- EnJoy! | Сообщение посчитали полезным: parfetka |
|
Создано: 26 ноября 2018 13:16 · Поправил: mp3muzika · Личное сообщение · #4 f13nd пишет: В сгенерированном патче есть ресурс 'dll', это как ни странно зашифрованная длл. Программой Resource Hacker я тоже видел что в созданном патче есть DLL, но она не читалась. От обычных людей она была скрыта Крестьянскими опытами я выяснил, что функция, которая пишет сообщения в ListBox, действительно называется AddMsg. Ушло на это у меня 2 дня, но дело в другом. При составлении проекта в патчере есть плагин [Log Message], который, если посмотреть его код на ассемблере, тоже пишет в ListBox сообщения посредством этой функции AddMsg. Если поломать эту функцию, то и плагин вывода сообщений ничего не выведет в ListBox Code:
Как теперь быть? Может можно, например, переименовать эту функцию и в DLL, и в плагине [Log Message]? Или так не делается? Ведь проблема не в том, чтобы в ListBox лог не выводился. Можно просто убрать этот блок из скина и все. Нужно чтобы у плагина вывода сообщений [Log Message] осталась возможность писать в ListBox. Jupiter пишет: При запуске патча он будет писать в лог, но сам лог виден не будет. Вы немножко недопоняли суть проблемы Как я написал выше, смысл не в том чтобы просто убрать лог из окошка патча. |
|
Создано: 26 ноября 2018 13:54 · Личное сообщение · #5 mp3muzika пишет: смысл не в том чтобы просто убрать лог из окошка патча Это я понял из первого поста: mp3muzika пишет: чтобы он оставался полностью пустым, желательно и без пустых строк (не спрашивайте зачем) но предложил альтернативный вариант, если нужно, чтобы лог был пустым, то можно создать другой ListView с другим ID, а лог, куда dUP выводит всё, вынести за пределы диалога. mp3muzika пишет: пишет в ListBox сообщения посредством этой функции AddMsg. Если поломать эту функцию, то и плагин вывода сообщений ничего не выведет в ListBox Code:
при этом должны быть права на запись в эту область памяти, разумеется в результате в начале AddMsg будет: Code:
`nop` добавил чтобы уместить в DWORD ( 900004C2 ) и записать патч одной командой.Если же тебе будет необходимо использовать функцию AddMsg, то ты можешь: - использовать патч, описанный мной выше, но вызывать AddMsg через свою функцию-обёртку, восстанавливая часть затёртого кода - поставить хук на AddMsg и фильтровать сообщения как нужные/ненужны ----- EnJoy! | Сообщение посчитали полезным: mp3muzika |
|
Создано: 26 ноября 2018 14:14 · Личное сообщение · #6 mp3muzika пишет: Как теперь быть? Может можно, например, переименовать эту функцию и в DLL, и в плагине [Log Message]? Или так не делается? Я не знаю в каком виде этот плагин там существует и как работает. На самом деле неплохая идея точку входа в эту функцию в экспорте перенести, если этот плагин в виде другой длл. Это отсечет все сообщения, выводимые самой dup2patcher.dll, она адресует эту функцию по смещению. Но по-моему проще занопать вывод лишних сообщений, их там изнутри dup2patcher.dll 70 штук, а прикрыть нежелательных надо наверное 3-4 максимум. ----- 2 оттенка серого |
|
Создано: 26 ноября 2018 14:50 · Личное сообщение · #7 f13nd пишет: Я не знаю в каком виде этот плагин там существует и как работает. Плагин там есть на ассемблере, на посл. скриншоте в 1м сообщении я показывал. Рядом батники, которые колдуют из них dll плагин для патчера. Этот патчер при генерации патча их использует. Я вижу что вы знаете и понимаете как оно все работает. Но я так мыслить не умею, и попросту не могу понять что мне надо сделать конкретно. Но самый главный вопрос все равно возникает: чтобы наладить свою схему вывода лога в ListBox, нужно ли будет каждый раз что-то на что-то "ксорить", или же можно сделать это на автоматической основе? Грубо говоря, отредактировать "что-то" в патчере или его исходниках плагина на ассемблере, и оно всегда будет выводить лог как хочется при каждом создании нового патча? Или так не выйдет? |
|
Создано: 26 ноября 2018 14:59 · Личное сообщение · #8 mp3muzika пишет: или же можно сделать это на автоматической основе Если dUP позволяет запускать плагины на этапе инициализации диалога, до попытки вывода в лог, то да, можно. Но даже если плагин запускается уже после того, как dUP что-то вывел в лог, этот лог можно очистить программно и выводить только то, что нужно. Ксорить ничего не придётся, если при помощи плагина можно сделать патч или хук функции AddMsg, как описал в предыдущем комментарии. ----- EnJoy! |
|
Создано: 26 ноября 2018 15:00 · Поправил: mp3muzika · Личное сообщение · #9 f13nd, вы так ловко препарировали и выдернули dll в виде кода, но для меня это магия. Вы думаете я знаю как сделать также? Я бы хотел это проделать хотя бы по аналогии, просто повторить. Но каким инструментом вы пользуетесь и из чего состоит заклинание - я своими нетехническими умами не допру Jupiter, плагин [Log Message] батниками (2мя) из ассемблера (посл. скрин в 1м сообщении) делает 2 одноименных файла с расширением dll и d2p dll используется для того, чтобы в окошке патчера вообще была возможность выбрать из меню этот плагин. При запуске патчера он щупает папку с dll файлами и определяет что добавить в список плагинов. Далее в патчере он выбирается, пишешь в диалоге сообщение, нажимаешь сохранить, опция добавления сообщения добавлена в проект. А вот при создании уже готового патча, когда жмешь кнопку сделать патч, то патчеру нужен файл d2p, если его удалить то патчер поругается что наколдовать нормально патч из проекта не получается. Но он его все равно его наколдует, но по итогу плагин, выводящий в ListBox сообщения, в готовом патче работать не будет. Будто в проекте его и не прописывал никто. |
|
Создано: 26 ноября 2018 15:26 · Личное сообщение · #10 mp3muzika пишет: каким инструментом вы пользуетесь и из чего состоит заклинание - я своими нетехническими умами не допру Ну не знаю, инструмент самый заурядный ollydbg. ПКМ -> Search for -> all intermodular calls -> LoadLibraryA -> F2 за вызовом этой функции -> F9 -> Alt-E -> двойной клик Dup2Patcher.dll -> ПКМ -> Search for -> Names -> AddMsg -> F2. При каждом вызове функции будет срабатывать бряк. Смотришь откуда она вызывается (в стеке, правая нижняя область, первая строчка) ПКМ -> Follow in disassembler. Code:
Если это нежелательная строчка, в нех-редакторе или как-нибудь еще эти 10 байт надо заменить на 90909090909090909090, это называеться "занопать". Как бы создавая тему ты по идее должен какой-то минимум знать и уметь, чтоб хотя бы иметь возможность применить то, что насоветуют. ----- 2 оттенка серого | Сообщение посчитали полезным: mp3muzika |
|
Создано: 26 ноября 2018 15:46 · Личное сообщение · #11 |
|
Создано: 27 ноября 2018 18:52 · Личное сообщение · #12 f13nd, вы так все понятно объяснили, спасибо вам большое. Голова моя скрипела, нагревалась, но в итоге все переварила вами сказанное. Вы правы, надо понимать что тут могут насоветовать. И вы насоветовали прям то, что я сам не мог себе насоветовать Вот я нашел место которое надо занопать (хорошо что есть гугл), занопал. Сидел радовался прям. Первая надпись патчера ---START PATCHING--- повержена в неравном бою. Аа.. дальше что? Как применить все это к патчу не знаю. Jupiter пишет: f13nd Похоже, что всё сводится к тому, что ТС попросит помощи сделать за него ) А вот и не угадали Вы себе просто не представляете сколько надо сил чтобы переварить те простые вещи которые вы рассказываете. Но я стараюсь, и вы мне очень помогаете. Спасибо вам ребята ;) И гуглу |
|
Создано: 27 ноября 2018 19:16 · Личное сообщение · #13 mp3muzika пишет: А вот и не угадали Рад буду ошибиться ) mp3muzika пишет: Вы себе просто не представляете сколько надо сил чтобы переварить те простые вещи которые вы рассказываете Прекрасно представляю )) Все мы когда-то начинали с нуля mp3muzika пишет: я стараюсь, и вы мне очень помогаете. Спасибо вам ребята ;) Представь, что нам тоже приятно, когда наши советы реально оказываются полезными и мотивируют новичков стараться ----- EnJoy! |
|
Создано: 27 ноября 2018 19:22 · Личное сообщение · #14 |
|
Создано: 27 ноября 2018 20:39 · Личное сообщение · #15 Что-то я делаю не так, а что не пойму. После хекс-редактора патч не запускается, жмакаю на него и вообще ничего не происходит. Что я делаю. Загрузил свой файлик TEST.exe в программу. Далее все в точности как вы написали: f13nd пишет: Search for -> all intermodular calls -> LoadLibraryA -> F2 за вызовом этой функции -> F9 -> Alt-E -> двойной клик Dup2Patcher.dll -> ПКМ -> Search for -> Names -> AddMsg -> F2. При каждом вызове функции будет срабатывать бряк. Вот сработал первый бряк Далее в окошке CPU жму по строчке Go to -> Executable file, появляется еще одно окошко, в котором, как вы пояснили выше, нам нужно узнать смещение. Далее открываю свой хекс-редактор, иду по этому смещению Пожалуйста, беря во внимание мои скриншоты, покажите что именно и на что надо заменить в хекс-редакторе? Или я до этого пункта где-то ошибся? |
|
Создано: 27 ноября 2018 21:13 · Личное сообщение · #16 mp3muzika пишет: Пожалуйста, беря во внимание мои скриншоты, покажите что именно и на что надо заменить в хекс-редакторе? Во-первых тебе нужен FO от 6D6B632E (верней две инструкции перед этим адресом), это адрес возврата в стеке справа внизу первая строчка. Во-вторых ты патчишь .ехе, а надо дллку (вызов из нее), которую потом надо будет обратно зашифровать и засунуть в ресурсы. ----- 2 оттенка серого |
|
Создано: 27 ноября 2018 23:27 · Поправил: mp3muzika · Личное сообщение · #17 f13nd пишет: надо будет обратно зашифровать и засунуть в ресурсы Как положить обратно в ресурсы я разгадал А вот на вашем слове "зашифровать" нахлынула печаль. Это наверняка в другом инструменте, при помощи скрипта? f13nd пишет: - берется очередной байт - ксорится на младший байт 0xDEADBEEF - 0xDEADBEEF циклически сдвигается на 1 бит вправо Это но самое? |
|
Создано: 27 ноября 2018 23:41 · Поправил: f13nd · Личное сообщение · #18 mp3muzika пишет: Это но самое? Немного не так изложил, вобщем вот (удалено) Шифровать этим же. UPD: этим ----- 2 оттенка серого | Сообщение посчитали полезным: Jupiter, plutos |
|
Создано: 28 ноября 2018 00:17 · Личное сообщение · #19 |
|
Создано: 28 ноября 2018 00:20 · Личное сообщение · #20 |
|
Создано: 28 ноября 2018 09:07 · Личное сообщение · #21 |
|
Создано: 28 ноября 2018 09:17 · Личное сообщение · #22 |
eXeL@B —› Вопросы новичков —› Патчер DUP 2.26, настроить(убрать) вывод строк(лога) в ListBox |