Привет всем. У меня вопрос, как можно с помощью Delphi сделать так, чтобы никакой процесс на заданный процесс не смог сделать WriteProcessMemory, ну или ей подобные функции?
1) Или писать драйвер который хукает NtWriteVirtualMemory в SSDT NtWriteVirtualMemory. Из дельфы ты такое легальными способами не зделаешь. А нелегальными - это гемор полный. Так делает аутпост и подобные твари для просекания инжекта. 2) hook - тут не всегда поможет. т.е. ставя хук ты можешь подаатачить свою dll к запускаемым процесса и из этой dll хукать функцию записи в память. С одной стороны часто этого достаточно, но с другой стороны есть глюк. А именно - будет пахать только для оконных приложений. 3) прописать в реестре подгрузку dll к прогам. ключ HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows\AppInit_DLLs этот способ работает норм но не всегда. палится сильно, и подгружается твоя dll тока в том случае если в адресном пространстве проге есть user32.dll Ну а дельше просто хук функций. на WASM почитай статейку про API HOOK
1) функции findfirst findnext через них ты ищешь файлы по маске *.* и всё что находишь - там проверяешь тип. Папка это или файл. итд итп типа того: Code: procedure TForm1.Button1Click(Sender: TObject); var Searchrec: Tsearchrec; s:string; begin memo1.Clear; FindFirst('c:\*.*', FaAnyfile, SearchRec); if (SearchRec.Attr and faDirectory)<>0 then s:='ПАПКА ' else s:='ФАЙЛ '; memo1.Lines.Add(s+SearchRec.Name); while FindNext(SearchRec) = 0 do begin if (SearchRec.Attr and faDirectory)<>0 then s:='ПАПКА ' else s:='ФАЙЛ '; memo1.Lines.Add(s+SearchRec.Name); end; end; 2) UrlDownloadToFile из модуля urlmon типа Code: uses urlmon; procedure TForm1.Button1Click(Sender: TObject); begin urlmon.URLDownloadToFile(nil,'http://ya.ru/','c:\1.html',0,nil); end;
Возник вопрос с созданием на форме что-то вроде полосы, на которой бы стояли фигурки(пнг изображения) и которые могли бы перемещаться по горизонтали. Не знаю какие элементы для создания выбрать.. У кого может были какие наработки или статьи какие почитать? Все изображения не 3д и не 2д, просто плоские картинки. Причем еще нюанс, надо чтобы если ширина этой полосы на которой стоят эти фигурки больше чем ширина экрана, то появилась бы полоса прокрутки, для того чтобы можно было бы просмотреть всех кто стоит на этой полосе. Даже не знаю с чего начать..
тулбар тут притом, что эти твои картинки можно как раз размещать на его кнопках, и предварительно настроить стиль оботражения кнопок чтобы были плоские. Вообще как я понял тебе нужна система типа как в делфи вкладка компонентов сделана. Там есть и рисунки(тока маленькие) и полосы прокрутки если не вмещается. РУчная реализация этого - много заморочек будет с перемещением
IdUDPClient Привет всем возник вопрос как отправлять пакет через idUDPClient1 с разных портов тоесть каждый пакет с другого порта например 3000 3001 3002 3003 и тд до бесконечности
Наверняка только тебе не скажут мне где то из 100% сообщений отвечаются 40% ты непереживай может это сообщение входит в 40%
Конечно Способ называется "минимум кода". Здесь прямопропорциональная зависимость: чем меньше кода, тем меньше ошибок. Ну ты понимаешь о чем я А что не пробовал разве после каждого предыдущего отосланного пакета менять свойство Port для idUDPClient? И отсылать тот же пакет вновь?
Nightmare, Code: try Код, где может произойти ошибка except Мы окажемся тут, если она произойдет, нам надо её обработать, можно ничего не писать, тогда и вывода ошибок не будет end;
У меня такой вопрос: На форме: Tbutton; Tmemo Нужно чтобы про нажатии на Тбутон выполнялись команды введённые в Тмемо Например если в Тмемо введён следующий текст: @echo off echo 123 echo 321 pause При нажатии на Тбутон появлялась командная строка с 123 321 Нажмите клавижу для продолжения... Тобиш результат работы команд... Заранее спасибо...
Uname-A, Code: Uses shellapi; ... Memo1.Lines.SaveToFile('tmp.bat'); ShellExecute(0,'tmp.bat',nil,nil,SW_SHOWNORMAL);
ооо Как все просто!=) Тогда ещё один вопрос : procedure TForm1.Button1Click(Sender: TObject); begin ********(PChar('ping ' + Edit1.Text),*****) end; При выполнеении пингуется хост введённый в Тедит но как перед выполнением этой команды добавить @echo off? Гдето в инете видел как ставится разделитель между командами но страничку потерял и больше найти немогу((( Там был какойто специальный символ типа ********(PChar('@echo off | ping ' + Edit1.Text),*****) _________________________________________ хм .... Чет твой способ непашед( ShellExecute(0,'tmp.bat',nil,nil,SW_SHOWNORMAL); Немного подправив сделал так: ShellExecute(handle,'open','tmp.bat',nil,nil,SW_SHOWNORMAL); Все заработало.... но всеравно спс