Хостинг портала RFpro.ru: Московский хостер Профессиональный ХОСТИНГ на базе Linux x64 и Windows x64 РАССЫЛКИ ПОРТАЛА RFPRO.RU Лучшие эксперты данной рассылки Номер выпуска: | 1422 | Дата выхода: | 27.02.2011, 21:30 | Администратор рассылки: | Зенченко Константин Николаевич (Модератор) | Подписчиков / экспертов: | 219 / 66 | Вопросов / ответов: | 1 / 1 | Вопрос № 182290: Уважаемые эксперты! Пожалуйста, ответьте на вопрос: 1) Ниже прилагается исходник на tasm который ищет KERNEL32 base адресс. На оси XP\Vista программа работает. Суть задачи сводиться к тому как подкорректировать алгоритм поиска для win7 ? Фо... Вопрос № 182290: Уважаемые эксперты! Пожалуйста, ответьте на вопрос:
1) Ниже прилагается исходник на tasm который ищет KERNEL32 base адресс. На оси XP\Vista программа работает. Суть задачи сводиться к тому как подкорректировать алгоритм поиска для win7 ? Формат tasm
Отправлен: 22.02.2011, 21:00 Вопрос задал: ANATOLY FIRST (3-й класс) Всего ответов: 1 Страница вопроса » Отвечает Павел Юрьевич (9-й класс) : Здравствуйте, ANATOLY FIRST!
Для поиска Kernel32.DLL лучше использовать универсальный алгоритм:
Код: cld xor edx, edx
mov edx, [fs:edx+0x30] // получаем указатель на PEB mov edx, [edx+0x0C] // получаем PEB->Ldr mov edx, [edx+0x14] // получаем первый модуль из списка InMemoryOrder next_mod: mov esi, [edx+0x28] // получаем указатель на список имен модулей (unicode) push byte 24 pop ecx xor edi, edi loop_modname: xor eax, eax lodsb // читаем следующий байт имени модуля cmp al, 'a' // некоторые версии Windows хранят имена в нижнем регистре jl not_lowercase sub al, 0x20 // нормализуем not_lowercase: ror edi, 13 add edi, eax // добавляем байт к хешу имени loop loop_modname cmp edi, 0x6A4ABC5B // сравниваем хеш с KERNEL32.DLL mov ebx, [edx+0x10] // получаем базовый адрес модуля mov edx, [edx] // получаем следующий модуль jne next_mod
// в EBX получаем адрес модуля. Ответ отправил: Павел Юрьевич (9-й класс) Ответ отправлен: 22.02.2011, 21:26 Номер ответа: 265980 Россия, Челябинск ICQ # 197232777 Вам помог ответ? Пожалуйста, поблагодарите эксперта за это! Как сказать этому эксперту "спасибо"? | Отправить SMS #thank 265980 на номер 1151 (Россия) | Еще номера » | Оценить выпуск » Нам очень важно Ваше мнение об этом выпуске рассылки! Скажите "спасибо" эксперту, который помог Вам! Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА на короткий номер 1151 (Россия) Номер ответа и конкретный текст СМС указан внизу каждого ответа. Полный список номеров » * Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи. (полный список тарифов) ** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются. *** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании. |
Комментариев нет:
Отправить комментарий