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

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el Twitter! de elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  Creando nuestros propios comandos de Bach en C
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Creando nuestros propios comandos de Bach en C  (Leído 4,079 veces)
fary


Desconectado Desconectado

Mensajes: 1.076



Ver Perfil WWW
Creando nuestros propios comandos de Bach en C
« en: 5 Agosto 2010, 05:49 am »

Creando nuestros propios comandos de batch en C

Indice:

1.Introduccion
2.¿como funciona la Ms Dos?
3.Empezando a codear nuestro propio comando
4.Despedida


1.INTRODUCCION

Bueno en este tutorial veremos como crear nuestros propios comandos para la Ms Dos, yo creare algo simple, pero empleando la misma técnica podeis crearos cualquier comando que podais imaginar, es cosa de hecharle imaginación ;).

2.¿COMO FUNCIONA LA MS-DOS?

Bien, la Ms Dos funciona mediante  procesamiento por  lotes, esto supongo que todos lo sabran ya, ¿qué significa esto? Sifnifica que cuando ejecutamos por ejemplo el comando echo lo que estamos haciendo es llamar a un exe ( que esta en la carpeta System32) y pasarle unos parametros, el exe lo que ara es procesar los parametros que le hemos enviado y generar un retorno que muestra la Ms Dos , dando la sensación de que todos los comandos los tiene la misma consola.

3.EMPEZANDO A CODEAR

Siguiendo lo ya explicado en el punto 2 va a ser muy facil desarrollar nuestro comando. Lo primero de todo abriremos nuestro compilador de C ( da igual cual sea)  Proyecto>nuevo  y abrimos un proyecto de consola y ahora.... a codear!!


vale, tenemos el siguiente codigo ( por regla general):

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main(int argc, char *argv[])
  5. {
  6.  
  7.  
  8. }

si nos fijamos en el main tenemos unos parametros (int argc, char *argv[]) esos parametros son los argumentos que se le pasan a nuestro exe ,osea lo que recibira  nuestro comando, explicando un poco mas lo que significa, esto: int argc significa el numero de parametros que se le a pasado y esto: char *argv[] es un array con los parametros, bien, sabiendo ya esto ya sabemos por donde recibiremos los parametros que se le pasan a nuestro futuro comando!!.
ahora simplemente tenemos que hacer lo que nosotros queramos que haga, yo por ejemplo generare un comando semejante a echo yo le llamare DrinkEcho jeje veamos como seria el code:

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main(int argc, char *argv[])
  5. {
  6.    printf("%s\n",argv[1]);
  7.    system("PAUSE");
  8. }

Bien con eso ya tendiramos nuestro comado generado, lo tenemos que compilar con el nombre que va a tener nuestro comando.

UNA NOTA IMPORTANTE es que al estar programando en consola los datos que devuelve nuestro ejecutable los devuelve a la Ms Dos con lo cual de eso no nos tenemos que preocupar.

Ahora solo queda provar el comando... lo metemos en system32 y vamos a testear nuestro comando:



4.DESPEDIDA

Bueno espero que este minitutorial les haya gustado y les haya servido para aprender a crear sus comandos de Batch si esque no sabian.

Un salu2!. Drinky94.


« Última modificación: 5 Agosto 2010, 05:59 am por Drinky94 » En línea

Un byte a la izquierda.
leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


Ver Perfil WWW
Re: Creando nuestros propios comandos de Bach en C
« Respuesta #1 en: 5 Agosto 2010, 06:58 am »

Tienes que comprobar que al ejecutable se le haya enviado un paramétro, sino es así, es posible que lanze un error "segmentation fault".

Ejemplo en C++:

Código
  1. #include <iostream>
  2. #include <cstdlib>
  3. int main(int argc, char **argv)
  4. {
  5.    if(argc != 2)
  6.    {
  7.        std::cerr << argv[0] << " cadena" << std::endl;
  8.        exit(EXIT_FAILURE);
  9.    }
  10.    std::cout << argv[1] << std::endl;
  11.    return EXIT_SUCCESS;
  12. }
  13.  


En línea

Código
  1. (( 1 / 0 )) &> /dev/null || {
  2. echo -e "stderrrrrrrrrrrrrrrrrrr";
  3. }
  4.  
http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com
Binary_Death

Desconectado Desconectado

Mensajes: 214



Ver Perfil
Re: Creando nuestros propios comandos de Bach en C
« Respuesta #2 en: 5 Agosto 2010, 17:20 pm »

Error.
Batch tiene comandos internos y externos. Los internos los incluye el propio intérprete, la CMD.EXE, los externos, son ejecutables hallados en el directorio de Windows y de System32...
El comando "Echo" es un comando interno, eso quiere decir que por mucho que busques no encontrarás un "echo.exe". Es un comando interno.

Aparte de eso, buena info ^^
En línea

fary


Desconectado Desconectado

Mensajes: 1.076



Ver Perfil WWW
Re: Creando nuestros propios comandos de Bach en C
« Respuesta #3 en: 5 Agosto 2010, 18:05 pm »

...

Si, es cierto, pero fue mas que un ejemplo...tambien podria haber creado un comando sin parametros XD

@Binary_Death la idea era que el usuario comprendiese como fucnionan la mayoria de los comandos y como iva a funcionar el nuestro  :)

salu2!
En línea

Un byte a la izquierda.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[Bach] ~Filtro anti-inyecciones by LauBuru~
Scripting
LauBuru 0 2,205 Último mensaje 9 Diciembre 2011, 23:30 pm
por LauBuru
¿Por qué no tenemos la opción de eliminar nuestros propios posts? « 1 2 3 »
Sugerencias y dudas sobre el Foro
Aikanáro Anário 21 10,705 Último mensaje 1 Marzo 2012, 21:49 pm
por Aikanáro Anário
Creando un interprete de comandos en c#
Dudas Generales
boy-ka 1 3,471 Último mensaje 1 Octubre 2014, 00:34 am
por Shout
Ayuda con bach
Scripting
Sergio_011 1 1,885 Último mensaje 9 Diciembre 2015, 02:46 am
por Darioxhcx
¿Sobrecargar las funciones standard o crear nuestros propios metodos? [PYTHON]
Scripting
Yidu 2 3,170 Último mensaje 15 Enero 2017, 18:31 pm
por Yidu
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines