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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Перехватить открытие файла 
:(
    Опции темы
tigger
Дата 8.3.2007, 16:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: -1
Всего: 4



Как можно перехватить например открытие любых txt файлов?


--------------------
user posted image
PM MAIL   Вверх
bartram
Дата 8.3.2007, 20:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1606
Регистрация: 22.2.2004
Где: Russia, Samara

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



1. Поиск Перехват Api
2. Перехватывай CreateFile


--------------------
В каждом из нас спит гений, но с каждым днем все крепче ;-)
bartram.ru
Twitter
user posted image 

PM MAIL ICQ   Вверх
MetalFan
Дата 8.3.2007, 21:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Аццкий Сотона
****


Профиль
Группа: Комодератор
Сообщений: 3815
Регистрация: 2.10.2006
Где: Moscow

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



bartram
+ назначить в реестре на расширение txt свое приложение...


--------------------
There are always someone smarter than you...
PM MAIL   Вверх
bartram
Дата 9.3.2007, 09:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1606
Регистрация: 22.2.2004
Где: Russia, Samara

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



Цитата(MetalFan @  8.3.2007,  21:03 Найти цитируемый пост)
+ назначить в реестре на расширение txt свое приложение...

А зачем? Можно просто перехватывать обращение и фильтровать по расширению txt smile



--------------------
В каждом из нас спит гений, но с каждым днем все крепче ;-)
bartram.ru
Twitter
user posted image 

PM MAIL ICQ   Вверх
MetalFan
Дата 11.3.2007, 20:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Аццкий Сотона
****


Профиль
Группа: Комодератор
Сообщений: 3815
Регистрация: 2.10.2006
Где: Moscow

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



Цитата(bartram @  9.3.2007,  09:19 Найти цитируемый пост)
Можно просто перехватывать обращение 

по моему перехват апи эт не совсем "просто"....


--------------------
There are always someone smarter than you...
PM MAIL   Вверх
tigger
Дата 12.3.2007, 12:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: -1
Всего: 4



Начал делать на CreateFile сделал, на файле тыкаешь блокнот грузится хотя пустой не запускается. В чем дело не пойму.


--------------------
user posted image
PM MAIL   Вверх
bartram
Дата 12.3.2007, 12:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1606
Регистрация: 22.2.2004
Где: Russia, Samara

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



Цитата(tigger @  12.3.2007,  12:43 Найти цитируемый пост)
Начал делать на CreateFile сделал, на файле тыкаешь блокнот грузится хотя пустой не запускается. В чем дело не пойму. 

Код в студию smile тут телепатов нет



--------------------
В каждом из нас спит гений, но с каждым днем все крепче ;-)
bartram.ru
Twitter
user posted image 

PM MAIL ICQ   Вверх
tigger
Дата 12.3.2007, 13:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: -1
Всего: 4



За основу был взят пример по перехвату MessageBoxA.

Присоединённый файл ( Кол-во скачиваний: 25 )
Присоединённый файл  adwarebox.rar 18,62 Kb


--------------------
user posted image
PM MAIL   Вверх
bartram
  Дата 12.3.2007, 15:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1606
Регистрация: 22.2.2004
Где: Russia, Samara

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



Мдя....
Код

library AdvBox32;

uses
  Windows;

type
 OldCode = packed record
  One: dword;
  two: word;
 end;


far_jmp = packed record
  PuhsOp: byte;
  PushArg: pointer;
  RetOp: byte;
 end;

var
 JmpMbw, JmpMba: far_jmp;
 OldMbw, OldMba: OldCode;
 MbwAdr, MbaAdr: pointer;


function TrueCreateFile(lpFileName: PWideChar; dwDesiredAccess,
                       dwShareMode: DWORD;
                       lpSecurityAttributes: PSecurityAttributes;
                       dwCreationDisposition, dwFlagsAndAttributes: DWORD;
                       hTemplateFile: THandle): THandle; stdcall;
var
 Written: dword;
begin

WriteProcessMemory(INVALID_HANDLE_VALUE, MbwAdr,
                     @OldMbw, SizeOf(OldCode), Written);

Result:=0;//CreateFileW(lpFileName,dwDesiredAccess,dwShareMode,lpSecurityAttributes,dwCreationDisposition,dwFlagsAndAttributes,hTemplateFile);


WriteProcessMemory(INVALID_HANDLE_VALUE, MbwAdr,
                     @JmpMbw, SizeOf(far_jmp), Written);
end;

function MyCreateFileW(lpFileName: PWideChar; dwDesiredAccess,
                       dwShareMode: DWORD;
                       lpSecurityAttributes: PSecurityAttributes;
                       dwCreationDisposition, dwFlagsAndAttributes: DWORD;
                       hTemplateFile: THandle): THandle; stdcall;
begin
Result := TrueCreateFile(lpFileName,dwDesiredAccess,dwShareMode,lpSecurityAttributes,dwCreationDisposition,dwFlagsAndAttributes,hTemplateFile);
end;

function MyCreateFileA(lpFileName: PAnsiChar; dwDesiredAccess,
                       dwShareMode: DWORD;
                       lpSecurityAttributes: PSecurityAttributes;
                       dwCreationDisposition, dwFlagsAndAttributes: DWORD;
                       hTemplateFile: THandle): THandle; stdcall;
var
 cLen: dword;
 FileName:PWideChar;
begin
cLen := lstrlen(lpFileName) * SizeOf(WideChar) + 2;
GetMem(FileName, cLen);
StringToWideChar(lpFileName, FileName, cLen);
Result := MyCreateFileW(FileName,dwDesiredAccess,dwShareMode,lpSecurityAttributes,dwCreationDisposition,dwFlagsAndAttributes,hTemplateFile);
FreeMem(FileName);
end;


Procedure SetHook();
var
 hkernel32: dword;
 Bytes: dword;
begin
  hkernel32 := GetModuleHandle('kernel32.dll');

  MbwAdr  := GetProcAddress(hkernel32, 'CreateFileW');
  MbaAdr := GetProcAddress(hkernel32, 'CreateFileA');

  ReadProcessMemory(INVALID_HANDLE_VALUE, MbwAdr, @OldMbw, SizeOf(OldCode), Bytes);
  ReadProcessMemory(INVALID_HANDLE_VALUE, MbaAdr, @OldMba, SizeOf(OldCode), Bytes);


  JmpMbw.PuhsOp  := $68;
  JmpMbw.PushArg := @MyCreateFileW;
  JmpMbw.RetOp   := $C3;

  JmpMba.PuhsOp  := $68;
  JmpMba.PushArg := @MyCreateFileA;
  JmpMba.RetOp   := $C3;




  WriteProcessMemory(INVALID_HANDLE_VALUE, MbwAdr, @JmpMbw, SizeOf(far_jmp), Bytes);
  WriteProcessMemory(INVALID_HANDLE_VALUE, MbaAdr, @JmpMba, SizeOf(far_jmp), Bytes);

end;

Procedure Unhook();
var
 Bytes: dword;
begin
  WriteProcessMemory(INVALID_HANDLE_VALUE, MbaAdr, @OldMba, SizeOf(OldCode), Bytes);
  WriteProcessMemory(INVALID_HANDLE_VALUE, MbwAdr, @OldMbw, SizeOf(OldCode), Bytes);
end;


// залепа
Function MessageProc(code : integer; wParam : word;
                    lParam : longint) : longint; stdcall;
begin
 CallNextHookEx(0, Code, wParam, lparam);
 Result := 0;
end;

Procedure SetGlobalHookProc();
begin
 SetWindowsHookEx(WH_GETMESSAGE, @MessageProc, HInstance, 0);
 Sleep(INFINITE);
end;
//

Procedure SetGlobalHook();
var
 hMutex: dword;
 TrId: dword;
begin
 hMutex := CreateMutex(nil, false, 'AdvareHook');
 if GetLastError = 0 then
 CreateThread(nil, 0, @SetGlobalHookProc, nil, 0, TrId) else
 CloseHandle(hMutex);
end;

//входная точка dll
procedure DLLEntryPoint(dwReason: DWord);
begin
  case dwReason of
    DLL_PROCESS_ATTACH: begin
                             //установка глобальной ловушки
                          SetGlobalHook();
                          SetHook()
                        end;
    DLL_PROCESS_DETACH: UnHook();
  end;
end;


begin
 DllProc := @DLLEntryPoint;
 DLLEntryPoint(DLL_PROCESS_ATTACH);
end.

Так где ты собственно перехватываешь? Я не вижу например имени файла
Из кода я понял что ты просто пропускаешь эту функцию через свою dll, при этом ничего не изменяя. из-за этого и ошибки
И вообще ты взял плохой пример для понимания ИМХО smile
Вот держи  модули, и примеры перехвата, которые реализованы более "просто" для понимания. Если что то будут непонятно, то спрашивай smile

Это сообщение отредактировал(а) bartram - 12.3.2007, 15:43

Присоединённый файл ( Кол-во скачиваний: 109 )
Присоединённый файл  advapihook.rar 39,62 Kb


--------------------
В каждом из нас спит гений, но с каждым днем все крепче ;-)
bartram.ru
Twitter
user posted image 

PM MAIL ICQ   Вверх
tigger
Дата 12.3.2007, 16:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: -1
Всего: 4



Спасибо посмотрю, завтра напишу.


--------------------
user posted image
PM MAIL   Вверх
tigger
Дата 12.3.2007, 16:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: -1
Всего: 4



Не могу скачать????


--------------------
user posted image
PM MAIL   Вверх
bartram
Дата 12.3.2007, 21:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1606
Регистрация: 22.2.2004
Где: Russia, Samara

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



tigger, почему? сейчас проверил, все нормально качается. Ты как качаешь?


--------------------
В каждом из нас спит гений, но с каждым днем все крепче ;-)
bartram.ru
Twitter
user posted image 

PM MAIL ICQ   Вверх
tigger
Дата 13.3.2007, 12:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: -1
Всего: 4



Сохранить объект как... и сохраняет под именем файла id-1061614.html


--------------------
user posted image
PM MAIL   Вверх
bartram
Дата 13.3.2007, 13:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1606
Регистрация: 22.2.2004
Где: Russia, Samara

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



tigger, просто переходи по ссылке, все должно быть норм


--------------------
В каждом из нас спит гений, но с каждым днем все крепче ;-)
bartram.ru
Twitter
user posted image 

PM MAIL ICQ   Вверх
Yanis
Дата 13.3.2007, 13:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2937
Регистрация: 9.2.2004
Где: Москва

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



Цитата(tigger @  13.3.2007,  13:02 Найти цитируемый пост)
Сохранить объект как... и сохраняет под именем файла id-1061614.html 

Хитрый какой ;) Должен же форум посчитать кол-во скачиваний.

Это сообщение отредактировал(а) Yanis - 13.3.2007, 13:56


--------------------
user posted image *щёлк*
PM MAIL WWW ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "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.

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


 




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


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

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