Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - nosoqui

#11
Scripting / vbscript para comprobar conexiones
17 Marzo 2011, 15:06 PM
Saludos a todos
He hecho un script a modo de ejercicio(llevo poco con vbscript)
La secuencia que desarrolla es: comprobar conexiones cada x segundos las cuales llevan la palabra que te interesa(en mi caso ESTABLISHED, para conexiones establecidas), despues te sale un dialogo, si le das a sí, intenta cerrarlo si el das a no... la conexión se guardará en un diccionario para que no vuelva a preguntarte por la misma conexión y si le das a cancelar... se cerrará el script....
Cada vez que el script comprueba la conexión sale una consola por cada comando que ejecuta( he conseguido ponerlo de fondo ) y mi pregunta es la siguiente... sabéis alguna manera de que la consola se oculte o salga minimizada por defecto?
he leido sobre el comando run... pero este no me deja interceptar la salida de los comandos.
He aquí el script(quizá a alguien le interese)

dim dict
set dict=createobject("Scripting.Dictionary")
set ob1=createobject("wscript.shell")
cadena=inputbox("Cadena que buscará en las conexiones","","ESTABLISHED")
segundos=inputbox("Milisegundos que pasarán has volver a comprobar","","3000")
do
set program=ob1.exec("netstat -ano")
set tl=ob1.exec("tasklist")
tls=split(tl.stdout.readall,vbnewline)
do
linea=program.stdout.readline
if (instr(linea,cadena)<>0) and not( dict.Exists(linea) ) then
alinea=split(linea)

for each elemento in alinea
if isNumeric(elemento) then
for each linea2 in tls
if (instr(linea2," " & elemento & " ")<>0) then
res=msgbox(linea & vbnewline & linea2,vbyesnocancel,"¿Cerrar?")
if res=vbyes then
set mata=ob1.exec("taskkill /F /pid " & elemento)
msgbox mata.stdout.readall & vbnewline & mata.stderr.readall
end if
if res=vbno then
dict( linea ) = 0
end if
if res=vbcancel then
wscript.quit
end if

end if
next
end if
next
end if
loop until program.stdout.atendofstream
wscript.sleep cInt(segundos)

loop


saludos y gracias
#12
todo esto es muy interesante! deseo apuntarme! un saludo y gracias
#13
Programación C/C++ / Re: Programacion API linux
6 Febrero 2011, 19:29 PM
Ya que en linux, casi todo se trata como si fuesen archivos.... yo empezaría sabiendo como se usan las llamadas al sistema que se relacionan con estos directamente: open,read,write... luego con las llamadas que te dejan configurar la manera de recibir los datos y de dar ordenes a dispositivos, como ioctl.
Luego están las llamadas  relacionadas con los procesos, de las cuales considero las más importantes fork y exec
Y por ultimo, las llamadas relacionadas con la intercomunicación de procesos, las más comunes son los sockets(usados para la comunicación con internet), la memoria compartida(shmget,shmmat ..etc) ...
Y un un paso más avanzado podría nombrar lo relacionado con la sincronización de procesos que trabajan paralelamente en un mismo trabajo como los bloqueos y los semáforos(mutex)
Un saludo y suerte !
#14
En parte es un alivio que la mayoria de servidores de alojamiento de archivos(como rapidshare o megaupload) sean de otros paises... y que la mayoria de veces las páginas que se cierren sean simples páginas de enlaces.
Pero no puedo evitar que me dé rabia el hecho de que te pueden censurar tu opinión y/o información que compartes dando el simple argumento(la mayoría de veces falaz y ambigüo) de que puedes "causar un daño patrimonial".
Desde mi punto de vista, la censura de la información es el autentico crimen que nunca podrá ser justificado
#15
Hacking / Re: MITM Bloqueado
23 Enero 2011, 14:11 PM
puede ser por muchos motivos entre ellos, que las tablas de relacción IP--MAC sean estáticas o que sea el router quien responda a las peticiones ARP.

Un saludo!
#16
Según he comprobado(viendo las posiciones de memoria individualmente), he deducido que se almacena como he dicho... no domino mucho el ensamblador! pero si me pasas el codigo(por aquí o por privado), haré el máximo esfuerzo por entenderlo ....
Un par de detalles:
1º En mi ordenador, la variable fd_set ocupa 128 bytes pero es posible que en otro sistema linux ocupe otro espacio
2º No se como estará implementada la macro en las librerias originales pero la que te pongo a continuación tiene los mismos efectos(por si te sirve de algo) :
#define FD_SET(A,B) *((unsigned char *) A + (B / 8))|=(1<<(B % 8))

Un saludo!
#17
Quizás si que sea posible hacerlo en batch!
Imaginad que la máquina tiene netcat y en un archivo tenemos:


GET http://pagina.com/enlace.html HTTP/1.0
Accept : Text/html
User-Agent : Mozilla/4.0


(los saltos de linea son CRLF es decir \x0d\x0a)
en definitiva, las peticiones que envia el navegador:
si redireccionamos ese archivo al comando netcat conectandose al servidor, el servidor nos enviará la respuesta como si hubiesemos clickeado en el navegador...

El batch sería:

@echo off
nc servidor 80 < archivo


Lo malo es que hay que conocerse el protocolo HTTP decentemente y saber que método y nombre tienen las variables que se le quieren envian al servidor

Saludos!

pd: lo que dices del flash parece imposible... mucha suerte XD !
#18
Saludos Stroncio !
según he comprobado.... fd_set es una variable de 1024 bits en el que se describe un conjunto de descriptores(ficheros, sockets .... lo que sea), por tanto si tenemos un descriptor de valor(entero) x y queremos introducirlo en ese conjunto, lo que tenemos que hacer es poner el bit número x a 1, eso lo haríamos haciendo una operación OR(|) del conjunto con el 1 desplazado hacia la izquierda(<<) x ... pero para hacer eso tienes que tener en cuenta si la memoria se gestiona con Little endian o Big endian, en el primer caso, en el conjunto de 128 bytes, se almacenan los bytes menos significativos en las posiciones de memoria más bajas(y al contrario en Big Endian), por tanto(y suponiendo que estamos en little endian ya que la mayoria de nuestros sistemas lo hacen así) si tenemos un descriptor cuyo valor es por ejemplo 242, tendremos que irnos al byte número 242/8 y hacer el desplazamiento hacia la izquierda 242%8 (módulo, es decir el resto) ....
En el caso de querer saber si un descriptor está activo.... lo que haríamos es lo mismo pero haciendo un AND y ver si el resultado es distinto de 0 (lo cual indicaria que sí está activo)

Mucha suerte y espero que sirva de algo