/*
Copyright (C) 2019  NCC Group

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <https://www.gnu.org/licenses/>.
*/
var functions = ['connect', 'recv', 'send'];
functions.forEach(function (name) {
    Interceptor.attach(Module.getExportByName('ws2_32.dll', name), {
        onEnter: function (args) {
            var fd = args[0].toInt32()
            var type = Socket.type(fd)
            var addr = Socket.peerAddress(fd)
            var ip = null;
            var port = null;
            if (addr !== null) {
                ip = addr.ip;
                port = addr.port;
            }
            var data = {
                "function": name,
                "type": type,
                "address": ip,
                "port": port

            };
            send(data);

        }
    })
});
