Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.57/14: Рейтинг темы: голосов - 14, средняя оценка - 4.57
0 / 0 / 0
Регистрация: 13.05.2022
Сообщений: 36

Правка таблицы импорта

13.05.2022, 12:57. Показов 3272. Ответов 55
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! Вопрос по правке таблицы импорта. Мне попался делфийский код по перехвату и подмене "MessageBoxA" в user32. Вот ссылка: https://pastebin.com/00FbHHwN
Но я сишник... и решил переписать его под С++. Всё нормально..., но есть НЮАНС (!) - на RAd Studio 2010 нормально компилируется и работает, а вот RAd Studio 10.4.2 и RAd Studio 11 - так же нормально компелируется..., сама прога работает, но перехвата и подмены не происходит! Не пойму... - в чём причина? Код абсолютно одинаковый. Нашёл в инете ещё пару кодов. Переделал их "под себя" - та же картина!... - в 2010 идёт подмена, а в 10.4.2 нет. Не находит он "MessageBoxA" в билотеке. Подскажите пожалуйста в каком направлении смотреть. За ранее благодарен за любую подсказку.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
13.05.2022, 12:57
Ответы с готовыми решениями:

Получение таблицы импорта pe файла
С экспортом разобрался, теперь бы получить импорт. Нашел статьи но не могу разобраться( Добавлено через 49 минут type ...

Файл без таблицы импорта
Вопрос может быть и в тему, но мне очень интересно. Как можно создать полноценный исполняемый файл для винды, не использующий таблицу...

Массовое отображение и правка файлов в виде таблицы
Добрый день. Возникла необходимость переработать большое количество файлов, а последний раз программировать я пытался лет десять назад, не...

55
19501 / 10106 / 2461
Регистрация: 30.01.2014
Сообщений: 17,825
18.05.2022, 00:00
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от cvi Посмотреть сообщение
Чтобы его перехватить, нужно поправить таблицу импорта. Перехватить его надо на точке входа, т.е. до того, как приложение начнёт выполнение.
Это уже ваше решение проблемы. Но я спрашивал не об этом. Я спрашивал о том какая задача.

Цитата Сообщение от cvi Посмотреть сообщение
Его запускает сама библиотека если скин незаригестрированый.
Что за скин? В смысле как эта ситуация вообще стала возможной?
Опишите предысторию.
Про возможные варианты решения потом поговорим.
1
0 / 0 / 0
Регистрация: 13.05.2022
Сообщений: 36
18.05.2022, 12:21  [ТС]
Описывать, особо, нечего... Обычные скины для оформления прог - "AlphaControls"... Я их давно использую. Но у них есть скины защищёные. И вот на них то выскакивает это окошко. И когда было больше времени, я решил попробовать перевести делфийский код перехвата и подмены. Дело не в нескольких скинах..., а просто в решении уже этой задачи. Не привык отступать. Да и интересно это всё. Ведь познание чего то и есть развитие.
0
19501 / 10106 / 2461
Регистрация: 30.01.2014
Сообщений: 17,825
18.05.2022, 13:03
Цитата Сообщение от cvi Посмотреть сообщение
Но у них есть скины защищёные. И вот на них то выскакивает это окошко. И когда было больше времени, я решил попробовать перевести делфийский код перехвата и подмены.
Уже яснее.
Если я правильно понял:
1) Вы используете некий сторонний компонент для С++ Builder\Delphi
2) Этот компонент в определенный момент времени (когда?) вызывает MessageBox
3) Вам надо перехватить этот MessageBox

Так?
0
0 / 0 / 0
Регистрация: 13.05.2022
Сообщений: 36
18.05.2022, 14:27  [ТС]
Абсолютно всё верно. Выскакивает до того, как приложение начнёт выполняться. Поэтому всякие FindWindow тут не подходят. Только перехват и подмена до запуска. И оно работает в 2010. И перехватывает именно MessageBoxA. Осталось добиться того же в 10.4. И именно в С++, та как в делфи и там и там работает.
0
19501 / 10106 / 2461
Регистрация: 30.01.2014
Сообщений: 17,825
18.05.2022, 21:40
Цитата Сообщение от cvi Посмотреть сообщение
Осталось добиться того же в 10.4. И именно в С++, та как в делфи и там и там работает.
С этим все ясно.

Цитата Сообщение от cvi Посмотреть сообщение
Только перехват и подмена до запуска.
Почему вы уверены, что в 10.4 в этот момент используется именно MessageBoxA, а не другая функция?
0
0 / 0 / 0
Регистрация: 13.05.2022
Сообщений: 36
18.05.2022, 23:02  [ТС]
А что ещё может использоваться?... Библиотека стороннего компонента то работает одинаково... Независимо от версии компилятора... И в делфи то код не менялся!... И работает, выходит, независимо от того, на какой версии он будет откомилен. Вот скрин с 'Hex Works', сделанный с .exe 10.4.
Миниатюры
Правка таблицы импорта  
0
19501 / 10106 / 2461
Регистрация: 30.01.2014
Сообщений: 17,825
19.05.2022, 00:37
cvi, соберите мне в 2010 это приложение с AlphaControls, но БЕЗ перехвата. Т.е. чтобы оно также показывало окно, как в 10.4 сейчас.
0
0 / 0 / 0
Регистрация: 13.05.2022
Сообщений: 36
19.05.2022, 01:33  [ТС]
Вот оно...
Вложения
Тип файла: rar 2010.rar (1.25 Мб, 5 просмотров)
0
0 / 0 / 0
Регистрация: 13.05.2022
Сообщений: 36
19.05.2022, 01:39  [ТС]
Я Вашу идею понял... Этой надписи нет. Осталась только надпись и текст самого окошка.
0
0 / 0 / 0
Регистрация: 13.05.2022
Сообщений: 36
21.05.2022, 18:59  [ТС]
Вопрос остался не решённым... Какие есть идеи?
0
0 / 0 / 0
Регистрация: 13.05.2022
Сообщений: 36
21.05.2022, 21:05  [ТС]
Посмотрите пожалуйста - в архиве два файла .doc. Один файл --- 2010 читает user32, а другой --- 10.4 читает user32. В списке, что читает 2010 - есть MessageBoxA, а в списке, что читает 10.4 - его нет. Как такое может быть?... Они что, разные библиотеки читают?...
Вложения
Тип файла: rar 0.rar (7.7 Кб, 3 просмотров)
0
0 / 0 / 0
Регистрация: 13.05.2022
Сообщений: 36
22.05.2022, 14:26  [ТС]
Да перехватывал я MessageBoxW... Подмены только не происходит и... не произойдёт! Потому, что перехватывать надо MessageBoxА. Делфи то ловит MessageBoxА (!) и... - это делает благополучно! Писал я Вам об этом уже не раз.
0
19501 / 10106 / 2461
Регистрация: 30.01.2014
Сообщений: 17,825
22.05.2022, 15:30
Цитата Сообщение от cvi Посмотреть сообщение
Писал я Вам об этом уже не раз.
Я пропущу мимо ушей ваше раздражение.

По теме:
В общем, появилась идея.
Добавьте перед функцией main вот такой код
C++
1
2
3
4
void dummy() 
{
    MessageBoxA(0, "", "", 0);
}
Вызывать ее не надо, просто добавьте.
0
0 / 0 / 0
Регистрация: 13.05.2022
Сообщений: 36
22.05.2022, 17:48  [ТС]
Спасибо большое..., но ничего не дало. С MessageBoxA даже не проходит строку if( (PVOID)Thunk->u1.Function == __ADDRES ), а с MessageBoxW строка if( (PVOID)Thunk->u1.Function == __ADDRES ) пропускает, но подмены не происходит в последующем коде... и не произойдёт, потому что мне надо каким то образом найти именно MessageBoxA в user32. Тогда всё сразу получиться. Я просто не знаю как это сделать. Почему 11 его там не находит, а 2010 находит... Делфи, ведь, тоже находит... и там и там...
0
19501 / 10106 / 2461
Регистрация: 30.01.2014
Сообщений: 17,825
22.05.2022, 18:09
Цитата Сообщение от cvi Посмотреть сообщение
но ничего не дало.
Совсем ничего? Теперь в дампе таблицы импорта эта функция должна была появиться.

Еще попробуйте код перехвата запустить до main.
0
0 / 0 / 0
Регистрация: 13.05.2022
Сообщений: 36
22.05.2022, 19:29  [ТС]
Агааа.... Срабатывать - оно не срабатывало... Но сейчас посмотреть - появиться ли MessageBoxA в дампе таблицы импорта...

Добавлено через 4 минуты
Нет его в списке!...( Всё по прежнему.

Добавлено через 5 минут
Почему не получается найти MessageBoxА в библиотеке?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
22.05.2022, 19:29

Инструменты для редактирования таблицы импорта pe?
Доброго! Есть бинарник под десятку, хочу завести его под семёркой. Он использует несколько winapi из user32, kernel32 и др, которых в...

Контрол для импорта таблицы в файл Word
Приветствую, Друзья! Подскажите контрол для импорта в вордовский файл таблицы, состоящей из пяти столбцов(первые три столбца описывают...

После импорта таблицы, пропадает сортировка - настоящая головоломка
Есть БД. Возникла необходимость обновить таблицу (набранную в точно такой-же, но из-вне). Вначале импортом воспользовался-проблема (ниже),...

Как получить имена Dll файлов из таблицы импорта
Добрый день. Нужно получить имена Dll файлов из таблицы импорта и при этом иметь возможность заблокировать запуск приложение....

Автоматическое создание формы на основе созданной таблицы в результате импорта данных (VBA)
Доброе время суток, Уважаемые! Подскажите, пожалуйста, решение задачи. Задача: Необходимо после импорта данный из разных однотипных...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
56
Ответ Создать тему
Новые блоги и статьи
сукцессия 33. открытые вопросы от клауде
anaschu 19.07.2026
"Что накопилось за эту часть А — тринадцать правок, из которых шесть пришли из ваших вопросов и каждая оказалась реальной ошибкой, а не калибровкой: односторонний симбиоз, отсутствующий листопад,. . .
32 сукцессия
anaschu 19.07.2026
сукцессия 28‑мерное ядро стабилизировано Коллеги, фиксирую разбор инженерных правок и их изоморфную проекцию на экономику, меметику и половой отбор. Модель теперь не «подкручивает» сходимость —. . .
сукцессия 31: модель микоризы - это модель ещё нескольких явлений, социальных и экономических
anaschu 18.07.2026
Теория «Всего»: апдейт v1. 1. 2 — 28‑мерное ядро стабилизировано Коллеги, фиксирую разбор инженерных правок и их изоморфную проекцию на экономику, меметику и половой отбор. Модель теперь не. . .
сукцессия 30. Массив проверяющих друг друга моделей
anaschu 18.07.2026
Архитектура сети взаимопроверяющих моделей микоризной сукцессии (v2. 0) Развитие тензорного ОДУ-ядра и создание кросс-платформенного калибровочного полигона Уважаемые коллеги! В продолжение. . .
Грибы - это женщины, деревья - это мужчины. Анти инь янь для союза мужчины и женщины.
anaschu 18.07.2026
ГЛАВНЫЙ НАУЧНО-ФИЛОСОФСКИЙ ВЫВОД: Сексуально-Репродуктивный Капитализм против Государства Моногамии Коллеги, мы вышли на финишную прямую 20-мерного ОДУ-моделирования вековой сукцессии (ветка. . .
Текстовый слайдер с нумерацией страниц и кроссбраузерность.
russiannick 18.07.2026
Один мой друг написал текстовый слайдер с нумерацией страниц. Сегодня я расскажу как он умудрился подружить его с кроссбраузерностью. Очевидно сложно угодить с шириной каждому браузеру. Один крадет. . .
Грибы - это мемы, дерево - это человек. Применение микоризной модели к теории меметики Докинза.
anaschu 18.07.2026
Меметический изоморфизм теории «всего»: Грибная сукцессия как модель эволюции идей Докинза Базовый код системы ОДУ микоризной сукцессии описывает не просто биологию, а универсальную. . .
Грибы - это корпорации, деревья - это государства. Механизм массонского захвата власти
anaschu 18.07.2026
Макроэкономический изоморфизм теории «всего»: Грибная сукцессия как модель транснационального капитализма Базовый код системы ОДУ микоризной сукцессии описывает не просто биологию, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru