[ Delphi / Pascal ] — начинающим: задаем вопросы (архивная - 2015)

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by banned, 6 May 2007.

Thread Status:
Not open for further replies.
  1. slesh

    slesh Elder - Старейшина

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    VK_TAB?
     
    1 person likes this.
  2. FindeR

    FindeR Elder - Старейшина

    Joined:
    15 Nov 2006
    Messages:
    623
    Likes Received:
    138
    Reputations:
    20
    Вот, блин...туплю очень сильно.
    Спасиб))
     
  3. RaX

    RaX Member

    Joined:
    7 Jun 2008
    Messages:
    34
    Likes Received:
    34
    Reputations:
    0
    Привет всем. У меня вопрос, как можно с помощью Delphi сделать так, чтобы никакой процесс на заданный процесс не смог сделать WriteProcessMemory, ну или ей подобные функции?
     
  4. W!z@rD

    W!z@rD Борец за русский язык

    Joined:
    12 Feb 2006
    Messages:
    973
    Likes Received:
    290
    Reputations:
    43
    global hook
     
  5. RaX

    RaX Member

    Joined:
    7 Jun 2008
    Messages:
    34
    Likes Received:
    34
    Reputations:
    0
    А по точнее?)))
     
  6. slesh

    slesh Elder - Старейшина

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    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
     
  7. slesh

    slesh Elder - Старейшина

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    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;
    
     
    #2607 slesh, 30 Jan 2009
    Last edited: 30 Jan 2009
    1 person likes this.
  8. cremator (c)

    cremator (c) Elder - Старейшина

    Joined:
    20 Jun 2008
    Messages:
    258
    Likes Received:
    72
    Reputations:
    0
    Возник вопрос с созданием на форме что-то вроде полосы, на которой бы стояли фигурки(пнг изображения) и которые могли бы перемещаться по горизонтали. Не знаю какие элементы для создания выбрать.. У кого может были какие наработки или статьи какие почитать? Все изображения не 3д и не 2д, просто плоские картинки. Причем еще нюанс, надо чтобы если ширина этой полосы на которой стоят эти фигурки больше чем ширина экрана, то появилась бы полоса прокрутки, для того чтобы можно было бы просмотреть всех кто стоит на этой полосе. Даже не знаю с чего начать..
     
  9. slesh

    slesh Elder - Старейшина

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    как вариант смотри каопонент - тулбар
     
  10. cremator (c)

    cremator (c) Elder - Старейшина

    Joined:
    20 Jun 2008
    Messages:
    258
    Likes Received:
    72
    Reputations:
    0
    Причем тут тулбар вообще???..Пц. Мне не кнопки надо рисовать, а картинки, чтобы они двигались
     
  11. slesh

    slesh Elder - Старейшина

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    тулбар тут притом, что эти твои картинки можно как раз размещать на его кнопках, и предварительно настроить стиль оботражения кнопок чтобы были плоские.

    Вообще как я понял тебе нужна система типа как в делфи вкладка компонентов сделана. Там есть и рисунки(тока маленькие) и полосы прокрутки если не вмещается.

    РУчная реализация этого - много заморочек будет с перемещением
     
  12. noveek

    noveek New Member

    Joined:
    29 Dec 2008
    Messages:
    45
    Likes Received:
    4
    Reputations:
    1
    IdUDPClient

    Привет всем возник вопрос как отправлять пакет через idUDPClient1 с разных портов тоесть каждый пакет с другого порта например 3000 3001 3002 3003 и тд до бесконечности
     
  13. noveek

    noveek New Member

    Joined:
    29 Dec 2008
    Messages:
    45
    Likes Received:
    4
    Reputations:
    1
    Наверняка только тебе не скажут мне где то из 100% сообщений отвечаются 40% ты непереживай может это сообщение входит в 40%
     
  14. A2GIL

    A2GIL Elder - Старейшина

    Joined:
    31 Aug 2007
    Messages:
    84
    Likes Received:
    59
    Reputations:
    -3
    Конечно :) Способ называется "минимум кода". Здесь прямопропорциональная зависимость: чем меньше кода, тем меньше ошибок. Ну ты понимаешь о чем я :)


    А что не пробовал разве после каждого предыдущего отосланного пакета менять свойство Port для idUDPClient? И отсылать тот же пакет вновь?
     
  15. noveek

    noveek New Member

    Joined:
    29 Dec 2008
    Messages:
    45
    Likes Received:
    4
    Reputations:
    1
    этот порт на который отправлять! ; а мне надо с которого !!!!
     
  16. crystalbit

    crystalbit Elder - Старейшина

    Joined:
    6 Jun 2008
    Messages:
    212
    Likes Received:
    88
    Reputations:
    8
    Nightmare,
    Code:
    try
      Код, где может произойти ошибка
    except
      Мы окажемся тут, если она произойдет, нам надо её обработать, можно ничего не писать, тогда и вывода ошибок не будет
    end;
    
     
  17. Uname-A

    Uname-A Elder - Старейшина

    Joined:
    19 Aug 2008
    Messages:
    73
    Likes Received:
    12
    Reputations:
    5
    У меня такой вопрос:
    На форме: Tbutton; Tmemo
    Нужно чтобы про нажатии на Тбутон выполнялись команды введённые в Тмемо
    Например если в Тмемо введён следующий текст:
    @echo off
    echo 123
    echo 321
    pause
    При нажатии на Тбутон появлялась командная строка с
    123
    321
    Нажмите клавижу для продолжения...
    Тобиш результат работы команд...
    Заранее спасибо...
     
  18. crystalbit

    crystalbit Elder - Старейшина

    Joined:
    6 Jun 2008
    Messages:
    212
    Likes Received:
    88
    Reputations:
    8
    Uname-A,
    Code:
    Uses shellapi;
    ...
    Memo1.Lines.SaveToFile('tmp.bat');
    ShellExecute(0,'tmp.bat',nil,nil,SW_SHOWNORMAL);
    
     
  19. Uname-A

    Uname-A Elder - Старейшина

    Joined:
    19 Aug 2008
    Messages:
    73
    Likes Received:
    12
    Reputations:
    5
    ооо Как все просто!=)
    Тогда ещё один вопрос :

    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);
    Все заработало.... но всеравно спс
     
    #2619 Uname-A, 1 Feb 2009
    Last edited: 1 Feb 2009
  20. crystalbit

    crystalbit Elder - Старейшина

    Joined:
    6 Jun 2008
    Messages:
    212
    Likes Received:
    88
    Reputations:
    8
    Да, вертикальная палка, но это в бат файле
     
    2 people like this.
Thread Status:
Not open for further replies.