Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.11.2011, 15:26   #1
Fedor666
Пользователь
 
Регистрация: 22.02.2010
Сообщений: 71
Смущение Как по hKey узнать название раздела реестра?

Собственно, вопрос в теме
Сплайсил с трамплином функцию NtSetValueKey и хочу запретить добавление в разделы автозагрузки новых ключиков.
Так же вопрос к знающим людям - как из кодировки, используемой в Native конвертнуть текст в нормальный? (там по-моему какая-то другая)
Вот еще загадка: перенос из функции-жертвы первых 5 байтов или больше в трамплин приведет к краху, если там команда относительного перехода. И чего делать? Кроме дизассемблера длин, еще и все возможные команды ручками проверять? Как это красиво сделать?
Не бейте больно за то, что отвлекаю от дел Важных
Fedor666 вне форума Ответить с цитированием
Старый 16.11.2011, 18:16   #2
Fedor666
Пользователь
 
Регистрация: 22.02.2010
Сообщений: 71
По умолчанию

Собственно с первой проблемой разобрался - RegQueryInfoKey. Осталось найти описание дубликата этой функции в ntdll.dll.
Остальные проблемы пока в силе
Fedor666 вне форума Ответить с цитированием
Старый 16.11.2011, 18:55   #3
rpy3uH
добрый няша
Старожил
 
Аватар для rpy3uH
 
Регистрация: 29.10.2006
Сообщений: 4,804
По умолчанию

Цитата:
Сообщение от Fedor666 Посмотреть сообщение
Собственно, вопрос в теме
Сплайсил с трамплином функцию NtSetValueKey и хочу запретить добавление в разделы автозагрузки новых ключиков.
Так же вопрос к знающим людям - как из кодировки, используемой в Native конвертнуть текст в нормальный? (там по-моему какая-то другая)
все функции в ntdll принимают строки только в UNICODE, так как ядро работает только с юникодовыми строками

Цитата:
Сообщение от Fedor666 Посмотреть сообщение
Вот еще загадка: перенос из функции-жертвы первых 5 байтов или больше в трамплин приведет к краху, если там команда относительного перехода. И чего делать? Кроме дизассемблера длин, еще и все возможные команды ручками проверять? Как это красиво сделать?
Не бейте больно за то, что отвлекаю от дел Важных
если там команда относительного перехода то уже ничего не сделать. как вариант анализировать начальный код функции, если там находятся переходы то поправлять их чтобы переход был верным. а вообще, создание трамплинов это очень сложная весчь, иногда намного проще вообще работать без трамплина. если надо вызвать функцию восстанавливать её первые 5 байт и вызывать.

Последний раз редактировалось rpy3uH; 16.11.2011 в 18:57.
rpy3uH вне форума Ответить с цитированием
Старый 16.11.2011, 19:21   #4
Fedor666
Пользователь
 
Регистрация: 22.02.2010
Сообщений: 71
Подмигивание

Цитата:
Сообщение от rpy3uH Посмотреть сообщение
создание трамплинов это очень сложная весчь, иногда намного проще вообще работать без трамплина. если надо вызвать функцию восстанавливать её первые 5 байт и вызывать.
Тогда, пока выполняется функция, ее первые 5 байт восстановлены и другой поток может проскочить контроль
Цитата:
Сообщение от rpy3uH Посмотреть сообщение
все функции в ntdll принимают строки только в UNICODE
Ни кто не подскажет как перевести это в нормальный текст для анализа?
Это последняя проблема!
Плиииз.
Fedor666 вне форума Ответить с цитированием
Старый 16.11.2011, 19:31   #5
rpy3uH
добрый няша
Старожил
 
Аватар для rpy3uH
 
Регистрация: 29.10.2006
Сообщений: 4,804
По умолчанию

Цитата:
Сообщение от Fedor666 Посмотреть сообщение
Тогда, пока выполняется функция, ее первые 5 байт восстановлены и другой поток может проскочить контроль
как вариант, можно во время перед восстановлением оригиналов останавливать все потоки процесса. после вызова функции запускать

Цитата:
Сообщение от Fedor666 Посмотреть сообщение
Ни кто не подскажет как перевести это в нормальный текст для анализа?
Это последняя проблема!
использовать функции для конвертирования, гугль поможет в поиске функций. а лучше всего изначально писать программу на UNICODE, к тому же все последние среды программирования MSVS 2008/2010, Delphi 2009 поддерживают это и по-умолчанию создают проекты на UNICODE
rpy3uH вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Название раздела HDD dmitriegorovih Общие вопросы Delphi 3 15.02.2011 00:02
Как узнать название главной web-страницы в CHM файле NSV Общие вопросы Delphi 3 22.06.2009 00:41
Требуется программным путём считать несколько ключей с реестра из одного раздела. Air Общие вопросы Delphi 6 11.09.2008 11:33
как узнать название текущего поля в ComboBox doncova1 Компоненты Delphi 1 19.12.2006 12:52