Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.01.14;
Скачать: CL | DM;

Вниз

jump to adress   Найти похожие ветки 

 
4ert   (2006-12-26 07:55) [0]

Здравствуйте!!!!
Господа помогите плиз, а то сщас об стенку головой биться буду всю ночь сижу догнать не могу....
Пишу программу, работает так: загружает мою dll в чужой процесс та, там в свою очередь должна перехватывать некоторые функции API, с этим она справляется отлично, только вот как сделать так чтобы перехватываемая функция все-таки выполнилась в зараженном приложении, вот функция обработки события:


function hconnect(ss: TSocket; var names: TSockAddr; namelen: Integer): Integer; stdcall;
var
  dat: TCopyDataStruct;
 tmp: string;
begin
   with dat do
  begin
    dwData := 0;
    tmp:=inet_ntoa(names.sin_addr)+":"+inttostr(ntohs(names.sin_port));
    cbData := StrLen(Pchar(tmp))+1;
    lpData :=PChar(tmp);
  end;
 sendmessage(findwindow(nil,"HPION"),WM_M,666,longint(@dat));
WriteProcessMemory(CurrProc, AdrCreateProcessA, @OldCrp, SizeOf(far_jmp), Writen);//возращаем память в "исходное состояние"
end;


Так вот, как только мы отправили данные и сняли ловушку, необходимо, чтобы нужная функция все-таки выполнилась....
Если кто знает как реализовать(желательно с примером) буду благодарен до безумия....
Заранее спасибо!!!!


 
Elen ©   (2006-12-26 08:42) [1]


> Так вот, как только мы отправили данные и сняли ловушку,
>  необходимо, чтобы нужная функция все-таки выполнилась..
> ..

Попробую намекнуть, например так :


..............................
procedure qq; // Сюда будем прыгать
procedure ww; // отсюда
var     rr:pointer; //Переменка с адресом куда прыгать
 Form1: TForm1;

implementation

{$R *.dfm}

//********* PROCEDURE**********
procedure ww;
//const
begin
asm
call rr
end;
end;
//********* END PROCEDURE*******
//********* PROCEDURE**********
procedure qq;
//const
Var u:byte;
begin
form1.Caption:="ss";
end;
//********* END PROCEDURE*******
procedure TForm1.FormCreate(Sender: TObject);
begin
rr:=@qq; // Где то сохрани старый адрес!!!
ww;
end;
....................


Намек ясен?  ;) (Только с параметрами старой процедуры не запутайся, а то AV схватиш)



Страницы: 1 вся ветка

Текущий архив: 2007.01.14;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.047 c
15-1166213661
Kostafey
2006-12-15 23:14
2007.01.14
Частичный Backup БД


1-1163789132
SkySpeed
2006-11-17 21:45
2007.01.14
Как распечатать, используя Delphi файл?


15-1166622757
Жук Андрей
2006-12-20 16:52
2007.01.14
Требуется программист


1-1164032851
Alexis
2006-11-20 17:27
2007.01.14
Получение всех шрифтов системы


2-1167147616
AlexanderMS
2006-12-26 18:40
2007.01.14
Шрифт печати...