Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.191.228.88] |
|
Сообщ.
#1
,
|
|
|
Привет Гуру C++, очень нужна помощь, сам не разобрался что и как по сути. Проблема в том что есть один плагин, и унего есть ресурсы внутри такие как PNG, файлов таблиц и шрифтов нет. Очень нужно изменить цвет шрифта, или помочь создать патч быстрой замены цвета.. Размер кода 900Кб и написан он на C++. Пару дней возился с этим пустяком, и ничего не решил..
Пример. https://thumb.ibb.co/fD6drw/nice.png Нашел что за текст в файле отвечает: GetSysColorBrush SetTextColor CreateFontIndirectA - Если изменить на: DeleteObject (шрифт стает без формата, большим но уже другим, только вот цвет остается зеленым, #476E08) Нужные параметры: Цвет мне нужен #FFC09F и для варианта #383529 чтобы выбрать.. Если возможно заменить Шрифт на: Arial Narrow, [b] жирный, размер: 10px для lcd 12 Само устройство))) скрин https://ibb.co/kJxJrw DLL для De-кодинга. http://www74.zippyshare.com/v/6zozJmMO/file.html Помогите добрые люди. Я так почитал форум у Вас здесь много хороших умов! |
Сообщ.
#2
,
|
|
|
Интересное название файлика у вас
|
Сообщ.
#3
,
|
|
|
Я не понял сути вопроса. Вопрос в том, как выполнить незаконное изменение бинарного образа для модификации вывода текста?
|
Сообщ.
#4
,
|
|
|
Цитата VisualProg @ Это не вирус, просто стиль иногда так подписывают в честь Access Virus TI Добавлено Цитата B.V. @ Я не понял сути вопроса. Вопрос в том, как выполнить незаконное изменение бинарного образа для модификации вывода текста? Думаю отвечу коротко, Нужно изменить вывод шрифта из Оригинал "A" в "Б" подмену Если "A" у нас он зеленого цвета, То "Б" нужен #FFC09F и Или "Б" #383529 Мне на другом форуме писали что можно принить Хуки.. Цитата Создаете шрифтовой объект через CreateFont, потом выбираете через SelectObject. В хуке, разумеется. UPD Ну и цветом рулить через SetTextColor. Дело в том что я не понимаю как применять хуки.. |
Сообщ.
#5
,
|
|
|
Да, можно через хуки. ПОИСК: CreateRemoteThread
Но это может поломать внутреннюю логику отрисовки, если она не известна. Если известно, что в целевом окне на обработке WM_PAINT не происходит установки шрифта и цвета текста, в инжектированной DLL можно произвести сабклассинг окна и произвести соответствующую установку HFONT для контекста вывода -> BeginPaint, а затем вызвать оригинальный обработчик по иерархии. Если же целевое окно в этом месте меняет шрифт/цвет, то такой метод не сработает и потребуется подмена функций CreateFont/SetTextColor методом сплайсинга. |
Сообщ.
#6
,
|
|
|
Цитата B.V. @ Да, можно через хуки. ПОИСК: CreateRemoteThread Но это может поломать внутреннюю логику отрисовки, если она не известна. Если известно, что в целевом окне на обработке WM_PAINT не происходит установки шрифта и цвета текста, в инжектированной DLL можно произвести сабклассинг окна и произвести соответствующую установку HFONT для контекста вывода -> BeginPaint, а затем вызвать оригинальный обработчик по иерархии. Если же целевое окно в этом месте меняет шрифт/цвет, то такой метод не сработает и потребуется подмена функций CreateFont/SetTextColor методом сплайсинга. Эх друг мой, если бы я понимал как это сделать, я кроме как изменить в HEX редакторе ссылки на свою ничего не умею, для меня C+ очень сложная часть понимания, но в любом случае спасибо большое за консультацию, и ответ.. Добавлю что это простой плагин VST для DAW секвенсоров. Там по сути текст ничего не меняет как кроме того что выводит лишь информацию которая розложена в самой .dll, файл декомелируеться PE Explorer. IDA, но я там ничего не понимаю.. |
Сообщ.
#7
,
|
|
|
Цитата power2009 @ Эх друг мой, если бы я понимал как это сделать, я кроме как изменить в HEX редакторе ссылки на свою ничего не умею, для меня C+ очень сложная часть понимания, Поставленная задача как раз и является стимулом научиться. А ты думаешь каким образом изучается подобные вопросы ? Вот похожая тема 1. Надо написать свою dll. 2. Занести ссылку на неё в импрот подсудимой dll. 3. Перехватить указанные тобой функции и подменить их своими. GetSysColorBrush SetTextColor CreateFontIndirectA Будем менять параметры в момент вызова - цвет, фонт итд. --- Возможная проблема - эти функции могут вызываться из многих точек оригинальной программы с разными целями. Отличать разные вызовы можно по адресу возврата. Как-то так. |
Сообщ.
#8
,
|
|
|
Цитата ЫукпШ @ Цитата power2009 @ Эх друг мой, если бы я понимал как это сделать, я кроме как изменить в HEX редакторе ссылки на свою ничего не умею, для меня C+ очень сложная часть понимания, Поставленная задача как раз и является стимулом научиться. А ты думаешь каким образом изучается подобные вопросы ? Вот похожая тема 1. Надо написать свою dll. 2. Занести ссылку на неё в импрот подсудимой dll. 3. Перехватить указанные тобой функции и подменить их своими. GetSysColorBrush SetTextColor CreateFontIndirectA Будем менять параметры в момент вызова - цвет, фонт итд. --- Возможная проблема - эти функции могут вызываться из многих точек оригинальной программы с разными целями. Отличать разные вызовы можно по адресу возврата. Как-то так. Полностью согласен, я по тому обратился за помощью на форум абы мне помогли с этим делом, за одно я буду видеть как это сделано.. |
Сообщ.
#9
,
|
|
|
Цитата power2009 @ Полностью согласен, я по тому обратился за помощью на форум абы мне помогли с этим делом, за одно я буду видеть как это сделано.. 1. Исходник на с++ перехвата импорта приаттачен в вышеупомянутой теме. 2. Исходники и руководства по написанию dll мнжно найти в Сети. Начинать можно со 2-го пункта. |
Сообщ.
#10
,
|
|
|
Цитата ЫукпШ @ Цитата power2009 @ Полностью согласен, я по тому обратился за помощью на форум абы мне помогли с этим делом, за одно я буду видеть как это сделано.. 1. Исходник на с++ перехвата импорта приаттачен в вышеупомянутой теме. 2. Исходники и руководства по написанию dll мнжно найти в Сети. Начинать можно со 2-го пункта. ясно, оставлю всё как есть, 5 ночей за разбиранием кодов которых не понимаю это слишком, Вам конечно это дело можно понять и проще чем мне зубрить программатику, из за одного DLL , у меня нет желание заниматься програмистикой в будущем.. Я думал это не сложно профессионалу организовать.. Но увы вижу наоборот.. |
Сообщ.
#11
,
|
|
|
Цитата power2009 @ у меня нет желание заниматься програмистикой в будущем.. Я думал это не сложно профессионалу организовать.. Конечно "не сложно", если это будет простимулированно денежным эквивалентом. Есть отдельная ветка форума для таких случаев. У вас есть, хоть и не большая, но мотивация эту библиотеку ковырять, у остальных мотивации ещё меньше Добавлено Эх, наврал, нету такой ветки... Хотя, раньше подобные вопросы встречал в "Помощи для студентов", но, это очень неочевидное название. В любом случае, есть куча ресурсов посвящённых вашей задачи. Скрытый текст Надеюсь, Борис меня простит... Как вариант: Скрытый текст forum.exploit.in |
Сообщ.
#12
,
|
|
|
Цитата VisualProg @ Цитата power2009 @ у меня нет желание заниматься програмистикой в будущем.. Я думал это не сложно профессионалу организовать.. Конечно "не сложно", если это будет простимулированно денежным эквивалентом. Есть отдельная ветка форума для таких случаев. У вас есть, хоть и не большая, но мотивация эту библиотеку ковырять, у остальных мотивации ещё меньше Добавлено Эх, наврал, нету такой ветки... Хотя, раньше подобные вопросы встречал в "Помощи для студентов", но, это очень неочевидное название. В любом случае, есть куча ресурсов посвящённых вашей задачи. Скрытый текст Надеюсь, Борис меня простит... Как вариант: Скрытый текст forum.exploit.in Хм, ну это понятно что за деньги это раз и всё, но суть в том что такие ресурсы за деньги есть на каждом шагу, я простой человек и пользуюсь даже вот этим VST плагином бесплатно, пират, да.. Я обращался за помощью, думал человеку подковному этого не составит труда сделать, мне проще оставить всё как есть и плюнуть на эту идею, но видимо нет людей которые помогут, здесь точно.. ( А жаль, советовали друзья этот форум.. Печально.. |
Сообщ.
#13
,
|
|
|
Цитата power2009 @ Я обращался за помощью, думал человеку подковному этого не составит труда сделать, мне проще оставить всё как есть и плюнуть на эту идею, но видимо нет людей которые помогут, здесь точно.. ( А жаль, советовали друзья этот форум.. Печально.. А что ты подразумеваешь под словом "помочь" ? Целиком решить эту задачу ? я вообще с работы отвечаю - у меня начались горячие деньки. Только сейчас присел чаю попить. --- Что касается твоей проблемы, то она предполагает исследования с неизвестным результатом. Возможно, автор dll и не пользуется указанными тобой функциями. Может, он готовые битовые образы выводит. |
Сообщ.
#14
,
|
|
|
Цитата power2009 @ Я обращался за помощью, думал человеку подковному этого не составит труда сделать Это распространённое заблуждение. Тривиальные на первый взгляд задачи могут требовать нетривиальных решений. Как и в данном случае, это реверс-инжиниринг и написание хуковой DLL. Занятие не тривиальное и требующее определённого времени и сил. Даже при условии наличия наработок. У нас для разовых задач есть раздел Разовые заказы и подработка. Если ты готов оплатить работу, переезжаем с топиком туда. |