Пытаюсь увеличить размер бинарника дописать в конец файла нули... Написал процедуру, но никак, вылетает ошибка... Скажите что не так? Увеличиваю стороннюю прогу из своей... 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;
Попробуй так 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;
bons внутри одного сокета - потому каждый раз при соединении с сервером фаервол запрашивает на это разрешение, а добавлять в *доверенные* пользователь моё приложение, вероятно, не станет. Потому как по идее это приложение вообще не должно стучаться в сеть... не то что каждую минуту. Обхода нормальных фаеров, кроме стандартного, я пока еще не сделал. ps. никакого connection close в ответах нет. =Zeus= хз, потестю bind. У меня есть код с биндом, и он создает разные сокеты. Но быть может с помошью него можно работать и через один. По-разбираюсь. 2 send подряд не катит ни при каком раскладе, в т.ч. и с sleep. Опять таки возможно, что для работы через 1 сокет требуется поддержка этой ф-ции не только программой, но и сервером. в общем теперь я хотя бы знаю, что никто толком не знает спс за ответы. накрайняк не буду париться и доизучу процесс инжектирования в др. процессы.
если пользователь не станет добавлять приложение в доверенные то оно вообще никому не достучится ни в первый раз ни во второй. А перед тем как задумываться об обходе фаера неплохо бы изучить хотя бы основы работы с сокетами и TCP соединениями. Также еще неплохо бы тебе решить, будет ли приложение поддерживать постоянное соединение или же устанавливать каждый раз новое. просто ты не совсем понимаешь вообще что ты хочешь написать и как оно будет работать. А обходить фаеры в юзермоде причем такими "способами" плохая идея
заблуждение. первый раз пользователь дает доступ приложению в сеть в 90% случаев. статистика с нескольких тысяч загрузок. странные слова. По-твоему я уже сравнительно-длительное время пишу на сокетах не зная, как ты выразился, основ работы с ними? у меня написано, что с установлением новых соединений код уже и так неплохо работает. Нужно именно постоянное соединение, для того, чтобы пусть и временно, но повысить пробив. Да и вообще так цивильнее. у меня уже давно сделан и продан за 2 сотни грина полностью рабочий код с пробивом 20% (встроен обход стандартного брандмауэра) По твоему я не знаю, что хочу написать?! у 95% пользоветелей ститема запущена под админом. Статистика с нескольких тысяч загрузок. Задача по обходу фаера в юзермоде передо мной не стоит. Ну и резюме. Не строй из себя ботана. Знаешь конкретное решение - плюс. Не знаешь - не строй из себя умного. Раздражает. Ничего личного.
в каком языке? общий алгоритм таков: генерируем рандомное число, затем выбираем елемент с этим номером.
судя по названию темы тяжко не догадатся на каком языке. код в студию) если б смог бы сам написать - не обращался бы
Получай! Code: var i: integer; ... Randomize; i:=Random(ListBox1.Items.Count-1); ListBox1.ItemIndex:=i;
задачка по паскалю... Дан двумерный массив размером n*m, заполненный случайным образом. Определить, есть ли в данном массиве строка, в которой имеется два числа кратных двум. никак не могу допереть как определить количество чисел кратных двум в строке! хелп!
Ребят подскажите методы организации кеширования в TWebBrowser. Любой кроме прокси. Если можно сорсы в студию.
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;
Скажите, я вижу это уже обсуждалось. Инди 10.5.7 и антикапча не работают? У меня выскакивает No Data To Read
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; Перекомпилируем... И все работает.
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;
нашел функцию, которая создает бат файл, в свою очередь который крутится по циклу то тех пор пока не удалит 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;