Что нового

[Сеть, интернет] Автоматизация проверки файла на вирусы.

Ganibal95

GreenBytes
Сообщения
877
Репутация
240
Всем привет. :smile:
Есть некие ссайты для проверки фалов на вирусы...
Задача:
1. Загружать на сервер файл с компьютера
2. Дождатся сканирования, загрузки фала...
3. Автоматизировать вывод в GUI отчет о сканировании...
Все это нужно сделать скрыто от глаз.

Ссайты:
http://www.drweb.co.il/ru/online/
http://vms.drweb.com/online/
Мне нужна автоматизация с любых из этих ссайтов.
 

shakur

Осваивающий
Сообщения
76
Репутация
24
как присвоить значение инпуту type=file ?
Код:
<INPUT id=file_selection_input size=17 type=file name=file>
такой код
Код:
#include <IE.au3>
$oIE = _IECreate ("http://www.drweb.co.il/ru/online/")
$oForms = _IEFormGetCollection ($oIE,0)
$oQuery = _IEFormElementGetCollection ($oForms, 0) 
_IEFormElementSetValue ($oQuery, "c:\1.txt")

оброботчик выдает ощибку
Код:
IE.au3 V2.4-0 Error from function _IEFormElementSetValue, $_IEStatus_InvalidObjectType (Browser securuty prevents SetValue of TYPE=FILE)
 
Автор
Ganibal95

Ganibal95

GreenBytes
Сообщения
877
Репутация
240
Там есть сканер по ссылки, что если заливать на ФТП файл, и делать ссылку (Это я умею :smile: ).
После нужно как-нибудь туда впечатать ссылку и нажать на кнопку Проверить...
Ну дальше все как в шапке писал...
 
Автор
Ganibal95

Ganibal95

GreenBytes
Сообщения
877
Репутация
240
я упростил страницу:
Код:
<script language="JavaScript">
function resultURL() 
{
var left = (screen.width - 640)/2
var top =  (screen.height - 400)/2
window.open("", "scan", "width=640"+",height=400,left="+left+",top="+top+",scrollbars=no,resizable=yes")
document.getElementById("drwebscanformURL" ).target = "scan";
return true;
} 
</script>

<form id="drwebscanformURL" action="http://online.us.drweb.com/result/" method="post">
<input type="text" name="url" value="http://ganiballlan.narod2.ru/a23.gif (Ссылка)" size="80" dir="ltr" />
<input type="image" onclick="return resultURL();" value="" src="http://ganiballlan.narod2.ru/a23.gif" />
</form>

Как можно нажать на кнопкку?
 

darkduke

Новичок
Сообщения
1
Репутация
0
А как насчёт такого варианта - http://www.virustotal.com/advanced.html ?
Можно или через отправку-приём email'a или же HTTP запроса и JSON ответа. Я бы сделал через мэйл
 
Автор
Ganibal95

Ganibal95

GreenBytes
Сообщения
877
Репутация
240
Код:
$Created = ObjCreate("Shell.Explorer.2")
GUICtrlCreateObj($Created, -50, -50, 40, 40)
$Created .navigate("Сылка")


Допустим я созда com объект 'Shell.Explorer.2', и перешол по нужной ссылке...
Код страници будет тот код что приведен выше...

Как кликнуть по: "drwebscanformURL" ?
 

axlwor

Скриптер
Сообщения
657
Репутация
147
Код:
$oForm = _IEGetObjById($Created, 'drwebscanformURL')
_IEFormSubmit($oForm)
 
Автор
Ganibal95

Ganibal95

GreenBytes
Сообщения
877
Репутация
240
axlwor
Большое спс :smile:


Добавлено:
Сообщение автоматически объединено:

Код:
#include <IE.au3>
$URL_INI = @DesktopDir&'\Текстовый документ (2) 2.html'
Dim $Created[5]
$Created[0] = ObjCreate("Shell.Explorer.2")
$Created[1] = GUICreate('', 500, 200, -1, -1)
$Created[2] = GUICtrlCreateObj($Created[0], 0, 0, 500, 200)
$Created[0] .navigate($URL_INI)
GUISetState()
$oForm = _IEGetObjById($Created[0], 'drwebscanformURL')
_IEFormSubmit($oForm)


Все работает, как извлечь информацию в переменную?

Вот код файла Текстовый документ (2) 2.html
Код:
<script language="JavaScript">

function resultURL() 
{
document.getElementById("drwebscanformURL" ).target;
return true;
} 
</script>

<form id="drwebscanformURL" action="http://online.us.drweb.com/result/" method="post">
<input type="text" name="url" value="http://ganiballlan.narod2.ru/a23.gif" size="80" dir="ltr" />
<input type="image" onclick="return resultURL();" value="" src="" />
</form>


Добавлено:
Сообщение автоматически объединено:

Или вывести в переменную ссылку на которой странице я нахожусь


Добавлено:
Сообщение автоматически объединено:

Всем спс за участие, тема решена. :smile:
Код:
#include <IE.au3>
$URL_INI = @DesktopDir&'\Текстовый документ (2) 2.html'
Dim $Created[5]
$Created[0] = ObjCreate("Shell.Explorer.2")
$Created[1] = GUICreate('', 500, 200, -1, -1)
$Created[2] = GUICtrlCreateObj($Created[0], 0, 0, 500, 200)
$Created[0] .navigate($URL_INI)
GUISetState()
$oForm = _IEGetObjById($Created[0], 'drwebscanformURL')
_IEFormSubmit($oForm,0)
_IELoadWait($Created[0])

MsgBox(0,'',_IEBodyReadHTML($Created[0]))
 
Автор
Ganibal95

Ganibal95

GreenBytes
Сообщения
877
Репутация
240
Здравствуйте, мне нужно автоматизировать заливание файла на VirusTotal.
Вот я набросал, текстовые фалы он отправляет и ответ возвращается, а вот именно exe не хочет...
Помогите разобраться.
Код:
_VirusTotalUploadFile(@DesktopDir & '\rrrr.exe')

Func _VirusTotalUploadFile($File)
Local $sParametrs = '-----------------------------47972514120'&@CRLF
$sParametrs &= 'Content-Disposition: form-data; name="archivo"; filename="'&StringRight($File,StringLen($File)-StringInStr($File,'\',0,-1))&'"'&@CRLF
$sParametrs &= 'Content-Type: application/x-msdownload'&@CRLF
$sParametrs &= @CRLF
$sParametrs &= FileRead($File)&@CRLF
$sParametrs &= '-----------------------------47972514120'&@CRLF
$sParametrs &= 'Content-Disposition: form-data; name="distribuir"'&@CRLF
$sParametrs &= @CRLF
$sParametrs &= '1'&@CRLF
$sParametrs &= '-----------------------------47972514120--'&@CRLF

Local $sRequest = 'POST /vt/en/recepcionf HTTP/1.1'&@CRLF
$sRequest &= 'Content-Type: multipart/form-data; boundary=---------------------------47972514120'&@CRLF
$sRequest &= 'User-Agent: Загрузчик VirusTotal 2.0'&@CRLF
$sRequest &= 'Host: www.virustotal.com'&@CRLF
$sRequest &= 'Content-Length: '&StringLen($sParametrs)&@CRLF
$sRequest &= 'Cache-Control: no-cache'&@CRLF
$sRequest &= @CRLF
$sRequest &= $sParametrs

if TCPStartup() == 0 Then Return -1 ; Невозможно инитилизировать подключение.
Local $sIP = TCPNameToIP('virustotal.com')
ConsoleWrite($sIP&@CR)
Local $iSocket = TCPConnect($sIP, 80)
TCPSend($iSocket, $sRequest)
Local $sData = '', $iTimer = TimerInit() ;запускаем таймер
Do
    $sBuffer = TCPRecv($iSocket, (1024*2)) ;получаем часть сообщения сервера
    $iError = @error
    If Not $sBuffer = '' Then ;если удалось получить сообщение
        $sData &= $sBuffer ;сохраняем полученное сообщение
        $iTimer = TimerInit() ;обнуляем таймер
    EndIf
Until $iError <> 0 Or TimerDiff($iTimer) > 2000
ConsoleWrite($sData)
EndFunc



Добавлено:
Сообщение автоматически объединено:

Все, разобрался :smile:
 

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
[?]
Все, разобрался
Ganibal95, в чем? как решил? мне интересно, другим тоже
выдержка из правил форума
9. Вы должны понимать, что вы находитесь на форуме, а не в чате. Здесь Ваши сообщения хранятся длительное время. Поэтому создавайте сообщения, которые будут интересны и полезны не только для Вас лично, но и для всех пользователей форума, а так же не отпугивали других посетителей.
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
Ganibal95
он прав. если решение проблемы не присутствует в теме, то было бы признаком хорошего тона привести его. но это на твое усмотрение.
 
Верх