Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> внедрение Dll и Open/SaveDialog 
:(
    Опции темы
lu0
Дата 7.9.2006, 09:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 23.8.2006

Репутация: нет
Всего: нет



Проблема с вызовом Open/SaveDialog.
Ситуация такая:
- родительская программа запускает другую в suspended режиме и внедряет в неё dll.
выглядит внедрение так:

Код

function Hoook(DLL:String):Boolean;
var
  Memory,LoadL:Pointer;
  hThread,TID:THANDLE;
  DLLSize,Written:dword;
begin
  Result:=False;
  try
    DLLSize:=Length(DLL)+2;
    Memory:=VirtualAllocEx(PROCESS.hProcess,Nil,DLLSize,MEM_COMMIT or MEM_RESERVE,PAGE_READWRITE);
    If Memory=Nil
    then Exit;
    If not WriteProcessMemory(PROCESS.hProcess,Memory,PChar(DLL),DLLSize,Written)
    then Exit;
    LoadL:=GetProcAddress(GetModuleHandle('Kernel32'),'LoadLibraryA');
    hThread:=CreateRemoteThread(PROCESS.hProcess,Nil,0,LoadL,Memory,0,TID);
    If hThread=0
    then Exit;
    WaitForSingleObject(hThread,INFINITE);
    Result:=True;


код практически один-в-один из примера Рихтера
после чего в вызываемой проге перестают работать диалоги Open/SaveDialog.

может кто скажет чего?
PM MAIL   Вверх
RideX
Дата 7.9.2006, 09:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Awaiting Authorisation
Сообщений: 94
Регистрация: 8.9.2004

Репутация: 2
Всего: 7



Попробуй сделать по другому:
• В импорт другой программы пропиши свою DLL

или

• В другой программе с EntryPoint сделай переход на свой участок кода, который можно записать в свободном месте между секциями (т.к. присутствует выравнивание секций), или в  дополнительную секцию, если места нет. Там сделай вызов LoadLibrary своей DLL, т.е. загрузи её динамически, выполни затёртые команды с EP и передай управление обратно на ориг. код.
PM   Вверх
Alexeis
Дата 7.9.2006, 11:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 16
Всего: 459



lu0, может dll сама что-то блокирует. Пробовал загружать пустую dll (минимальный проект)  smile 


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
lu0
Дата 7.9.2006, 12:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 23.8.2006

Репутация: нет
Всего: нет



Цитата(RideX @ 7.9.2006,  09:29)
• В импорт другой программы пропиши свою DLL
• В другой программе с EntryPoint сделай переход на свой участок кода, который можно записать

чужой код трогать не хотелось бы

Цитата(alexeis1)

lu0, может dll сама что-то блокирует. Пробовал загружать пустую dll (минимальный проект) 

пробовал smile
более того если внедрять через создание треда и переключение контекста основного треда, то проблемы нет
PM MAIL   Вверх
lu0
Дата 8.9.2006, 10:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 23.8.2006

Репутация: нет
Всего: нет



После анализа разных метедов внедрения проблема поборена
Кака была в запуске дочерней проги в <B>суспендеде</B>

всем спасибо.

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: WinAPI и системное программирование"
Snowybartram
MetalFanbems
PoseidonRrader
Riply

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Delphi обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • 99% ответов по WinAPI можно найти в MSDN Library, оставшиеся 1% здесь

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема »


 




[ Время генерации скрипта: 0.0560 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.