ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
 |
|

28.01.2009, 10:41
|
|
Познавший АНТИЧАТ
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме: 3288241
Репутация:
3349
|
|
То, что ты делаешь - это не файл отправляет, а имя файла.
Для того чтобы отправить файл тебе нужно сделать примерно так:
progressbar1.max = размер файла
затем файл блоками читаешь и отправляешь. И в прогрессбар ставишь сколько уже отправил данных
|
|
|

29.01.2009, 07:31
|
|
Познавший АНТИЧАТ
Регистрация: 29.04.2007
Сообщений: 1,189
Провел на форуме: 5749763
Репутация:
1680
|
|
Есть php скрипт:
Код:
<?php
$uploaddir = '/uploads/';
$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);
print "<pre>";
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
print "File is valid, and was successfully uploaded. ";
print "Here's some more debugging info:\n";
print_r($_FILES);
} else {
print "Possible file upload attack! Here's some debugging info:\n";
print "Possible file upload attack! Дополнительная отладочная информация:\n";
print_r($_FILES);
}
print "</pre>";
?>
Он принимает файл POST параметром "userfile" и загружает на сервак.
Собственно вопрос, как в делфи реализовать передачу файла этому скрипту???
Пробовал через IdHttp, не катит. Тут явно что то ещё надо юзать...
|
|
|

29.01.2009, 11:27
|
|
Познавший АНТИЧАТ
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме: 3288241
Репутация:
3349
|
|
Тебе нужно самому постоить HTTP запрос. Вид запроса для отсылки файла примерно такой:
Код:
POST /test.php? HTTP/1.1
Host: site.ru
Content-Length: 185
Content-Type: multipart/form-data; boundary=----------HRMPqBFF7FBJH4xJX2p87i
------------HRMPqBFF7FBJH4xJX2p87i
Content-Disposition: form-data; name="userfile"; filename="myfilename.txt"
Content-Type: text/plain
TEST TEST
------------HRMPqBFF7FBJH4xJX2p87i--
----------HRMPqBFF7FBJH4xJX2p87i - это уникальный разделитель который невстречается в передаваемых данных. ты модешь генерить его сам.
каждая строчка заканчивается на #13#10
В дельфе этот запрос будет строиться примерно так:
1) генери boundary типа ------------HRMPqBFF7FBJH4xJX2p87i
2) data:=boundary+#13#10+'Content-Disposition: form-data; name="userfile"; filename="'+filename+'"'+#13#10+'Content-Type: text/plain'+#13#10#13#10+filedata+#13#10#13#10+boundary +'--'+#13#10;
3) pack:='POST /'+script+' HTTP/1.1'#13#10+Host: '+host+#13#10+'Content-Length: '+inttostr(length(data))+#13#10+'Content-Type: multipart/form-data; boundary='+boundary+#13#10#13#10+data;
4) СОединяйся с сервером каких угодно способом и шли ему pack
Последний раз редактировалось slesh; 29.01.2009 в 11:31..
|
|
|

29.01.2009, 14:27
|
|
Познавший АНТИЧАТ
Регистрация: 29.04.2007
Сообщений: 1,189
Провел на форуме: 5749763
Репутация:
1680
|
|
Пасиб, про формирование заголовков и POST запроса на сокэтах и т.д... Ну это понятно.
Хотелось бы через специальный компонент упростить всё это дело, должен же быть какой то компонент отвечающий за пердачу файлов.
|
|
|

29.01.2009, 14:48
|
|
Познавший АНТИЧАТ
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме: 3288241
Репутация:
3349
|
|
Тогда копай тут:
в IdHttp есть модуль IdMultipartFormData
А нем есть класс TIdMultiPartFormDataStream;
в этом классе есть процедура AddFile которая добавляет файл
Через idHTTP1.Post можно послать как раз данные из TIdMultiPartFormDataStream
Надеюсь понял какая последовательность всего
Если быть точным то это выглядит примерно так:
Код:
uses IdMultipartFormData;
procedure TForm1.Button1Click(Sender: TObject);
var
d:TIdMultiPartFormDataStream;
begin
d:=TIdMultiPartFormDataStream.Create;
d.AddFile('userfile','c:\test.txt','text/plain');
idHTTP1.Post('/index.php?',d);
end;
Последний раз редактировалось slesh; 29.01.2009 в 14:55..
|
|
|

29.01.2009, 14:58
|
|
Познавший АНТИЧАТ
Регистрация: 29.04.2007
Сообщений: 1,189
Провел на форуме: 5749763
Репутация:
1680
|
|
Большое спасибо, понял. Попробуем.
|
|
|

29.01.2009, 15:28
|
|
Участник форума
Регистрация: 15.11.2006
Сообщений: 259
Провел на форуме: 2589211
Репутация:
151
|
|
Регистрирую хоткеи.
alt - MOD_ALT, ctrl - MOD_CONTROL...
а tab у нас как "называется"? 
|
|
|

29.01.2009, 15:32
|
|
Познавший АНТИЧАТ
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме: 3288241
Репутация:
3349
|
|
VK_TAB?
|
|
|

29.01.2009, 15:35
|
|
Участник форума
Регистрация: 15.11.2006
Сообщений: 259
Провел на форуме: 2589211
Репутация:
151
|
|
Вот, блин...туплю очень сильно.
Спасиб))
|
|
|

29.01.2009, 18:30
|
|
Познающий
Регистрация: 07.06.2008
Сообщений: 48
Провел на форуме: 247923
Репутация:
52
|
|
Привет всем. У меня вопрос, как можно с помощью Delphi сделать так, чтобы никакой процесс на заданный процесс не смог сделать WriteProcessMemory, ну или ей подобные функции?
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|