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

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

    Joined:
    1 Aug 2007
    Messages:
    178
    Likes Received:
    113
    Reputations:
    0
    Пытаюсь увеличить размер бинарника дописать в конец файла нули...
    Написал процедуру, но никак, вылетает ошибка...
    Скажите что не так?
    Увеличиваю стороннюю прогу из своей...

    procedure addsize;
    var
    f:TfileStream;
    i,i1:integer;
    bin:char;
    begin
    f:=TFileStream.Create('file.exe', fmOpenRead);
    f.Seek(0, soFromEnd);
    i1:=Strtoint(Form1.Edit2.Text)*1000;//тут указывается на сколько увеличить...
    bin:=#00;
    f.WriteBuffer(bin,i1);
    f.Free;
    end;
     
  2. =Zeus=

    =Zeus= Member

    Joined:
    10 Aug 2009
    Messages:
    213
    Likes Received:
    54
    Reputations:
    5
    Попробуй так

    Code:
    procedure TForm1.Button1Click(Sender: TObject);
    var
     d: byte;
     f, k: TfileStream;
     i:integer;
    begin
      f:=TFileStream.Create('E:\1.exe', fmOpenRead); // тут твой путь, файл 1.ехе должен существовать
    k:=TFileStream.Create('E:\2.exe',fmCreate);
    
    for i:=0 to f.Size-1 do        
        begin
        f.Read(d,1);
        k.Write(d,1);
        end;
    d:=0; 
    for i:=0 to 10000 do // или сколько там надо?
        k.Write(d,1);
    
      f.Free;
      k.free
    end;
    
     
    #4542 =Zeus=, 1 Nov 2009
    Last edited: 1 Nov 2009
    1 person likes this.
  3. Balvan

    Balvan Member

    Joined:
    11 Mar 2009
    Messages:
    66
    Likes Received:
    5
    Reputations:
    0
    Как можно перевести не типизированный файл в "строку"?
     
  4. ErrorNeo

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

    Joined:
    2 May 2009
    Messages:
    923
    Likes Received:
    838
    Reputations:
    402
    bons
    внутри одного сокета - потому каждый раз при соединении с сервером фаервол запрашивает на это разрешение, а добавлять в *доверенные* пользователь моё приложение, вероятно, не станет.
    Потому как по идее это приложение вообще не должно стучаться в сеть... не то что каждую минуту.
    Обхода нормальных фаеров, кроме стандартного, я пока еще не сделал.
    ps. никакого connection close в ответах нет.

    =Zeus=
    хз, потестю bind. У меня есть код с биндом, и он создает разные сокеты. Но быть может с помошью него можно работать и через один. По-разбираюсь.
    2 send подряд не катит ни при каком раскладе, в т.ч. и с sleep.
    Опять таки возможно, что для работы через 1 сокет требуется поддержка этой ф-ции не только программой, но и сервером.

    в общем теперь я хотя бы знаю, что никто толком не знает :) спс за ответы.
    накрайняк не буду париться и доизучу процесс инжектирования в др. процессы.
     
    #4544 ErrorNeo, 1 Nov 2009
    Last edited: 1 Nov 2009
  5. bons

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

    Joined:
    20 Dec 2007
    Messages:
    286
    Likes Received:
    121
    Reputations:
    21
    если пользователь не станет добавлять приложение в доверенные то оно вообще никому не достучится ни в первый раз ни во второй. А перед тем как задумываться об обходе фаера неплохо бы изучить хотя бы основы работы с сокетами и TCP соединениями.
    Также еще неплохо бы тебе решить, будет ли приложение поддерживать постоянное соединение или же устанавливать каждый раз новое.
    просто ты не совсем понимаешь вообще что ты хочешь написать и как оно будет работать. А обходить фаеры в юзермоде причем такими "способами" плохая идея
     
  6. ErrorNeo

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

    Joined:
    2 May 2009
    Messages:
    923
    Likes Received:
    838
    Reputations:
    402
    заблуждение.
    первый раз пользователь дает доступ приложению в сеть в 90% случаев. статистика с нескольких тысяч загрузок.


    странные слова.
    По-твоему я уже сравнительно-длительное время пишу на сокетах не зная, как ты выразился, основ работы с ними?

    у меня написано, что с установлением новых соединений код уже и так неплохо работает. Нужно именно постоянное соединение, для того, чтобы пусть и временно, но повысить пробив.
    Да и вообще так цивильнее.

    у меня уже давно сделан и продан за 2 сотни грина полностью рабочий код с пробивом 20% (встроен обход стандартного брандмауэра)
    По твоему я не знаю, что хочу написать?! :eek:

    у 95% пользоветелей ститема запущена под админом. Статистика с нескольких тысяч загрузок. Задача по обходу фаера в юзермоде передо мной не стоит.

    Ну и резюме.
    Не строй из себя ботана. Знаешь конкретное решение - плюс. Не знаешь - не строй из себя умного. Раздражает.
    Ничего личного.
     
    #4546 ErrorNeo, 1 Nov 2009
    Last edited: 1 Nov 2009
    2 people like this.
  7. yfet

    yfet Banned

    Joined:
    11 Jul 2009
    Messages:
    48
    Likes Received:
    19
    Reputations:
    5
    как рамдомно выбрать строку из листбокса?
     
  8. BrainDeaD

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

    Joined:
    9 Jun 2005
    Messages:
    774
    Likes Received:
    292
    Reputations:
    214
    в каком языке?
    общий алгоритм таков: генерируем рандомное число, затем выбираем елемент с этим номером.
     
  9. yfet

    yfet Banned

    Joined:
    11 Jul 2009
    Messages:
    48
    Likes Received:
    19
    Reputations:
    5
    судя по названию темы тяжко не догадатся на каком языке. код в студию) если б смог бы сам написать - не обращался бы
     
  10. =Zeus=

    =Zeus= Member

    Joined:
    10 Aug 2009
    Messages:
    213
    Likes Received:
    54
    Reputations:
    5
    Получай! :p

    Code:
    var i: integer;
    ...
    Randomize;
    i:=Random(ListBox1.Items.Count-1);
    ListBox1.ItemIndex:=i;
    
     
    1 person likes this.
  11. BrainDeaD

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

    Joined:
    9 Jun 2005
    Messages:
    774
    Likes Received:
    292
    Reputations:
    214
    протупил. посмотрел на название раздела, а не темы. ну вот зевсик и перевёл.
     
  12. 2kill

    2kill Elder - Старейшина

    Joined:
    4 May 2008
    Messages:
    27
    Likes Received:
    8
    Reputations:
    0
    задачка по паскалю...
    Дан двумерный массив размером n*m, заполненный случайным образом. Определить, есть ли в данном массиве строка, в которой имеется два числа кратных двум.

    никак не могу допереть как определить количество чисел кратных двум в строке! хелп!
     
  13. Zabuldon

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

    Joined:
    6 Apr 2008
    Messages:
    99
    Likes Received:
    6
    Reputations:
    0
    Ребят подскажите методы организации кеширования в TWebBrowser. Любой кроме прокси. Если можно сорсы в студию.
     
  14. StealthMaster

    StealthMaster Member

    Joined:
    3 Dec 2008
    Messages:
    52
    Likes Received:
    11
    Reputations:
    0
    Code:
    type
      TMatrix = array [1..n,1..m] of integer;
    
    
    function FindStr(Matrix: TMatrix): boolean;
    var
      counter, i, j: integer;
    begin
      for i := 1 to n do
        begin
          counter := 0;
    
          for j := 1 to m do
            if (Matrix[i,j] mod 2 = 0) then
              inc(counter);
    
          if (counter = 2) then
            begin
              Result := true;
              exit;
            end;
        end;
      Result := false;
    end;
    
     
    1 person likes this.
  15. 2kill

    2kill Elder - Старейшина

    Joined:
    4 May 2008
    Messages:
    27
    Likes Received:
    8
    Reputations:
    0
    StealthMaster, спасибо. оказалось очень просто! =)
     
  16. GhostOnline

    GhostOnline Active Member

    Joined:
    20 Dec 2008
    Messages:
    723
    Likes Received:
    110
    Reputations:
    22
    Скажите, я вижу это уже обсуждалось.
    Инди 10.5.7 и антикапча не работают?
    У меня выскакивает No Data To Read
     
  17. Пуховой

    Joined:
    25 Nov 2007
    Messages:
    46
    Likes Received:
    37
    Reputations:
    0
    GhostOnline, надо патчить IdMultipartFormData.pas

    Процедура TIdMultiPartFormDataStream.AddFile
    Заменяем FSize := FSize + LItem.FieldSize; на FSize := FSize + LItem.FieldSize + 2;

    Процедура TIdFormDataField.GetFieldSize
    Заменяем Result := Result + LEncoding.GetByteCount(TStrings(FieldObject).Text) + 2; на Result := Result + LEncoding.GetByteCount(TStrings(FieldObject).Text);
    Заменяем Result := Result + TStream(FieldObject).Size + 2; на Result := Result + TStream(FieldObject).Size;

    Перекомпилируем... И все работает.
     
    4 people like this.
  18. Mykola-bas

    Mykola-bas New Member

    Joined:
    24 Apr 2008
    Messages:
    0
    Likes Received:
    1
    Reputations:
    0
    знаю что ткпой вопрос но всеже:
    как вывести в делфи картинку с урл?
     
  19. ange007

    ange007 Member

    Joined:
    26 Aug 2009
    Messages:
    28
    Likes Received:
    21
    Reputations:
    0
    Code:
    var img : TMemoryStream;
        filename:string;
    begin
     filename:=ExtractFilePath(Application.ExeName)+'/image.jpg';
     img:=TMemoryStream.Create;
     idHttp.Get('адрес картинки',img);
    Image1.Picture.Graphic.LoadFromStream(img);
     {или  img.SaveToFile(filename);
     Image1.Picture.LoadFromFile(filename); }
     img.Free;
     
    #4559 ange007, 4 Nov 2009
    Last edited: 4 Nov 2009
    1 person likes this.
  20. Scripter

    Scripter Member

    Joined:
    3 Sep 2008
    Messages:
    141
    Likes Received:
    95
    Reputations:
    6
    нашел функцию, которая создает бат файл, в свою очередь который крутится по циклу то тех пор пока не удалит exe файл, а потом себя.

    Все работает отлично, но вот если в пути будут русские буквы, то всё... функциональность становится равна 0.
    Есть другие способы запускаемому exe файлу уничтожить себя же?
    Code:
    procedure Suicide;
    var
     F: Textfile;
    begin
     AssignFile(F,Changefileext(Paramstr(0),'.bat'));
     Rewrite(F);
     Writeln(F,':1');
     Writeln(F, Format('Erase "%s"',[Paramstr(0)]));
     Writeln(F, Format('If exist "%s" Goto 1',[Paramstr(0)]));
     Writeln(F, Format('Erase "%s"',[ChangeFileExt(Paramstr(0),'.bat')]));
     CloseFile(F);
     WinExec(PChar(ChangeFileExt(Paramstr(0),'.bat')),SW_HIDE);
     Halt;
    end;
     
Thread Status:
Not open for further replies.