Показать сообщение отдельно
Старый 28.12.2024, 14:31   #4
Рыцарь
 
Аватар для VORON
 
Регистрация: 06.08.2007
Сообщений: 223
Сказал Спасибо: 6
Имеет 67 спасибок в 34 сообщенях
VORON пока неопределено
По умолчанию

Delphi Код:
procedure TForm1.Button2Click(Sender: TObject); {тут ДЛЛ-инъекция} var //список ниже для выяснения PID процесса ProcName:string;//имя процесса, так как его видит утилита ProcessExplorer DllNamePAnsiChar:PAnsiChar;//используется точный путь либо известные системе места tempS:string; ProcPID:cardinal;//вроде можно и DWORD использовать hSnapshoot:THandle;{хэндл это ИД. ИД(номер) снимка. все обьекты в системе имеют номер                     индивидуальный(ИД или Хндл одно и тоже). занимает 4 байта. можно заменить на Cardinal} ProcSnapshot:TProcessEntry32;//структура описывает один процесс. сюда записывается описание процесса из снимка для анализа tempBOOL:boolean; //список ниже для установки отладочных привелегий hToken:THandle;//Хэндл токена безопасности. szPrivilege: PChar;//название уровня безопасности. в системе уже существуют                    //имена мы будем использовать szPrivilege:='SeDebugPrivilege' luid: TLargeInteger; NewState: TTokenPrivileges; fEnable: Boolean;//включить или отключить режим отладки для нашего(этого) приложения ReturnLength: DWord; //прочие hProc: THandle;//открывая процесс по его PID- получаем его хэндл pMyMemAdr: pointer;//адрес памяти начиная с которого мы выделили место и чтото туда записали.                    //это может быть исполняемый код который можно выполнить либо просто данные. BytesWriten :cardinal;//результат работы функции- сколько байт получилось записать в чужой процесс в выденленную ранее память pLoadLibAdr: pointer;//адрес с которого начинается функция LoadLibraryA внутри KERNEL32.DLL hRemoteThread: THandle;//хэндл созданого удаленного потока pRemoteThread: THandle;//пока не понимаю на что этот указатель begin {задаем имя процесса жертвы, так как его видит система. воспользуйтесь приложухой ProcessExplorer чтобы с точностью до зоглавных букв выяснить имя это} ProcName := 'calc1.exe'; {задаем путь к длл которую будем инжектить. вот проводник всегда первую букву заглавную пишет. хотя на самом деле там строчная. нам надо точное имя. я не уверен что прям регистр тут важен но это может быть так для имени длл} tempS:=ExtractFilePath(ParamStr(0)) + 'pi.dll'; {апи типа LoadLibraryA работают с анси строками, индекс А об этом и говорит кстатти. есть еще юникодные версии этих апи с буквой W на конце типа LoadLibraryW} DllNamePAnsiChar:=PAnsiChar(AnsiString(tempS)); ProcPID := 0; {Ищем ProcessID (PID) интересующего нас процесса, для этого делается снимок всех процессов в системе, он перебирается и сравнивается имя процесса с заданным как тока путем перебора нашли нужный нам процесс (по имени) мы запомним его PID. можно узнать PID в ручном режиме подглядя его в приложухе ProcessExplorer. нельзя путать PID с Хэндлом процесса. PID это глобальный идентификатор процесса. если рассматривать весь процесс как обьект- то PID его номер в системе. а хэндл на процесс который выдается при открытии процесса через OpenProcess- это создается дополнительный какойто обьект в системе с помощью которого возможно както взаимодействовать с процессом} hSnapshoot := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); if hSnapshoot = INVALID_HANDLE_VALUE then memo1.Lines.add('не удалось получить список процессов'); if hSnapshoot <> INVALID_HANDLE_VALUE then   begin     try     ProcSnapshot.dwSize := SizeOf(ProcSnapshot);     tempBOOL := Process32First(hSnapshoot, ProcSnapshot);//получаем первый процесс в снимке     if tempBOOL = false then memo1.Lines.add('нет первого процесса в списке');     while tempBOOL do       begin       memo1.Lines.Add(ProcSnapshot.szExeFile + '  ' + inttostr(ProcSnapshot.th32ProcessID));       if (ProcSnapshot.szExeFile = ProcName) then ProcPID:=ProcSnapshot.th32ProcessID;       tempBOOL := Process32Next(hSnapshoot, ProcSnapshot);//получаем следующий процесс       if tempBOOL = false then memo1.Lines.add('функция получения следующего процесса вернула FALSE');       end;     finally     CloseHandle(hSnapshoot);//освобождаем хэндл снимка     end;   end; memo1.Lines.add('нашли процесс ' + ProcName + ' запомнили его PID=' + inttostr(ProcPID));
__________________
Цитата:
Сообщение от pybukon
прежде чета попросить я немнога раскажу чтоб вы понили как мне плоха
Цитата:
Сообщение от Byrger
А как сделать мой скрипт бесконечным?
Цитата:
Сообщение от XKOR
.. каждый день ионизированной ногой протирает больную)
Цитата:
Сообщение от PsyR
Вылоджите пожалуйста скрипт на рыбалку желательно что бы сам в ВХ клал адаптированый под шоки и так же скрипт на ТТ рец, тоже с диалогами

Последний раз редактировалось VORON, 29.01.2025 в 15:14.
VORON вне форума   Ответить с цитированием