Jump to content
Sign in to follow this  
servabat

HTTPS post

Recommended Posts

servabat

Hi,

I've written a simple function to send a File hash to virus total with HTTP.au3 UDF but it doesn't work. This is the function:

#Include <HTTP.au3>
Func VThash ($hash, $apikey = '[MY API KEY (can't display)]')
    $host = 'www.virustotal.com'
    $page = '/api/scan_file.json'
    $apikeyencode = _HTTPEncodeString($apikey)
    $hashencode = _HTTPEncodeString($hash)
    $socket = _HTTPConnect(host)
    $data = 'resource: '&$hashencode&@CRLF&'key: '&$apikeyencode
    _HTTPPost($host, $page, $socket, $data)
    $info = _HTTPRead($socket, 3)
    _HTTPClose($socket)
    return $info
EndFunc

and this is a piece of code for testing:

#Include <VT.au3>
$info = VThash('7ae26902586cfbd5b246f5e45e14458b')
msgbox(0, "test", $info)

and this is the tcp stream :

POST /api/scan_file.json HTTP/1.1
Host: www.virustotal.com
User-Agent: AutoItScript/3.3.6.1
Connection: close
Content-Type: application/x-www-form-urlencoded
Content-Length: 113

resource: 7ae26902586cfbd5b246f5e45e14458b
key: [MY API KEY (can't display)]
HTTP/1.0 200 OK
Date: Thu, 14 Jul 2011 14:57:18 GMT
Server: Apache
Content-Length: 14
Content-Type: text/html
X-Cache: MISS from viruskill2.hispasec.com
Via: 1.1 viruskill2.hispasec.com:80 (squid/2.7.STABLE9)
Connection: close

{"result": -1}

I get 0 in the messagebox. I think it's because virustotal need HTTPS connexion, so I want to know how to do a https connection using HTTP.au3, and what else I have to do.

Thanks in advance,

Servabat

Share this post


Link to post
Share on other sites
monoscout999

Hi i try to wrote something for VirusTotal too... but i don`t nothing about winHTTP and is not easy learn it, but i have how retrieve the report from a hash.

Says thanks to Chefito he`s the one who write this.

#include "WinHttp.au3"

    Opt("MustDeclareVars", 1)

    ; Initialize and get session handle
    Global $hOpen = _WinHttpOpen()
    ; Get connection handle
    Global $hConnect = _WinHttpConnect($hOpen, "www.virustotal.com")

    ; Simple-request it...
    MsgBox(64, "Resultados del anĂ¡lisis", _WinHttpSimpleRequest($hConnect, "POST", "/api/get_file_report.json", Default, "resource=779f2f7623a90dac3197b11f802c87ff063efcaf4a67b234b0d25f0ffa66fe9c&key=5e667a8e7bdbf27c42038500ff995b0840f1e68966cacdafc49c402aaa077a50"))

    ; Close handles
    _WinHttpCloseHandle($hConnect)
    _WinHttpCloseHandle($hOpen)

And a version with object winhttp.winhttprequest.5.1:

$oHTTP = ObjCreate("winhttp.winhttprequest.5.1")
    $oHTTP.Open("POST","http://www.virustotal.com/api/get_file_report.json")
    $oHTTP.Send(StringToBinary("resource=779f2f7623a90dac3197b11f802c87ff063efcaf4a67b234b0d25f0ffa66fe9c&key=5e667a8e7bdbf27c42038500ff995b0840f1e68966cacdafc49c402aaa077a50"))
    $HTMLSource = $oHTTP.Responsetext
    MsgBox(0,"RESULTADO",$HTMLSource)
Edited by monoscout999

Share this post


Link to post
Share on other sites
servabat

Hi monoscout999, and thanks for your help (and thanks to Chefito),

I've finaly done it with HTTP.au3 and I'm now try to send a file (not hash) to virus total, so if you know how to, tell me please.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.