elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Los 10 CVE más críticos (peligrosos) de 2020


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  Anti Bat's en C#
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Anti Bat's en C#  (Leído 5,153 veces)
43H4FH44H45H4CH49H56H45H
Wiki

Desconectado Desconectado

Mensajes: 502



Ver Perfil
Anti Bat's en C#
« en: 31 Agosto 2008, 22:47 pm »

Anti Bat's Version BETA
SCANNER BAT



MONITOR BAT



Creado en Visual Studio 2008 Team System compatible con cualquier Visual Studio que soporte net framework 3 o superior (ej: express)
Lenguaje c#.net

Bueno aprovechando este domingo antes de irme a echarle las cervezas hice un simple programa para escanear bat's.

Funciones:
- Escanea todos los archivos .bat  de una carpeta solamente o incluyendo los subdirectorios, esto activando o no el checkbox de subdirectorios.
- Escaneo de archivos individuales *.bat
- Eliminación de archivos *.bat que contengan código malicioso de acuerdo al update.txt
- Capacidad de renombrar y mover *.bat a *.bat.txt los cuales son colocados en el escritorio en una carpeta para análisis
- Monitor bat, el cual se encarga de monitorear la creación de bat's en una carpeta o unidad del disco duro (incluye las subcarpetas), si encontrara alguno como sucede cuando se utiliza un joiner o similar, detendrá los procesos cmd para evitar que el *.bat pueda cumplir su función y luego  será copiado a la carpeta de análisis en el escritorio y el origen sera eliminado.
- Creación de log's en "c:\log.txt" para registrar los *.bat eliminados o movidos para análisis.
- Soporta el drag and drop se puede arrastrar al listbox el *.bat que queramos analizar.
- El listbox solo mostrara la ruta de los archivos que contengan código malicioso deacuedo a lo introducido en update.txt
- Capacidad de poder mantenerse actualizado respecto a la aparición de nuevas técnicas .bat mediante el añadido de líneas o combinaciones de comandos o variables maliciosas en el update.txt.

Como funciona?
- Al iniciarse carga del archivo update.txt (que debe estar en el mismo directorio que el ejecutable) todos los strings con los nombres de comandos maliciosos u otros similares que nosotros hayamos introducido en update.txt.
- Al iniciar el escaneo de un directorio solamente o incluyendo sus subdirectorios, lee el contenido de cada bat cargándolo en un string[] para luego comprobar si contiene alguno de los string's definidos en update.txt, si así fuera lo incluye en el listbox1 para ser analizado o eliminado.
- Puede escanear solamente un archivo el cual seguirá el mismo proceso mencionado antes, si queremos podemos arrastrar un archivo .bat a el listbox para analizarlo si no se trata de un .bat el rechazara su escaneo.
- Al ingresar al monitor bat nos preguntara que directorio o unidad deseamos monitorizar en caso de no seleccionar alguna no cargara el formulario del monitor bat.
- En el monitor bat se mostrara un listbox donde nos informara de intentos de creación de archivos bat los cuales serán neutralizados y posteriormente copiados para el  análisis (útil para joiner's como el quick batch compil...).

Dejo el código para su análisis, debo mencionar que no lo revise a fondo por lo cual si hay alguna variable o algo que no encaje favor postear para su corrección.

Este es el modo sencillo de crearlo puesto que se puede reconstruir un bat que tenga ofuscado el code para saber qué es exactamente los que hace dicho .bat.

El update.txt es solo un ejemplo, cada quien que lo use deberá actualizarlo con líneas de bat's o comandos que considere maliciosos.

Para el escaneo de directorios es mejor hacerlo en carpetas definidas y no en una unidad del disco duro, en caso del monitor batch es mejor hacerlo sobre una unidad como la C:\ para un correcto funcionamiento, aunque puede hacerse en un directorio especifico.

En caso de tratarse de un código ofuscado solo basta añadir al update.txt trozos o líneas enteras de variables, comandos, combinaciones o similares de .bat maliciosos para  actualizarlo.

No soy bueno para hacer manuales o códigos comentados, así que las dudas favor postear.  :laugh:

Favor respetar derechos de autor je je!!!!    :¬¬

Enlace de descarga del ejemplo más el update.txt

http://rapidshare.com/files/141631233/Antibat.rar.html

FORM1
Código
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Windows.Forms;
  9. using System.IO;
  10. using System.Diagnostics ;
  11.  
  12.  
  13. namespace WindowsFormsApplication4
  14. {
  15.    public partial class Form1 : Form
  16.    {      
  17.        string[] update;
  18.        string ranalizar = Environment.GetEnvironmentVariable ("USERPROFILE").ToString () + @"\Escritorio\Analizar";
  19.  
  20.        public Form1()
  21.        {
  22.            InitializeComponent();                        
  23.        }
  24.  
  25.        private void Form1_Load(object sender, EventArgs e)
  26.        {
  27.            if (File.Exists(@"update.txt")) update = File.ReadAllLines(@"update.txt");
  28.            else
  29.            {
  30.             MessageBox.Show("No se encuentra update.txt verifique", "Error definiciones de comandos", MessageBoxButtons.OK, MessageBoxIcon.Error);
  31.             Application.ExitThread();
  32.            }                          
  33.                this.toolStrip1.ImageList = this.imageList1;
  34.                this.toolStripButton1.ImageIndex = 0;
  35.                this.toolStripButton2.ImageIndex = 1;
  36.                this.toolStripButton3.ImageIndex = 2;
  37.                this.toolStripButton4.ImageIndex = 3;
  38.                this.toolStripButton5.ImageIndex = 4;          
  39.        }
  40.        // Boton Escanear Carpetas
  41.        private void toolStripButton1_Click(object sender, EventArgs e)
  42.        {
  43.            scan();
  44.        }
  45.        // Boton Escanear Archivo
  46.        private void toolStripButton2_Click(object sender, EventArgs e)
  47.        {            
  48.            listBox1.Items.Clear();
  49.            openFileDialog1.Filter = "Archivos Bat's(*.bat)|*.bat";
  50.            openFileDialog1.InitialDirectory = @"C:\";
  51.            openFileDialog1.Title = "Seleccione el archivo bat a escanear";
  52.            openFileDialog1.FileName = "*.bat";
  53.            if (openFileDialog1.ShowDialog() == DialogResult.OK)
  54.            {
  55.                string archivobat = openFileDialog1.FileName;
  56.                scanfile(archivobat);
  57.            }
  58.            else MessageBox.Show("Seleccione un archivo .BAT para escanear", "Error archivo no seleccionado", MessageBoxButtons.OK, MessageBoxIcon.Error );
  59.        }
  60.        // Boton Eliminar
  61.        private void toolStripButton3_Click(object sender, EventArgs e)
  62.        {
  63.            eliminar();
  64.        }
  65.        // Boton Mover
  66.        private void toolStripButton4_Click(object sender, EventArgs e)
  67.        {
  68.            mover();
  69.        }
  70.  
  71.        private void toolStripButton5_Click(object sender, EventArgs e)
  72.        {
  73.            try
  74.            {
  75.                Form2 yo = new Form2();
  76.                yo.ShowDialog();
  77.            }
  78.            catch (Exception er)
  79.            {
  80.                this.Text = er.Message.ToString();
  81.            }
  82.        }
  83.        private void Form1_MouseMove(object sender, MouseEventArgs e)
  84.        {
  85.            if (listBox1.Items.Count == 0)
  86.            {
  87.                toolStripButton3.Enabled = false;
  88.                toolStripButton4.Enabled = false;
  89.            }
  90.            else
  91.            {
  92.                toolStripButton3.Enabled = true;
  93.                toolStripButton4.Enabled = true;
  94.            }
  95.  
  96.        }        
  97.        private void listBox1_DragDrop(object sender, DragEventArgs e)
  98.        {
  99.            string[] dragfile = (string[])e.Data.GetData(DataFormats.FileDrop);
  100.  
  101.            foreach (string file in dragfile)
  102.            {
  103.                if (file.ToUpper ().Contains(".BAT"))
  104.                {
  105.                    listBox1.Items.Clear();
  106.                    scanfile(file);
  107.                    toolStripStatusLabel1.Text = "Ultimo archivo escaneado: " + file;
  108.                }
  109.                else MessageBox.Show("Archivo no compatible verifique que sea un .BAT", "Error Archivo no soportado", MessageBoxButtons.OK, MessageBoxIcon.Exclamation );
  110.            }
  111.        }
  112.  
  113.        private void listBox1_DragEnter(object sender, DragEventArgs e)
  114.        {
  115.            if (e.Data.GetDataPresent(DataFormats.FileDrop, false) == true)
  116.                e.Effect = DragDropEffects.All;
  117.        }
  118.  
  119.        private void scan()
  120.        {
  121.            listBox1.Items.Clear();
  122.            folderBrowserDialog1.ShowDialog();
  123.            if (folderBrowserDialog1.SelectedPath.ToString() != "")
  124.            {  
  125.                analizar(folderBrowserDialog1.SelectedPath);
  126.            }
  127.            else
  128.            {
  129.                MessageBox.Show("Carpeta no valida para el analisis", "Error al Abrir la Carpeta", MessageBoxButtons.OK, MessageBoxIcon.Error);
  130.            }
  131.        }
  132.        private void analizar(string ruta)
  133.        {
  134.            try
  135.            {
  136.                DirectoryInfo dInfo1 = new DirectoryInfo(ruta);
  137.                if (checkBox1.Checked == true)
  138.                {
  139.                    FileInfo[] bats = dInfo1.GetFiles("*.BAT", SearchOption.AllDirectories);
  140.                    foreach (FileInfo bat in bats)
  141.                    {
  142.                        toolStripStatusLabel1.Text = "Ultimo archivo escaneado: " + bat.FullName.ToString();
  143.                        File.SetAttributes(bat.FullName.ToString(), FileAttributes.Normal);
  144.                        string[] readbat = File.ReadAllLines(bat.FullName.ToString());
  145.                        foreach (string linebat in readbat)
  146.                        {
  147.                            int cont = 0;
  148.                            foreach (string def in update)
  149.                            {
  150.                                if (linebat.ToUpper().Contains(def.ToUpper ()))
  151.                                {
  152.                                    listBox1.Items.Add(bat.FullName.ToString());
  153.                                    cont = 1;
  154.                                    break;
  155.                                }
  156.                            }
  157.                            if (cont == 1) break;
  158.                        }
  159.                    }
  160.                }
  161.                else
  162.                {
  163.                    FileInfo[] bats = dInfo1.GetFiles("*.BAT", SearchOption.TopDirectoryOnly);
  164.                    foreach (FileInfo bat in bats)
  165.                    {
  166.                        toolStripStatusLabel1.Text = "Ultimo archivo escaneando: " + bat.FullName.ToString();
  167.                        File.SetAttributes(bat.FullName.ToString(), FileAttributes.Normal);
  168.                        string[] readbat = File.ReadAllLines(bat.FullName.ToString());
  169.                        foreach (string linebat in readbat)
  170.                        {
  171.                            int cont = 0;
  172.                            foreach (string def in update)
  173.                            {
  174.                                if (linebat.ToUpper().Contains(def.ToUpper ()))
  175.                                {
  176.                                    listBox1.Items.Add(bat.FullName.ToString());
  177.                                    cont = 1;
  178.                                    break;
  179.                                }
  180.                            }
  181.                            if (cont == 1) break;
  182.                        }
  183.                    }
  184.  
  185.                }
  186.  
  187.  
  188.  
  189.            }
  190.            catch (Exception err)
  191.            {
  192.                this.Text = err.Message.ToString();
  193.            }
  194.            toolStripButton4.Enabled = true;
  195.        }
  196.  
  197.        private void eliminar()
  198.        {
  199.            try
  200.            {
  201.                for (int i = 0; i < listBox1.Items.Count; i++)
  202.                    {
  203.                        if (File.Exists(listBox1.Items[i].ToString()))
  204.                        {
  205.                            FileStream stream = new FileStream(@"C:\log.txt", FileMode.Append, FileAccess.Write);
  206.                            StreamWriter writer = new StreamWriter(stream);
  207.                            File.Delete(listBox1.Items[i].ToString());
  208.                            listBox1.Items.Insert(i, listBox1.Items[i].ToString() + " Eliminado");
  209.                            listBox1.Items.Remove(listBox1.Items[i + 1]);
  210.                            writer.WriteLine(listBox1.Items[i].ToString() + "  en  " + DateTime.Now.ToString());
  211.                            writer.Close();
  212.                        }
  213.                }
  214.            }
  215.            catch (Exception err)
  216.            {
  217.                MessageBox.Show(err.Message.ToString(), "Verifique error", MessageBoxButtons.OK, MessageBoxIcon.Error);
  218.            }
  219.  
  220.  
  221.        }
  222.        private void mover()
  223.        {
  224.            try
  225.            {
  226.                if (!Directory.Exists(ranalizar))
  227.                {
  228.                    Directory.CreateDirectory(ranalizar);
  229.                }
  230.  
  231.  
  232.                for (int i = 0; i < listBox1.Items.Count; i++)
  233.                {
  234.                    if (File.Exists(listBox1.Items[i].ToString()))
  235.                    {
  236.  
  237.                        FileStream stream = new FileStream(@"C:\log.txt", FileMode.Append, FileAccess.Write);
  238.                        StreamWriter writer = new StreamWriter(stream);
  239.                        File.Move(listBox1.Items[i].ToString(), ranalizar + @"\" + listBox1.Items[i].ToString().Substring(listBox1.Items[i].ToString().LastIndexOf(@"\"), ((listBox1.Items[i].ToString().Length)) - (listBox1.Items[i].ToString().LastIndexOf(@"\")))+ ".txt");
  240.                        listBox1.Items.Insert(i, listBox1.Items[i].ToString() + " Movido al Escritorio carpeta Analizar");
  241.                        listBox1.Items.Remove(listBox1.Items[i + 1]);
  242.                        writer.WriteLine(listBox1.Items[i].ToString() + "  en  " + DateTime.Now.ToString());
  243.                        writer.Close();
  244.                    }
  245.                }
  246.            }
  247.            catch (Exception er)
  248.            {
  249.                MessageBox.Show(er.Message.ToString(), "Verifique eliminacion o existencia de archivos", MessageBoxButtons.OK, MessageBoxIcon.Error);
  250.            }
  251.        }
  252.  
  253.        private void scanfile(string file)
  254.        {            
  255.            toolStripStatusLabel1.Text = "Ultimo archivo escaneado: " + file;
  256.            File.SetAttributes(file, FileAttributes.Normal);
  257.            string[] readbat = File.ReadAllLines(file);
  258.            foreach (string linebat in readbat)
  259.            {
  260.                int cont = 0;
  261.                foreach (string def in update)
  262.                {
  263.                    if (linebat.ToUpper().Contains(def.ToUpper ()))
  264.                    {
  265.                        listBox1.Items.Add(file);
  266.                        cont = 1;
  267.                        break;
  268.                    }
  269.                }
  270.                if (cont == 1) break;
  271.            }
  272.        }      
  273.    }
  274. }
  275.  

FORM2

Código
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Windows.Forms;
  9. using System.IO;
  10. using System.Diagnostics;
  11. using System.Threading;
  12.  
  13. namespace WindowsFormsApplication4
  14. {
  15.    public partial class Form2 : Form
  16.    {
  17.        string ranalizar = Environment.GetEnvironmentVariable("USERPROFILE").ToString() + @"\Escritorio\Analizar";
  18.        public Form2()
  19.        {
  20.            InitializeComponent();
  21.        }
  22.        private void monitorbatch()
  23.        {
  24.            if (!Directory.Exists(ranalizar)) Directory.CreateDirectory(ranalizar);
  25.  
  26.            folderBrowserDialog1.ShowDialog();
  27.            if (folderBrowserDialog1.SelectedPath.ToString() == "")
  28.            {
  29.                MessageBox.Show("Carpeta o Unidad no valida para el analisis", "Error al Abrir la Carpeta o Unidad", MessageBoxButtons.OK, MessageBoxIcon.Error);
  30.                this.Close();
  31.  
  32.            }
  33.            fileSystemWatcher1.Path = folderBrowserDialog1.SelectedPath.ToString();
  34.            label1.Text = "MONITORIZANDO   " + folderBrowserDialog1.SelectedPath.ToString();
  35.            fileSystemWatcher1.Filter = "*.bat";
  36.            try
  37.            {
  38.                fileSystemWatcher1.EnableRaisingEvents = true;
  39.            }
  40.            catch (Exception er)
  41.            {
  42.                MessageBox.Show(er.Message.ToString(), "Error en el monitor bat", MessageBoxButtons.OK, MessageBoxIcon.Error);
  43.  
  44.            }
  45.  
  46.        }  
  47.        private void fileSystemWatcher1_Created(object sender, System.IO.FileSystemEventArgs e)
  48.        {
  49.            try
  50.            {
  51.                FileStream stream = new FileStream(@"C:\log.txt", FileMode.Append, FileAccess.Write);
  52.                StreamWriter writer = new StreamWriter(stream);                
  53.                listBox1.Items.Add(e.FullPath.ToString() + " *****INTENTA INTRODUCIRSE EN EL SISTEMA!!!");
  54.                writer.WriteLine(e.FullPath.ToString() + " *****INTENTA INTRODUCIRSE EN EL SISTEMA!!! en " + DateTime.Now.ToString());
  55.                writer.Close();
  56.  
  57.                if (e.Name.ToString().Contains(".bat"))
  58.                {
  59.                    matar_procesos("cmd");
  60.                    File.SetAttributes(e.FullPath.ToString(), FileAttributes.Normal);
  61.  
  62.                    if (File.Exists(ranalizar + e.FullPath.ToString().Substring(e.FullPath.ToString().LastIndexOf(@"\"), ((e.FullPath.ToString().Length)) - (e.FullPath.ToString().LastIndexOf(@"\"))) + ".txt"))
  63.                    {                        
  64.                        File.Delete(ranalizar + e.FullPath.ToString().Substring(e.FullPath.ToString().LastIndexOf(@"\"), ((e.FullPath.ToString().Length)) - (e.FullPath.ToString().LastIndexOf(@"\"))) + ".txt");
  65.                        File.Copy (e.FullPath.ToString(), ranalizar + e.FullPath.ToString().Substring(e.FullPath.ToString().LastIndexOf(@"\"), ((e.FullPath.ToString().Length)) - (e.FullPath.ToString().LastIndexOf(@"\"))) + ".txt");
  66.                        File.SetAttributes(ranalizar + @"/" + e.FullPath.ToString().Substring(e.FullPath.ToString().LastIndexOf(@"\"), ((e.FullPath.ToString().Length)) - (e.FullPath.ToString().LastIndexOf(@"\"))) + ".txt", FileAttributes.Normal);                        
  67.                    }
  68.                    else
  69.                    {                        
  70.                        File.Copy(e.FullPath.ToString(), ranalizar + @"/" + e.FullPath.ToString().Substring(e.FullPath.ToString().LastIndexOf(@"\"), ((e.FullPath.ToString().Length)) - (e.FullPath.ToString().LastIndexOf(@"\")))+ ".txt");
  71.                        File.SetAttributes(ranalizar + @"/" + e.FullPath.ToString().Substring(e.FullPath.ToString().LastIndexOf(@"\"), ((e.FullPath.ToString().Length)) - (e.FullPath.ToString().LastIndexOf(@"\"))) + ".txt", FileAttributes.Normal);
  72.                    }                
  73.                    listBox1.Items.Add(e.FullPath.ToString() + " *****FUE NEUTRALIZADO");
  74.                    FileStream stream1 = new FileStream(@"C:\log.txt", FileMode.Append, FileAccess.Write);
  75.                    StreamWriter writer1 = new StreamWriter(stream1);                                
  76.                    writer1.WriteLine(e.FullPath.ToString() + " *****FUE NEUTRALIZADO en " + DateTime.Now.ToString());
  77.                    writer1.Close();
  78.                    if(File.Exists (e.FullPath.ToString()))
  79.                    {
  80.                        File.Delete(e.FullPath.ToString());
  81.                    }
  82.                    matar_procesos("cmd");
  83.                    MessageBox.Show("El archivo responsable fue neutralizado y copiado a escritorio - analisis", "Bloqueado Ataque malicioso", MessageBoxButtons.OK, MessageBoxIcon.Stop);
  84.                }
  85.            }
  86.            catch (Exception er)
  87.            {
  88.                this.Text = er.Message.ToString();
  89.            }
  90.  
  91.        }
  92.        private void matar_procesos(string proceso)
  93.        {
  94.            try
  95.            {
  96.                List<Process> procesos = Process.GetProcesses().ToList();
  97.                for (int i = 0; i<4; i++)
  98.                {
  99.                    foreach (Process proc in procesos)
  100.                    {
  101.                        try
  102.                        {
  103.                            string nombproc = proc.ProcessName;
  104.                            if (nombproc == proceso)
  105.                            {
  106.                                proc.Kill();
  107.                            }
  108.                        }
  109.                        catch (Exception ex)
  110.                        {
  111.                            this.Text = ex.Message.ToString();
  112.                        }
  113.                    }
  114.                }
  115.            }
  116.            catch (Exception er)
  117.            {
  118.                this.Text = er.Message.ToString();
  119.            }
  120.        }
  121.  
  122.        private void Form2_Load(object sender, EventArgs e)
  123.        {
  124.            monitorbatch();
  125.        }
  126.  
  127.        private void Form2_FormClosed(object sender, FormClosedEventArgs e)
  128.        {
  129.            fileSystemWatcher1.EnableRaisingEvents = false;
  130.        }
  131.  
  132.  
  133.    }
  134. }
  135.  


« Última modificación: 4 Septiembre 2008, 11:56 am por ANELKAOS » En línea


-R IP
:0100
-A 100 
2826:0100 MOV AH,09
2826:0102 MOV DX,109
2826:0105 INT 21
2826:0105 MOV AH,08
2826:0105 INT 21
2826:0107 INT 20
2826:0109 DB 'MI NICK ES CODELIVE.$' 
2826:0127 
-R BX
:0000
-R CX
:20
-N CODELIVE.COM
-W
elmaro


Desconectado Desconectado

Mensajes: 301


Unas simples palabras...


Ver Perfil
Re: Anti Bat's en C# By 43H4FH44H45H4CH49H56H45H
« Respuesta #1 en: 1 Septiembre 2008, 17:48 pm »

La verdad me parece una aplicacion muy interesante.
Nunca se esta a salvo de los bats.

Saludos.


En línea

Meta


Desconectado Desconectado

Mensajes: 3.501



Ver Perfil WWW
Re: Anti Bat's en C# By 43H4FH44H45H4CH49H56H45H
« Respuesta #2 en: 1 Septiembre 2008, 19:17 pm »

La verdad es una aplicación interesante.
En línea

skapunky
Electronik Engineer &
Colaborador
***
Desconectado Desconectado

Mensajes: 3.667


www.killtrojan.net


Ver Perfil WWW
Re: Anti Bat's en C# By 43H4FH44H45H4CH49H56H45H
« Respuesta #3 en: 2 Septiembre 2008, 10:17 am »

Esta interesante, pero una recomendación:

La parte de arriba de los botones "escanear carpeta.." y esos esta muy bien, pero el fondo del programa ese oscuro con el listbox negro...personalmente no me gusta. Te quedaria wapo wapo si también fuera del color así blanco de la segunda imágen. Un saludo.
En línea

Killtrojan Syslog v1.44: ENTRAR
Eazy

Desconectado Desconectado

Mensajes: 229


Eazy [FM-Team]


Ver Perfil WWW
Re: Anti Bat's en C# By 43H4FH44H45H4CH49H56H45H
« Respuesta #4 en: 3 Septiembre 2008, 09:57 am »

Anti Bat's Version BETA by 3h43h3h24hh234h23h4h23h4h23579031h rh13bo4h1vb4ouv123uv123voug12v3u12v3ug12v3uo12v3uv12uv3v312ouv321v xD
En línea

[/url]
43H4FH44H45H4CH49H56H45H
Wiki

Desconectado Desconectado

Mensajes: 502



Ver Perfil
Re: Anti Bat's en C# By 43H4FH44H45H4CH49H56H45H
« Respuesta #5 en: 4 Septiembre 2008, 07:02 am »

Esta interesante, pero una recomendación:

La parte de arriba de los botones "escanear carpeta.." y esos esta muy bien, pero el fondo del programa ese oscuro con el listbox negro...personalmente no me gusta. Te quedaria wapo wapo si también fuera del color así blanco de la segunda imágen. Un saludo.

Cuando haga algunas mejoras en los algoritmos de comparación y busqueda de codigo malicioso probare el cambio de colores (debo mencionar que tengo tendencia a los colores como el negro, azul, etc por ello lo hice de ese modo  ;D).

Anti Bat's Version BETA by 3h43h3h24hh234h23h4h23h4h23579031h rh13bo4h1vb4ouv123uv123voug12v3u12v3ug12v3uo12v3uv12uv3v312ouv321v xD

Al parecer hay personas que todavia no conocen la tabla de conversion hexadecimal  :-\

Gracias a todos por los comentarios  ;D.
En línea


-R IP
:0100
-A 100 
2826:0100 MOV AH,09
2826:0102 MOV DX,109
2826:0105 INT 21
2826:0105 MOV AH,08
2826:0105 INT 21
2826:0107 INT 20
2826:0109 DB 'MI NICK ES CODELIVE.$' 
2826:0127 
-R BX
:0000
-R CX
:20
-N CODELIVE.COM
-W
Meta


Desconectado Desconectado

Mensajes: 3.501



Ver Perfil WWW
Re: Anti Bat's en C# By 43H4FH44H45H4CH49H56H45H
« Respuesta #6 en: 4 Septiembre 2008, 11:56 am »

Es que no hay que aprenderlas, sólo tenerlas a mano.

http://www.ascii.cl/es/
En línea

chrominum


Desconectado Desconectado

Mensajes: 567


Viceroy: No es lo que tengo, es COMO lo tengo


Ver Perfil WWW
Re: Anti Bat's en C#
« Respuesta #7 en: 6 Septiembre 2008, 22:21 pm »

O que caracteres como la Y o la R nunca estarán en una cadena Hexadecimal xD
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Las Gomas Anti vibración son eficazes?
Hardware
SuperDraco 3 8,299 Último mensaje 12 Abril 2011, 18:12 pm
por SuperDraco
Una aplicación anti atascos
Noticias
wolfbcn 0 1,656 Último mensaje 27 Julio 2011, 01:52 am
por wolfbcn
Anti jammer - anti inhibidor
Dispositivos Móviles (PDA's, Smartphones, Tablets)
hackscb 0 5,210 Último mensaje 10 Febrero 2012, 17:36 pm
por hackscb
anti-bot??
.NET (C#, VB.NET, ASP)
s_azazel 2 2,216 Último mensaje 7 Junio 2012, 08:15 am
por s_azazel
Anti Hack y Anti Bot Lineage 2
Juegos y Consolas
themustaine 1 4,754 Último mensaje 23 Octubre 2014, 13:26 pm
por ivancea96
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines