|
0 / 0 / 0
Регистрация: 13.05.2022
Сообщений: 36
|
|
Правка таблицы импорта13.05.2022, 12:57. Показов 3283. Ответов 55
Метки нет (Все метки)
Здравствуйте! Вопрос по правке таблицы импорта. Мне попался делфийский код по перехвату и подмене "MessageBoxA" в user32. Вот ссылка: https://pastebin.com/00FbHHwN
Но я сишник... и решил переписать его под С++. Всё нормально..., но есть НЮАНС (!) - на RAd Studio 2010 нормально компилируется и работает, а вот RAd Studio 10.4.2 и RAd Studio 11 - так же нормально компелируется..., сама прога работает, но перехвата и подмены не происходит! Не пойму... - в чём причина? Код абсолютно одинаковый. Нашёл в инете ещё пару кодов. Переделал их "под себя" - та же картина!... - в 2010 идёт подмена, а в 10.4.2 нет. Не находит он "MessageBoxA" в билотеке. Подскажите пожалуйста в каком направлении смотреть. За ранее благодарен за любую подсказку.
0
|
|
| 13.05.2022, 12:57 | |
|
Ответы с готовыми решениями:
55
Получение таблицы импорта pe файла Файл без таблицы импорта Массовое отображение и правка файлов в виде таблицы |
|
19501 / 10106 / 2461
Регистрация: 30.01.2014
Сообщений: 17,825
|
|
| 15.05.2022, 20:27 | |
|
0
|
|
|
place status here
3192 / 2227 / 640
Регистрация: 20.07.2013
Сообщений: 6,027
|
||||||
| 15.05.2022, 21:10 | ||||||
|
Могу ошибаться, но может проблема в том, что MessageBoxA - неюникодная версия функции.
А MessageBoxW (или MessageBox) - юникодная. winuser.h (билдер XE5):
0
|
||||||
|
0 / 0 / 0
Регистрация: 13.05.2022
Сообщений: 36
|
|
| 16.05.2022, 01:03 [ТС] | |
|
Выскакивает именно MessageBoxA. Это легко проверить по перехвату, подмене. Повторюсь... - код делфи, откомпиленый на разных версиях, работает!
0
|
|
|
0 / 0 / 0
Регистрация: 13.05.2022
Сообщений: 36
|
|
| 16.05.2022, 01:07 [ТС] | |
|
Спасибо большое, что решили помочь... Отправляю...
0
|
|
|
0 / 0 / 0
Регистрация: 13.05.2022
Сообщений: 36
|
|
| 16.05.2022, 12:54 [ТС] | |
|
Что то удалось увидеть? Есть какие нибудь идеи?...
0
|
|
|
19501 / 10106 / 2461
Регистрация: 30.01.2014
Сообщений: 17,825
|
|
| 16.05.2022, 13:00 | |
|
0
|
|
|
0 / 0 / 0
Регистрация: 13.05.2022
Сообщений: 36
|
|
| 16.05.2022, 15:33 [ТС] | |
|
Понял... Спасибо! Пожалуйста извините.
0
|
|
|
19501 / 10106 / 2461
Регистрация: 30.01.2014
Сообщений: 17,825
|
|
| 17.05.2022, 08:15 | |
|
cvi, а можете ваши два проекта в 10.4.2 и 2010 запаковать и сюда прикрепить? Если там что-то не предназначенное для для сторонних глаз, то лучше тогда сделайте два консольных проекта (мой код для этого вполне пригоден), в каждой из версий соответственно, и прикрепите сюда.
0
|
|
|
0 / 0 / 0
Регистрация: 13.05.2022
Сообщений: 36
|
|
| 17.05.2022, 11:20 [ТС] | |
|
Конечно... Спасибо большое что не отказываете в помощи.
0
|
|
|
19501 / 10106 / 2461
Регистрация: 30.01.2014
Сообщений: 17,825
|
|
| 17.05.2022, 13:00 | |
|
cvi, Да, это я посмотрю, как доберусь до винды. А пока все-таки сделайте два именно консольных проекта, с кодом, который я выше привел. И просто скажите одинаково они работают или нет.
Что касается вашего кода, то насколько я понял, нужный вам MessageBox вызываете не вы, а библиотека где-то внутри себя? Если да, то два предположения: 1) Возможно более новая версия библиотека уже использует W версию MesageBox, поэтому вы ее и не ловите. 2) Возможно боле новая версия вообще не использует системный MessageBox, а рисует полностью свой собственный.
0
|
|
|
0 / 0 / 0
Регистрация: 13.05.2022
Сообщений: 36
|
|
| 17.05.2022, 13:45 [ТС] | |
|
Да, Вы абсолютно правы - MessageBoxА вызывается из библиотеки где то внутри себя. И..... - вызывается именно MessageBoxА! Я загружал .ехе в Hex Works и там видно, что именно MessageBoxА! Ваши версии очень правдоподобны, если бы не одно НО... - делфийский код то, ссылку на который я давал, работает и там и там!... Скины то "работают" во всех версиях RadStudio.
0
|
|
|
19501 / 10106 / 2461
Регистрация: 30.01.2014
Сообщений: 17,825
|
||
| 17.05.2022, 13:49 | ||
|
Все-таки первым делом проверьте консольные варианты, без VCL вообще (тот код, что я привел ранее). Это позволит исключить много факторов.
0
|
||
|
0 / 0 / 0
Регистрация: 13.05.2022
Сообщений: 36
|
|
| 17.05.2022, 14:45 [ТС] | |
|
Хорошо, я попробую позже и напишу...
Добавлено через 36 минут Консольники (без VCL) и там и там работают абсолютно одинаково! Срабатывает MessageBoxA(0, "test", "Unregistered skin", 0); Добавлено через 11 минут ...Если вместо MessageBoxA пишу MessageBox или MessageBoxW, то сначала срабатывает MessageBoxA(0, "test", "Unregistered skin", 0); а затем MessageBoxA(0, "test", "test", 0); Если изменяю хоть на одну букву имя "Unregistered skin", то окно открывается и сразу закрываеться. Одинаково и там и там!
0
|
|
|
19501 / 10106 / 2461
Регистрация: 30.01.2014
Сообщений: 17,825
|
|
| 17.05.2022, 14:47 | |
|
cvi, ну вот, таким незамысловатым образом мы установили, что код перехвата тут уже не при чем, значит мучить его дальше нет смысла. Однозначно понятно, что нюанс кроется в реализации VCL в разных версиях среды.
0
|
|
|
0 / 0 / 0
Регистрация: 13.05.2022
Сообщений: 36
|
|
| 17.05.2022, 15:20 [ТС] | |
|
Я уже это понял... Получается... - в C++ и в Delphi используются разные реализации VCL. Спасибо большое за помощь! Есть у меня ещё один вопрос, который я давненько никак не могу для себя решить... Кручусь вокруг да около... Но вопрос конкретно не в эту тему. Не знаю... - можно его тут задать ? Если да, то я тогда опишу суть проблемы...
0
|
|
|
2690 / 1347 / 485
Регистрация: 08.11.2016
Сообщений: 3,735
|
||
| 17.05.2022, 15:29 | ||
|
0
|
||
|
19501 / 10106 / 2461
Регистрация: 30.01.2014
Сообщений: 17,825
|
|||
| 17.05.2022, 16:41 | |||
|
Или поискать что вызывается вместо нее и перехватывать уже его.
0
|
|||
|
0 / 0 / 0
Регистрация: 13.05.2022
Сообщений: 36
|
|
| 17.05.2022, 18:20 [ТС] | |
|
Пробовал уже в 10.4.2 W версию. Поствил const wchar_t, wcscmp. Строка if( (PVOID)Thunk->u1.Function == __ADDRES ) тогда срабатывает. Т.е. - адрес в библиотеке такой есть..., но подмены не происходит...
Добавлено через 13 минут Хотелось бы конечно докопаться до сути...
0
|
|
|
19501 / 10106 / 2461
Регистрация: 30.01.2014
Сообщений: 17,825
|
|
| 17.05.2022, 23:35 | |
|
cvi, в какой момент программа должна выдавать этот MessageBox, что заставляет ее это сделать? Опишите чего вы пытаетесь достичь.
0
|
|
|
0 / 0 / 0
Регистрация: 13.05.2022
Сообщений: 36
|
|
| 18.05.2022, 00:00 [ТС] | |
|
Мне надо наоборот, что бы MessageBoxA с заголовком "Unregistered skin" не выскакивал перед запуском проги. Его запускает сама библиотека если скин незаригестрированый. Таковых не много..., но они есть. Чтобы его перехватить, нужно поправить таблицу импорта. Перехватить его надо на точке входа, т.е. до того, как приложение начнёт выполнение.
Добавлено через 2 минуты Всё это работает, но... только в 2010. А в 10.4 оно выскакивает. А от него я уже отхожу.
0
|
|
| 18.05.2022, 00:00 | |
|
Инструменты для редактирования таблицы импорта pe? Контрол для импорта таблицы в файл Word После импорта таблицы, пропадает сортировка - настоящая головоломка
Автоматическое создание формы на основе созданной таблицы в результате импорта данных (VBA) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
сукцессия 44. Решил подать на припринт в межународные сервисы препринтов. Но нужно одобрение от ученых
anaschu 25.07.2026
Английский вариант. Пока кто то не одобрит мою личность, мне не получиться это опубликовать на препринте. Но заявку на публикацию статьи я сегодня подам.
|
сукцессия 43. Вторая научная статья за месяц- прайминг и гатгил
anaschu 25.07.2026
две стороны одной монеты
|
Более приземисто - Эстафету хвоста в .cdl (деревья эстафеты в сад).
Hrethgir 24.07.2026
В будущем, после написания блока инверсии обхода дерева (эстафеты хвоста), я планирую вернуться к нашему прошлому разговору о том, обладают ли знания целеполаганием. Тогда я пришел к выводу, что. . .
|
Вот представьте что вам дали бессмертие.
kumehtar 24.07.2026
Вот представьте что вам дали бессмертие, ничего более не меняя. Вообще ничего, только бессмертие в нынешнем виде. Рады были бы? Что бы вы тут делали всё это время?
Никакой пенсии. Никакого нового. . .
|
|
сукцессия 41
anaschu 24.07.2026
Численная верификация бифуркации в агентной модели лесной сукцессии: от одного параметра к ансамблю
Автор: пользователь @Shumilov_AS | Раздел: Прикладная математика / Численные методы
Кратко. . .
|
сукцессия 40. Ансамблевая кластерная параметризаци, часть 1.
anaschu 24.07.2026
Пр# Сопровождение научной статьи ИИ-ассистентом: подготовка публикации и калибровка агентно-ориентированной модели сукцессии микоризных систем
**Полевые заметки о двухнедельной совместной работе**. . .
|
Теория всего 12. ВГК на планете в стратегической игре "терра"
anaschu 21.07.2026
### Главные семантические изменения и дешифровка новой физики
1. **`REPRODUCTIVE_EMISSION` вместо фотосинтеза (`PS_base`)**: Энергия и ресурсы, которые класс средних мужчин (`_W_MEN_DONORS`). . .
|
Публикация отклонённая на хабре. Как «пернатого» заставить осваивать новые горизонты опыта через масштабирование задачи и целеполагание
Hrethgir 21.07.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11948&stc=1&d=1784657928
Привет Хабр. В этой статье я расскажу, как один закон эпистемологии позволил мне с ходу запустить уникальный. . .
|