[ 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. ErrorNeo

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

    Joined:
    2 May 2009
    Messages:
    923
    Likes Received:
    838
    Reputations:
    402
    bons
    2 пункт пригодился - гуглю сабж.
    1 пункт - сохранил, почитаю.
    3 - либа вылетает только при условии, что снят лимит на half-open connects(или он заведомо большой). Так что претензий в мелокософту, видимо, тоже нет - они на это не расчитывали. Просто любопытный метод "отрубить" своей машине сеть

    теперь интерсно:
    1. реализация SYN\ACK запросов на дельфи - буду гуглить
    (интересуют модифицированные запросы, а не стандартные, которые предоставляет ф-ция connect)
    2. перспективы патчинга tcp.sys в целях перенаправления траффика (и прочих)
     
    #4661 ErrorNeo, 14 Nov 2009
    Last edited: 14 Nov 2009
  2. slesh

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

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    2 ErrorNeo собирашся ддос бота писать чтоли?
    0) то что ты описал - это банальный SYN флуд. Который когдато был очень уж популярным. Но сейчас самая ленивая ОС с ним кое как справляется. Фряха вообще в ядре имеет защиту от syn флуда.
    1) SYN\ACK запросы - юзай сырые сокеты. Но там нельзя подделать адрес отправителя ). КОгдато сам такое на делфи писал )
    2) Также как вариант можно заюзать либу WinPCap чтобы из своих программ подделывать запросы.
    3) патчить tcp.sys - можно, но не нужно. Существует такая вешь как TDI и там ты можеш поставить фильтровать входящие и исходящие пакеты и также можеш их подправляться слегка ) и куда угодно можеш перенаправить тогда.
    4) Но самая беспаливная вешь это юзать хуки на уровне NDIS. Там ты сам бог сетевой.

    Также можно зарегать новый NDIS протокол и через него работать.
    Можеш строить сам какие хочешь пакеты и отправлять куда хочешь с любыми подельными данными. Но увы это уже не юзермод.
     
    #4662 slesh, 14 Nov 2009
    Last edited: 14 Nov 2009
    2 people like this.
  3. ErrorNeo

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

    Joined:
    2 May 2009
    Messages:
    923
    Likes Received:
    838
    Reputations:
    402
    благодарю!
    про SYN флуд был не в курсе - столкнулся, когда целевой сервер перестал отвечать, в результате чего нагрузка на проц машины-клиента резко начала подниматься с 1-2% до 100%.
    Сейчас почитал немного про сабж, и узнал, что дефолтный суммартный таймаут на безответный SYN запрос (он же connect к недоступному серверу) составляет аж (3+6+12) целую 21 секунду...
    даже в 20 потоков такое(почему-то) на 100% грузит любую, даже самую мощную современную систему-клиента. (покр. грузило в моем конкретном случае)
    Теперь узнал, что это само по себе является методом атаки, да еще и устаревшим :)
    Но все равно пригодится:)

    Про перенаправление траффика - тру. Буду гуглить\пробовать эти методы немного позже.
    Оч. полезная инфа
     
    #4663 ErrorNeo, 14 Nov 2009
    Last edited: 14 Nov 2009
  4. denjf

    denjf Member

    Joined:
    12 Nov 2008
    Messages:
    88
    Likes Received:
    12
    Reputations:
    -1
    Подскажите пожалуйста. А то голову уже сломал))
    как из значения Reg_binary
    Вот пример 0b 90 a9 84 e9 fb dc 64 03 fd 50 ff 24 c5 4b b7 получить ТЕКС??

    К сведенью это пароль сохранненый Mail.ru Агентом.
     
    #4664 denjf, 14 Nov 2009
    Last edited: 14 Nov 2009
  5. transserg

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

    Joined:
    2 Jul 2008
    Messages:
    147
    Likes Received:
    25
    Reputations:
    2
    привет всем, возник вопрос почему строка которая записанная в бинарный файл при чтении ее оттуда это куча мусора?
    вот код
    Code:
    type
      MyFormat=record
        Len:WORD;
        Str:Array of byte;
      end;  
    
    Procedure SaveF(S:String);
      var
        MyFile:THandle;
        re:longword;
        Sav:MyFormat;
      begin
        MyFile:=CreateFile('log.bin', $40000000, 2, nil, 2, 128, 0);
        sav.Len:=Length(s);
        SetLength(sav.Str,sav.Len);
        CopyMemory(@sav.Str[0], @s[1], sav.Len);
        WriteFile(MyFile, sav,sav.len+2, Re, nil);
        CloseHandle(MyFile);
      end;
    
    Function ReadF:string;
      var
        MyFile:THandle;
        re:longword;
        Sav:MyFormat;
      begin
        MyFile:=CreateFile('log.bin', GENERIC_READ ,FILE_SHARE_READ, nil, OPEN_EXISTING,0, 0);
        ReadFile(MyFile, sav,2, Re, nil);
        SetLength(sav.Str,sav.len);
        ReadFile(MyFile, sav.Str[0], sav.len, re, nil);
        CloseHandle(MyFile);
        SetString(Result, PChar(@sav.Str[0]),sav.len);
      end;
    
     
  6. Si{R}ius

    Si{R}ius Member

    Joined:
    13 Nov 2008
    Messages:
    95
    Likes Received:
    36
    Reputations:
    0
    Как в Делфи определить - параллельны ли отрезки?
    Имеются точки начала и конца их.
     
  7. KostyanUA

    KostyanUA New Member

    Joined:
    26 Sep 2009
    Messages:
    4
    Likes Received:
    0
    Reputations:
    0
    Подскажыте с чего начать учить Delphi ?
     
  8. Thenno

    Thenno Member

    Joined:
    3 Jul 2009
    Messages:
    77
    Likes Received:
    21
    Reputations:
    0
    Code:
    program paralel;
    var x11,x12,y11,y12,x21,x22,y21,y22:integer;
        a1,b1,a2,b2:integer;
    begin
      readln (x11,y11,x12,y12,x21,y21,x22,y22);
      a1:=y11-y12;
      a2:=y21-y22;
      b1:=x12-x11;
      b2:=x22-x21;
      if (A1*B2)=(A2*B1) then
        writeln ('yes')
      else
        writeln ('no');
    end.
    http://www.informatik.kz/programm-pas.htm - тут посмотри по этой теме.

    С изучения нормального человеческого языка, русского или украинского (сужу по части UA в нике). А вообще, тема уже 200 раз поднималась, юзай поиск.
     
    1 person likes this.
  9. KostyanUA

    KostyanUA New Member

    Joined:
    26 Sep 2009
    Messages:
    4
    Likes Received:
    0
    Reputations:
    0
    хех, українську я добре знаю, а вот с русским реально проблемы.
     
  10. Katan

    Katan New Member

    Joined:
    15 Nov 2009
    Messages:
    7
    Likes Received:
    0
    Reputations:
    0
    Здравствуйте, хотелось бы написать бота для браузерной игры...предполагаю это сделать на Delphi - так как его знаю больше чем C++ (не знаю возможно ли в нём).
    Опишу суть дела.
    Играю в Бомжи-Онлайн (_bomjionline_._com), браузерная игра сделана на Flash.
    Суть игры это бить монстров и зарабатывать опыт и копейки за которые увеличивать статы... Система боя сделана как показано на скрине:
    [​IMG]
    Что нужно сделать:
    Чтобы бот отлавливал данные переходящие от сервера к браузеру и отправлял данные от браузера к серверу. Например в боте выставляем чтобы он бил все время в 100% определенным ударом и т.д.

    Вот и наступил сам вопрос: Возможно ли это сделать всё на Delphi и в какую сторону мне нужно копать информацию. Если можно дайте книги, статьи и тд. Связанные с этим вопросом. Также если есть у кого наподобие написанные боты то если можно поделитесь исходниками для изучения.

    PS Видел в интернете разработку для Бомжи-Онлайн, но её приостановили.

    [​IMG]
     
  11. mr. ZetRikS

    mr. ZetRikS New Member

    Joined:
    17 Jul 2009
    Messages:
    45
    Likes Received:
    2
    Reputations:
    0
    Это не бот, это снифер с возможностью правки отправляемых на сервер данных...
    Для WOW BC была такя прога, называлась она WPE поищи в инете, возможно она тебе поможет и писать ничего не придётся...
    Для разных игр есть разные, для линейки тож есть какой то...
    но это НЕ бот...
    Если надумаешь сам кодить ищи снифер на Delphi... в сети есть как минимум 3 исходника рабочие которые можешь изучить и уже начинать делать что то своё...
     
  12. Katan

    Katan New Member

    Joined:
    15 Nov 2009
    Messages:
    7
    Likes Received:
    0
    Reputations:
    0
    Как я понял для линейки это _http://saur.x33.ru/, для wow это _http://wpepro.net/ ... а для браузера нужен определенный или какой то из них подойдет?

    Тогда возникает вопрос, может легче будет сделать по проверке цвета определенного места экрана. И возможно ли на Delphi осуществить проверку цвета по экрану и нажатие при удачном цвете (не удачном) левой кнопки мышки.
    Например: если удар не серого цвета, то нажать.
     
  13. ZET36

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

    Joined:
    8 Oct 2007
    Messages:
    250
    Likes Received:
    49
    Reputations:
    0
    Тут такой вопрос. Есть программа-клиент, отправляющая запросы на серв. Нужно с помощью сторонней программы отправить из программы-клиента свой пакет и получить ответ сервера. Покажите пример пожайлусто.
     
  14. bons

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

    Joined:
    20 Dec 2007
    Messages:
    286
    Likes Received:
    121
    Reputations:
    21
    почитай в википедии про Векторное произведение
    с помощью сниффера изучи содержимое запроса и попытайся подделать его
     
    #4674 bons, 16 Nov 2009
    Last edited: 16 Nov 2009
    1 person likes this.
  15. BrainDeaD

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

    Joined:
    9 Jun 2005
    Messages:
    774
    Likes Received:
    292
    Reputations:
    214
    charles пойдёт?
     
  16. tracerini

    tracerini New Member

    Joined:
    14 Nov 2009
    Messages:
    3
    Likes Received:
    1
    Reputations:
    0
    только не качай последнюю версию, там защита от редактирования пакетов
     
    1 person likes this.
  17. ZET36

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

    Joined:
    8 Oct 2007
    Messages:
    250
    Likes Received:
    49
    Reputations:
    0
    Спасибо, но я хотел отправить запрос именно из программы-клиента (допустим qip) с помощью своей программы. Нужно как то перехватить хэндл сокета этой программы. Думаю нужно смотреть в сторону хуков (перехват api функций).
     
  18. slesh

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

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

    Затем запросить список всех дискрипторов которые открыты в проге(или том процессе, если через открытие делаеш). Далее перебрать их всех и определить к чему он относится и если это дискриптор связанный с сетью, то прям его и юзай для функции send (если из другова процесса делаеш, то просто копируй его к себе)
     
    1 person likes this.
  19. ZET36

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

    Joined:
    8 Oct 2007
    Messages:
    250
    Likes Received:
    49
    Reputations:
    0
    slesh, можно пример или литературу которую стоит почитать для этого?
     
  20. =Zeus=

    =Zeus= Member

    Joined:
    10 Aug 2009
    Messages:
    213
    Likes Received:
    54
    Reputations:
    5
    У слеша в подписи его сайт, там есть статья про длл.
     
Thread Status:
Not open for further replies.