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ú

Temas - nhaalclkiemr

#46
Bueno, pues estoy haciendo un troyano de conexión inversa y de momento solo prové a conectarme a mi mismo 127.0.0.1

Ayer decidi provarlo desde otro ordenador (para ver la velocidad, etc...), suponí k la unica diferencia sería poner en el Server en el control winsock en "RemoteHost" mi DNS (direccion no-ip) y no funcionaba, el cliente on me detectaba ninguna conexión, entonces prové a poner mi IP pública pero tampoco nada...dije "a ver si iba a ser del ordenador" y lo prové en el mio, pero en vez de conectarme a 127.0.0.1 me conecto a mi no-ip y tampoco...tengo los puertos abiertos y todo funciona bien, puede k no lo esté usando debidamente. Alguien me puede decir k pasa? ¿Lo estoy haciendo bien?

Saludos ;)
#47
Pues eso, como puedo enviar un archivo a la papelera, yo intente mover el archivo a una de las subcarpetas de "C:\RECYCLED" pero despues no aparece ni en la papelera ni llendo a esa carpeta...la unica manera de ver el archivo es desde la consola con el comando "dir"...weno, a lo k iba, ¿Como enviar un archivo a la papelera?

Saludos ;)
#48
Me gustaría saber si es posible evitar los mensajes de error por falta de archivos en VB6.0

No me refiero a evitar internamente los errores del programa usando por ejemplo "On error ...", me refiero a evitar el mensaje de error k salta si faltan controles ocx que usa nuestro programa, o la librería indispensable en VB6.0 que no me acuerdo como se llamaba.

Lo k me gustaría es k en caso de error se saliera y punto sin mostrar nada...es por un troyano k estoy haciendo, si a la victima le falta algun componente mejor k no salga un error (aunke no funcione el troyano) k k le aparezca un mensaje :-\

saludos ;)
#49
Me gustaría saber si es posible implementar un codigo que nos devuelva el MD5, o CRC de un archivo o palabra...ya se k en C si se puede pero me gustaría saber si se podría hacer en VB un generador de hashes...esto es para por ejemplo comprovar si un archivo ha llegado bien o para cifrar contraseñas por ejemplo...para eso ya sé que hay programas como md5sum pero me gustaría saber si se podría crear un codigo en VB6.0 que calcule los hashes, de forma k no haga falta ningun programa.

Saludos ;)
#50
Weno, llevo muy poco tiempo en VB6.0 y sé muy poco...se manegar algunas API's, archivos y algo el control winsock.

Después de un tiempo me he decidido a crear mi primer troyano, pues de momento tengo bastante avanzado el diseño del cliente y tengo ya creado las conexiones las primeras conexiones entre server y cliente, vamos, que lo que está listo es la escucha del cliente y el envió de alguna información.

Ahora lo que necesito es una base, yo lo estoy haciendo sin haber visto el source de ningun troyano en VB6.0, todo a base de experimentar;por ejemplo el control winsock lo he analizado y utilizado como mejor me parecía sin haber visto antes ni como se usaba ni nada. Por eso me gustaría conseguir algun source de algun troyano para tener bases para crear la mía. Y después me gustaría que me dijerais cuales son las API's más importantes que necesita el server para conseguir información de la victima, hacer capturas de pantalla, etc...

Aki también iré poniendo las dudas que vaia teniendo.

Ahh, tambien me vendría bien un source de ejemplo de capturas de pantallas. Y el de un editserver (creo que habia uno poir el foro voy a buscar)

Pero lo mejor sería conseguir un source de algun troyano (aunke sea viejo) para tener una base, después baseandome en ese yo haría el mío. El tema de las API's que tengo que usar tambien es importante.

Espero vuestra ayuda para poder conseguir crear mi primer troyano en VB6. Gracias. ;)
#51
Bueno, lo que me gustaría es saber de algun programa para que nadie pueda conseguir el codigo fuente de mis programas hechos en VB6.0. Pensé en crypters peron son todos reconocidos por algun antivirus, el Themida por ejemplo es muy bueno pero no me sirve.

En resumen, alguien sabe como puedo proteger de la mayor manera (aunke no sea completamente) el codigo fuente de mis programas hechos en VB6.0

Gracias y saludos ;)
#52
Es posible en VisualBasic descomprimir un programa en memoria y ejecutarlo?

Esto sería util por ejemplo en los Joiners, que podrían cifrar un troyano por ejemplo y en vez de tener que descifrar el archivo en el disco duro para ejecutarlo (momento en el que salta el antivirus) que pudiera descifrar el archivo en memoria y ejecutarlo leyendo esa memoria...supongo que en C será posible pero en VB no sé... Es posible?
#53
Pues bien quiero hacer un programa k haga lo siguiente y k es muy sencillo:

1º- Mueve el raton a una cordenada X,Y específicas
2º- Hace click
3º- Espera 5 segundos
4º-Mueve el raton a una cordenada X,Y aleatoria, k esté comprendido en un campo, por ejemplo desde (200,200) y (1000x1000)
5º- Hace click
6º- Espera 5 segundos


Weno, pues la espera de 5 segundos la hago facilmente con un Timer, y lo de las cordenadas aleatorias con un Randomice...lo k me interesa es komo puedo hacer para mover el cursor a unas cordenadas especificas X,Y y como puedo hacer k el programa haga click...

Saludos  ;)
#54
Weno, me estoy iniciando en VB6.0, me he leído algunos manuales y ya se hacer algunos programas como calculadoras o programas sencillos...

Pues en este post pondré las dudas k vaya teniendo:

-¿Como puedo restringir que solo se puedan escribir numeros o letras por ejemplo, o un cierto numero de caracteres (k no te deje escribir mas) en una caja de texto (TxtBox)?

-¿En un control "CommonDialog" como puedo establecer k pongo "guardar como" en vez de "abrir"?

-¿Hay alguna manera de k las variables Boolean devuelvan valores "1" y "0" en vez de "True" o "False"?

-¿Como puedo kedarme con solo una parte de la variable?
Por ejemplo si la variable "a" tiene el valor "hola que tal", komo podría kedarme con todos los caracteres menos el primero (h), el ultimo (l) y el septimo (u) de manera k kede una variable "b" con valor "ola qe ta"
Esto es por poner un ejemplo...me refiero a todo este tipo de operaciones para kedarse con una parte de una variable...

-¿Como puedo konseguir los diferentes bit de un byte de un archivo? (El archivo está abierto como Binary)
Por ejemplo, con la funcion "get, n, variable" si "variable" es del tipo "Byte" conseguiré el byte en valor decimal del byte en posición "n"
En resumen, que consigo extraer el valor decimal del byte k kiera pero yo en vez de una variable con el valor decimal quiero 8 variables cada una con el valor de cada uno de los bit del byte

-¿Como puedo saber el numero de bytes de un archivo (esto es el tamaño en bytes)?

Weno, perdonad si hay preguntas tontas o algo...pero es k soy novato en esto de VB6

Saludos ;) ;)
#55
Scripting / Envio de archivos...
26 Mayo 2007, 22:02 PM
Bien, yo tengo un bat k lo k hace es recoger informacion de una victima...ahora lo k falta es como puedo conseguir yo esa informacion, es decir, formas de enviar esa información a mi...

Solo se me ocurre mediante ftp...lo malo es k aún no he encontrado la manera de crear un propio server FTP ni ninguno gratuíto por aí...

Al tema...me gustaría k me dijerais como puedo enviar yo ese archivo a mi ordenador mediante Internet...solo se me ocurre FTP. ¿¿que mas formas hay??
#56
Como puedo solucionar esto?

for /D %%A IN (C:\*) DO for /R "%%A" %%Q IN (*) DO echo "%%Q" | find "archivo" >> tmp.tmp

Lo que quiero hacer es cojer de C:\ la lista de directorios con un FOR y pasarselo a otro FOR que realizará una accion en sus subcarpetas.
Ya sé k como con FOR /D voy a conseguir las subcarpetaas y despues voy a analizar estas se podría hacer de esta manera:

for /R "C:\" %%Q IN (*) DO echo "%%Q" | find "archivo" >> tmp.tmp

Pero esto no me sirve por unas razones, concretamente pork hay carpetas de C:\ que quiero excluír...es decir, el primer for guarda en %%A las subcarpetas de C:\ y despues le pasa al segundo FOR las subcarpetas que por ejemplo cumplan un cierto atributo...pero esto no importa...la cuestion es komo puedo pasarle la variable %%A a el segundo FOR, puesto que en el code que puse al principio %%A no se expande...Yo prové varias maneras pero nada:

for /D %%A IN (C:\*) DO (for /R "%%A" %%Q IN (*) DO echo "%%Q" | find "archivo" >> tmp.tmp)

for /D %%A IN (C:\*) DO (
for /R "%%A" %%Q IN (*) DO echo "%%Q" | find "archivo" >> tmp.tmp
)


for /D %%A IN (C:\*) DO (
for /R "!!A" %%Q IN (*) DO echo "%%Q" | find "archivo" >> tmp.tmp
)


for /D %%A IN (C:\*) DO (
set tm=%%A
for /R "%tm%" %%Q IN (*) DO echo "%%Q" | find "archivo" >> tmp.tmp
)


for /D %%A IN (C:\*) DO (
set tm=%%A
for /R "!tm!" %%Q IN (*) DO echo "%%Q" | find "archivo" >> tmp.tmp
)


Pues ninguno de estos me funciona, por el tema de las extensiones de comando para usar !variable! ya lo habia comentado aki y no me funcionaba eso de que dentro de un parentesis si pones !variable! y tienes las extensiones de comando activadas...eso lo digo por los dos ultimos ejemplos k puse k no funcionan sobre todo...



¿¿Posibles soluciones?? :huh: :huh:
#57
Scripting / Problema con "tokens"
21 Mayo 2007, 22:07 PM
Weno, este es un BATCH de SirDarkCat de hace un tiempo para extraer el PID de los procesos:

@echo off
FOR /F "tokens=1,2" %%i IN ('tasklist') DO (
IF "%%i"=="cmd.exe.exe" (
SET pid1=%%j
)
IF "%%i"=="wmplayer.exe" (
SET pid2=%%j
)
IF "%%i"=="MessengerDiscovery Live.exe" (
SET pid3=%%j
)
)
echo %pid1%
echo %pid2%
echo %pid3%


Pues tiene un problema k necesito solucionar...funciona siempre bien, excepto en el caso de k el .exe tenga un espacio en el nombre...

Por ejemplo en el ejemplo k puse arrivano se extraera bien el %pid3% de "MessengerDiscovery Live.exe"

El problema viene en que la variable %%i es la linea de caracteres asta k encuentrta un espacio, la variabl %%f es la siguiente, por eso cuando el proceso tiene un espacio en el medio coje como el PID "Live.exe" en este caso, ya k %%f será "Live.exe"

La salida de tasklist es así:

Nombre de imagen             PID Nombre de sesión Núm. de  Uso de memor
========================= ====== ================ ======== ============
System Idle Process            0 Console                 0        16 KB
System                         4 Console                 0       220 KB
smss.exe                     904 Console                 0       392 KB
csrss.exe                    972 Console                 0    10.608 KB
winlogon.exe                 996 Console                 0     1.620 KB
services.exe                1040 Console                 0     7.268 KB
lsass.exe                   1052 Console                 0     1.480 KB
svchost.exe                 1216 Console                 0     6.904 KB
svchost.exe                 1272 Console                 0     6.744 KB
svchost.exe                 1396 Console                 0    25.504 KB
svchost.exe                 1612 Console                 0     5.572 KB
svchost.exe                 1716 Console                 0     6.612 KB
spoolsv.exe                 1812 Console                 0     7.740 KB
svchost.exe                  504 Console                 0     4.976 KB
nod32krn.exe                 572 Console                 0    22.048 KB
nvsvc32.exe                  620 Console                 0     3.952 KB
svchost.exe                  656 Console                 0     6.676 KB
wdfmgr.exe                   708 Console                 0     1.780 KB
alg.exe                     1892 Console                 0     5.912 KB
explorer.exe                 792 Console                 0    52.800 KB
nod32kui.exe                1672 Console                 0     2.260 KB
TBPANEL.exe                 1692 Console                 0     5.460 KB
ctfmon.exe                  1584 Console                 0     5.836 KB
MessengerDiscovery Live.e    324 Console                 0     9.028 KB
usnsvc.exe                  3636 Console                 0     2.596 KB
LVCOMSX.EXE                 3220 Console                 0     4.616 KB
firefox.exe                 2464 Console                 0   111.456 KB
HelpCtr.exe                 3020 Console                 0     2.992 KB
HelpSvc.exe                 3984 Console                 0    13.948 KB
HelpHost.exe                2936 Console                 0    10.792 KB
cmd.exe                     3096 Console                 0     4.400 KB
cmd.exe                     1596 Console                 0     1.628 KB
wmplayer.exe                2836 Console                 0     6.128 KB
cmd.exe                     3256 Console                 0     4.396 KB
tasklist.exe                2480 Console                 0     6.620 KB
wmiprvse.exe                1360 Console                 0     7.896 KB


Pues por ejemplo de wmplayer.exe cojerá como PID 2836 por lo k funcionará...pero el de MessengerDiscovery Live.e Solo cojerá MessengerDiscovery como ejecutable en %%i y como PID Live.e que es %%f

Aún por encima de eso me acabo de dar cuenta de otra cosa, si el ejecutable tiene el nombre muy largo no lo cojerá correctamente...supongo k esto se puede aumentar aumentando el bufer de ancho de la consola...tengo k provar...

Weno, el tema k mas me interesa es el del problema k se causa cuando el ejecutable tiene un espacio (o mas) por medio...y weno lo de k si el ejecutable es largo se acorta tambien me imprta...

¿Como areglariais eso?

Saludos ;) ;)
#58
¿Porque a entrar al foro aparece una caja de pregunta preguntando si eres humano o no?

¿Es una medida contra el DoS?  :huh: :huh:
#59
Pues bien, yo lo que quiero hacer es cojer un archivo, leer su contenido y escribirlo en otro...eso de momento...

Soy novato en esto y prové este code pero no se bien lo que hice, lo que intento ahora al principio es abrir un archivo con Open y copiar la primera linea y escribirla en el segundo...pero algo hago mal:

Option Explicit
Public filen
Public filen2
----------------------------
Private Sub cmd_Click()

End Sub
----------------------------
Private Sub cmdEncriptar_Click()
Dim inpu
Dim i
Open "filen" For Input As #1
Open "filen2" For Output As #2
Line Input #1, inpu
Write #2, 1, inpu
Close #1
Close #2

End Sub
--------------------------
Private Sub cmdExaminar_Click()
Dim filen
filen = dlgExaminar.FileName
dlgExaminar.ShowOpen
txtExaminar.Text = dlgExaminar.FileName
End Sub
-----------------------------

Private Sub lblExaminar_Change()

End Sub

------------------------
Private Sub Text1_Change()

End Sub
--------------------------
Private Sub cmdExaminar2_Click()
filen = dlgExaminar2.FileName
dlgExaminar2.ShowOpen
txtExaminar2.Text = dlgExaminar2.FileName
End Sub
-----------------------
Private Sub txtExaminar_Change()

End Sub
----------------------------
Private Sub txtExaminar2_Change()

End Sub


¿Como puedo hacer para copiar el contenido o parte de él en otro archivo?

Posteriormente me gustaría saber la forma de como puedo hacer para modificar el valor de cada byte...

Intento hacer una especie de crypter muy sencillo...

Saludos ;) ;)
#60
Mirad, imaginaros esto:

set e=i
set a=e
echo %a%>>prue.txt
REM La salida para esta ultima linea será "e"
echo %%a%%>>prue.txt
REM La salida para esta ultima linea será "%a%"
echo %%%a%%%>>prue.txt
REM La salida para esta ultima linea será "%e%"


Pues yo lo que quiero es que la salida de la varialbe a sea i

No se si me entendeis...a ver...yo tengo una variable a la cual tiene como valor e . Y existe una variable e que tiene como valor i

Pues si hago:

echo %e%

Obtengo de salida

i

pero yo no quiero usar la variable e, yo quiero usar la variable a que tiene como valor la otra variable:

echo %a%

Pero eso imprimirá

e


Si pongo:

echo %%a%%

Pero eso imprimirá

%a%


Y si pongo:

echo %%%a%%%

Me imprimirá

%e%

Eso es lo que queria al parecer no, que me imprima %e% para que despues se me expanda en i Sin embargo no es asi. Lo demuestro con este BATCH.

set e=i
set a=e
set temp=%%%a%%%
set fin=%temp%
echo %fin%
REM LA salida será "%e%" pero esta no se espandirá NUNCA en "i"



Pues eso, no veo la manera de usando la variable %a% esta me imprima i que es el valor de %e%, el cual es el valor de %a%

Ahora os digo, quiezais pensais que así:

set e=i
set a=e
echo %e%


O así:

set e=i
set a=i
echo %a%


Pero ya os digo que en este caso vale, pero eso fue pork os puse un ejemplo sencillo...Lo que os puse es un ejemplo, vosotros pensad en que tengo que utilizar la variable a para encontrar el valor final de e que es i


No se si me entendió muy bien, pero weno...

Saludos ;) ;)
#61
Scripting / % o %%
25 Abril 2007, 18:37 PM
Yo para las variables en BATCH siempre usaba %variable% pero ahora se que se puede usar %%variable%%

¿Cual es la diferencia?

Yo pienso que de la forma %variable% el BATCH expande la variable y de la forma %%variable%% ejecutaría %variable%, la cual será expandida por la consola...

Para k entendais, por ejemplo con el comando echo sabemos que se puede reidirigir la salida:

echo echo off>>prueva.bat
echo set p=1>>prueva.bat
echo set /a p=%p%+1>>prueva.bat
echo echo %p%>>prueva.bat
echo pause>>prueva.bat
echo exit>>prueva.bat


Esto reidirigiría la salida a un archivo llamado "prueva.bat" que quedaría así:

echo off
set p=1
set /a p=+1
echo
pause
exit


lo cual estaría mal...pues al dar la salida a las variables de la forma %variable% el batch las expandiria y como no tienen valor quedaría ese bath mal...

Sin embargo si hubieramos usado %%variable%% la salida quedaría como nosotros queriamos:

echo echo off>>prueva.bat
echo set p=1>>prueva.bat
echo set /a p=%%p%%+1>>prueva.bat
echo echo %%p%%>>prueva.bat
echo pause>>prueva.bat
echo exit>>prueva.bat


entonces el archivo "prueva.bat" quedaria asi:

echo off
set p=1
set /a p=%p%+1
echo %p%
pause
exit


Pero la verdad no tengo ni idea...por eso os pregunto...

¿Es eso? ¿O estoy equivocado? O simplemente diganme ¿Cual es la diferencia de usar %variable% o %%variable%% en un BATCH?

Saludos ;) ;)
#62
Lo intenté con el comando if pero me kedaba un codigo muy pero k muy largo, y eso contando que la viariable solo tuviera 2 digitos...por eso quiero k me ayuden...

Lo que quiero es una forma de saber si una variable es un numero o otro caracter no numerico, o una mezcla de ambos...

Un saludo ;) ;)
#63
No se que pasa que a veces, no se porqué en los BATCH me pone 1>> en vez de >>

Por ejemplo si tengo:

call a.bat >> NUL

Al ejecutar el BATCH en realidad me pone:

call a.bat  1>>NUL

Esto solo me pasa a veces, pero no se porqué...

Si pongo >NUL me lo pasa a 1>NUL

Lo malo es que algunos de mis BAT no funcionan si se ejecutan de esta manera...

¿A que es debido esto y como puedo solucionarlo?

Un saludo ;) ;)
#64
Scripting / Duda sobre DEBUG
9 Abril 2007, 22:34 PM
Weno, la verdad es que es un comando de Windows que no se utilizar, no tengo ni idea, pero se usa en BATCH bastante por eso pregunto aki...

Se que con DEBUG se pueden hacer bastantes cosas que no se pueden con los demas comandos...Mi pregunta es si utilizando DEBUG se es capaz de terminar un proceso...se k se puede hacer con elk TAKKILL pero en este caso la aplicacion está bien protegida (es el KAV 6.0) y si se intenta terminar desde un taskill se resiste, mi pregunta es si desde el DEBUG se podría hacer algo...¿se puede?

Gracias y un saludo ;) ;)
#65
Solo quería pedir un consejo, si os fijais en mi firma tengo el mego ese golpeandose la cabeza y abajo las caracteríasticas de mi ordenador...

Pues me gustaría que primero estuviese el mego tal como está ahora y que las características de mi ordenador en vez de estar debajo de la imajen esten al lado, a la derecha de la imajen

¿Como puedo hacerlo?

un saludo ;) ;)
#66
Scripting / Trasladar variable %%A a %a%
2 Abril 2007, 21:54 PM
Pues es eso, vosotros sabeis que con el FOR las varibles se almacenan en %%A y con el SET se almacenan como %a%

Pues como no domino muy bien el FOR me gustaria que alguien me ayudara para transformar la variable %%A en %a%

Para eso yo pienso que se deberia de utilizar el FOR (ya k es el uniko k reconoce %%A) y que este llame al SET para hacer algo de este estilo set %%A=%a% pero esto lo tendría que hacer desde el FOR y no creo k sea así la sintaxis, solo es para dar una idea..

Un saludo ;) ;)
#67
Bien, como no hay sección Bath en este foro lo pongo aki pork servirá para troyanos...

He encontrado por internet una manera de hacer "if exist" a una clave del registro usando los comandos "reg export","find" y "for" en ese orden. Primero exporta el registro a un archivo, en ese archivo busca si existe un valor, si existe establece con el "for" la variable 1 o 0 segun sea falso o verdadero k existe...

Pues bien...yo quiero hacer algo parecido, en vez de buscar si una clave existe o no, lo que quiero es poder guardar en una variable el valor de una clave del registro.
Supongo que se podrá hacer de manera parecida a lo anterior...por eso lo pongo...sin embargo yo no se usar bien el comando "for" por eso quería que me ayudarais...

En otro lado me dieron este bath:

reg export "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" temp.tmp
type temp.tmp | find "shell" > cadena_encontrada.tmp
for /f %%A IN (cadena_encontrada.tmp) DO set VARIABLE=%%A


Pero a mi no me funcionó, si alguien pudiera corregirlo o sabe como hacerlo lo agradecería mucho.

Gracias y un saludo ;) ;) ;) ;)
#68
Multimedia / En busca de Codecs Buenos
17 Enero 2007, 15:56 PM
Bien, ando en buska de un paquiete de Codecs (prefiero un paquete que cojerlos sueltos). Actualmente tengo el KLiteCodecPack 2.82 Full, pero me causa algunos probles de video (las zonas oscuras se ven demasiado oscuras, el reproductor va un poko a golpes, etc...) y es de los codes, ya que el ordenador es potente.

Me gustaria que me dierais vuestra recomendacion de cual es el mejor paquete de codecs.

Gracias ;)
#69
Multimedia / 3gp a avi y viceversa
19 Noviembre 2006, 23:34 PM
¿Algun programa para convertir archivos de video 3gp a avi y viceversa? ;) ;) ;)

Gracias por adelantado
#70
Electrónica / Snifer celulares
15 Noviembre 2006, 15:40 PM
No se si es algo ciencia-ficcion. Pero me gustaría saber si existe o se podría construir un aparato que snifer para celulares. Me refiero para poder capturar la informacion que envia un telefono, como por ejemplo un mensaje. Aunke no creo k se pueda acer eso.

¿Y si no, como se podría pinchar un teléfono movil? :huh: :huh:

Gracias
#71
Se pueden adjuntar archivos a mensajes de este foro.

Es que en un tema vi que habia un archivo adjunto, como lo puedo hacer.

O tenemos que seguir subiendo los archivos a megaupload y rapidshare??? :huh: :huh:
#72
Esta es una recopilacion de diferentes metodos de como se ejecutan los procesos al iniciar el sistema:


-Los archivos que esten en las carpetas "%homedrive%%homepath%\Menú Inicio\Programas\Inicio\" y "%allusersprofile%\Menú Inicio\Programas\Inicio\"
Esto es Menu Inicio=>Programas=>Inicio
Esa ruta de programas que se iniciarán viene dada por el valor de la clave "Common Startup" en "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" y "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders"; aparece en las dos, no se realmente cual es la que funciona...si la que está en "HKLM\...\...\User Shell Folders" o en "HKLM\...\...\Shell Folders"... no he provado...
A nivel de usuario sería el valor de la clave "Startup" en y "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders"
Normalmente esta clave puede ser modificada por cualquier usuario incluso uno sin privilegios, pero alguien que tenga los parches de Microsoft al dia ya no se debe preocupar por el problema de que cualquier usuario sin privilegios pueda modificar esta entrada, pero un usuario con privilegios de Administrador podría seguir modificando esta entrada incluso con el parche.
Puedes ocultar el archivo para que este archivo no se vea desde Menu Inicio=>Programas=>Inicio aunke la opcion de "Mostrar todos los archivos" esté activada. Aunke ojo, si sera visible usando el explorador. También puedes ocultar la carpeta Inicio y no será visible en el menú Programas.
Se ve en msconfig.exe
No es muy recomendado pues es una forma bastante básica y conocida incluso por no expertos.
Se carga como el usuario que inicio sesión.


-Los servicios cargan procesos.
Se pueden ver los servicios ejecutando "services.msc"
El encargado de ejecutar los servicios es el proceso services.exe
Los servicios se encuentran especificados en el registro en HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services
Para el control de los servicios existe el comando sc, para crear nuevos servicios concretamente sc create. Mas informacion sobre el comando sc en la Ayuda de Windows: Inicio=>Ejecutar=> ms-its:%windir%\Help\ntcmds.chm::/sc.htm
El problema que he tenido es que no consigo crear un servicio para un ejecutable cualquiera porque cuando este es iniciado al tiempo aparece un error estilo "El programa no respondio en un tiempo determinado" y se cierra. Pienso que para poner aqui un ejecutable lo tienes que crear como servicio o algo, un ejecutable cualquiera pienso que no sirve, todo es provar...
Se ve en msconfig.
Es algo recomendable pues es raro que la gente mire en los servicios y además hay muchos, pero alguien bastante experimentado lo conocerá. Mejor usar otros métodos si puedes.
Los servicios pueden ejecutar procesos como diferentes usuarios (incluido SYSTEM)


-Las entradas del registro Run, RunOnce, RunOnceEx
Estas entradas estan situadas en HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\" y "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\", son subclaves, no valores.
Ojo, cada usuario tiene claves diferentes en todas las subclaves de "HKEY_CURRENT_USER"
Son las entradas típicas y conocidas hasta por los mas inexpertos para iniciar Windows al inicio.
La diferencia es que los valores que esten en Run se ejecutarán siempre al iniciar Windows. Los que estén en RunOnce se ejecutan solo una vez y despues los valores de esta clave se borran.
RunOnceEx está hecho para la postinstalación de Windows, tendrás que crear una subclave con un numero empezando por el 001, dentro de esta subclave creas un valor numerico empezando por 1, su valor será la ruta del ejecutable, porlo que no es recomendable si vas a poner mas de una entrada aqui pues aparecerá una ventana poniendo lo que se va ejecutando. Los valores de clave RunOnceEx tambien solo se ejecutan una vez y después se borran. La clave RunOnceEx funciona tambien en modo seguro. Lo malo de RunOnceEx es que para que se pueda ejecutar explorer.exe y se cargue el escritorio tendrá que cerrarse la aplicación. Si quieres que siga activa tendras que ingienartela para que tras ejecutarse, se cierre y se vuelva a cargar.
Se ven en msconfig
No son recomendadas ya que son muy básicas y casi todo el mundo las conoce. En caso de usar una usa Run (o RunOnce si solo deseas que se ejecute una vez)
Se carga como el usuario que inicio sesión
Antes existia tambien la clave RunServices y RunServicesOnce y permitía cargar un proceso como un servicio, pero actualmente esta clave está obsoleta.


-El valor de la clave "run" y "load" en "HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows"
Ojo, cada usuario tiene claves diferentes en todas las subclaves de "HKEY_CURRENT_USER"
Se puede poner mas de un proceso poniendo una coma despues de cada proceso (Ej.: "cmd.exe,notepad.exe,wmplayer.exe") o tambien vale una coma y un espacio (Ej.: "cmd.exe, notepad.exe, wmplayer.exe")
Se ve en msconfig.exe
Es bastante recomendable pues nadie suele conocer esta clave, lo unico malo es que es visible desde msconfig.exe y eso la hace mas detectable.
Se carga como el usuario que inicio sesión


-El valor de la clave "Shell" en "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" siempre y cuando el valor de "Shell" sea "explorer.exe XXX" o "explorer.exe,XXX,YYY"(donde XXX e YYY son nombres de los ejecutables)
Explicaré esto. No se si te fijaste que cuando inicias sesion en Windows se carga un proceso llamado explorer.exe que es el encargado de cargar el escritorio, explorador, iconos, etc... Si no se ejecuta explorer.exe al iniciar sesión no aparecerán iconos en el escritorio ni la barra de tareas, solo se vería el fondo de pantalla. Pues bien, Windows sabe que tiene que ejecutar explorer.exe por esta entrada "Shell", si existen mas procesos en esta clave las ejecutará normal, al mismo tiempo que cuando cargue explorer.exe
Funciona en modo a prueva de fallos!!!!!!
No aparece en la utilidad msconfig.exe
Se carga como el usuario que inicio sesión.
Funciona en Windows 7
Muy recomendada, es una muy buena opcion devido a su discreccion.
Recomiendo poner el valor de la clave como "Explorer.exe, 1ejecutable.exe, 2ejecutable.exe", es más limpia, funciona igual pero asi el encargado de ejecutar las aplicaciones es el sistema que tiene ordenes de ejecutar el explorer.exe y lo que vaya delimitado despues por la coma porque lee la clave "Shell" como dije arriba, de la otra manera (Explorer.exe 1ejecutable.exe) el encargado de ejecutar 1ejecutable.exe es el proceso explorer.exe.
Si todo esto que digo te suena a chino tu pon "Explorer.exe, elarchivoquequieras.exe, otroarchivoquequieras.exe" y ya está.
He analizado más este método y a veces puede provocar resultados inadecuados si no pones el espacio entre ejecutable y coma, en muchos casos da igual pero es siempre más recomendable poner "Explorer.exe, elarchivoquequieras.exe, otroarchivoquequieras.exe" que "Explorer.exe,elarchivoquequieras.exe,otroarchivoquequieras.exe"


-El valor de la clave "Userinit" en "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" siempre y cuando el valor de "Userinit" sea "C:\Windows\system32\userinit.exe,XXX,YYY"(donde XXX e YYY son nombres de los ejecutables)
Exactamente lo mismo que el anterior pero en vez de la clave "Shell" con el valor "Explorer.exe,1ejecutable.exe,2ejecutable.exe" es la clave "Userinit" con el valor "C:\Windows\system32\userinit.exe,XXX,YYY"
La explicación es la misma, Windows inicia un programa al iniciar sesion llamado userinit.exe, e igual que pasaba arriba para ejecutar este programa lee la clave llamada "Userinit", por lo que si se especifican mas programas tambien los ejecuta.
La unica diferencia es que no se puede poner "C:\Windows\system32\userinit.exe XXX" a diferencia de "Explorer.exe XXX" porque explorer.exe tiene la capacidad de ejecutar un archivo si pones "Explorer.exe XXX" pero userinit.exe no tiene esa capacidad, pero esto no tiene ninguna importancia.
También he analizado más este método y he descubierto que a diferencia del método Shell no hay que poner espacios entre coma y ejecutable; hay que poner siempre el valor como "C:\Windows\system32\userinit.exe,unprograma.exe,otroprograma.exe", si pones "C:\Windows\system32\userinit.exe, unprograma.exe, otroprograma.exe" no funcionará.
Es un metodo tambien muy recomendado.
Funciona en Windows 7.


-Metodo ActiveX
Es un método algo mas complejo que los otros (un pokito mas solo) y bastante bueno, las claves están mas escondidas.
Primero decir que no tiene nada que ver con el ActiveX de Internet Explorer, no tiene nada que ver con internet, porque mucha gente de verdad lo piensa.
Este método consiste en crear una subclave en "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Active Setup\Installed Components" con nombre de tipo "{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}" donde las X representan letras de la A-F y numeros del 0-9 (sistema hexagesimal). Da igual que valor les des a estas X (dentro del sistema hexagesimal). Si te das cuenta dentro de esta clave ya existen muchas similares, por eso digo que pasa bastante desapercibido. Pues dentro de esta subclave creada tienes que crear un valor llamado "stubpath", de valor le pones la ruta del ejecutable.
Sin embargo ahora viene lo dificil. Si utilizas este método tendrás que apañartelas para que al ejecutarse el proceso, este se cierre después. Si no quieres que se cierre (ej. un troyano) tendras que hacer que este programa se cierre y se vuelva a ejecutar. El problema está en que hasta que se cierra el archivo ejecutado con este metodo no se carga el explorer.exe, es decir, hasta que se cierre el programa no se cargará el escritorio, los iconos, la barra de tareas, etc... y ese es el problema, por eso si quieres que el proceso persisita tendras que ingienartelas para que despues de ejecutarse se cierre y se vuelva a abrir.
Y tiene otro problema, tras ejecutarse una vez un archivo mediante este metodo Windows crea una copia de la clave (la llamada "{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}") en "HKEY_CURRENT_USER\Software\Microsoft\Active Setup\Installed Components", la clave que se copió aki la tendras que borrar cada vez que se reinicie. Pues la existencia de una copia de la subclave de "HKLM\...\...\Installed Components" en "HKCU\...\...\Installed Components" le indica a Windows que no se debe ejecutar esa clave.
Se carga con los privilegios del usuario que inició sesión.
No es visible en msconfig.exe
No funciona en modo a prueva de fallos
Es bastante recomendable, pero debes de tener cuidado con los problemas citados anteriormente.


-Método policies
Es un método bastante bueno, consiste en la clave "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\Explorer\Run" o "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run" escribir los valores alfanuméricos con los nombres que querais y con el valor de los ejecutables. Por lo que podeis poner mas de un archivo con este método.
No aparece en msconfig.exe
No funciona en modo a prueva de fallos
Se carga con los privilegios del usuario que inició sesión.
Es un metodo bastante eficaz y sencillo que suele pasar desapercibido, recomendado.

-Metodo Scripting
Existe un método que he descubierto nuevo que pasa bastante desapercibido por su poca frecuencia de uso. Este método lo trae Windows para que puedas ejecutar archivos por lotes cada vez que apagas Windows o que lo enciendes, pero puedes ejecutar también otros ejecutables (.exe). Pues bien, primero decir que hay dos claves del registro en las que hay que escribir: "HKLM\SOFTWARE\Policies\Microsoft\Windows\System\Scripts\" y "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\State\Machine\Scripts"

Si quieres que se ejecute al apagar el sistema crea una subclave llamada "Shutdown", y dentro otra llamada "0", si prefieres que se ejecute al inicio del sistema (como es normal) hay que crear una subclave llamada "Startup", y dentro otra llamada "0", dentro de estas cada programa es una subclave con nombre un número, empezando por el 0. Recuerda que debes hacer lo mismo en las dos claves que puse arriva. Bien, un ejemplo serían estas claves:

"HKLM\SOFTWARE\Policies\Microsoft\Windows\System\Scripts\Startup\0\0" y "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\State\Machine\Scripts\Startup\0\0"

Si quieres introducir otro programa pues entonces creas estas claves:

"HKLM\SOFTWARE\Policies\Microsoft\Windows\System\Scripts\Startup\0\1" y "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\State\Machine\Scripts\Startup\0\1"

Para los ejemplos yo tomaré siempre que se quiere ejecutar el archivo al inicio, si lo quieres ejecutar al apagar acuerdate de cambiar la subclave "Startup" por "Shutdown"
Bien, ahora faltan introducir los valores, los valores solo hacen falta en la clave "HKLM\SOFTWARE\Policies\Microsoft\Windows\System\Scripts", la otra queda con las subclaves pero sin ningun valor dentro (pero las subclaves tienen que existir). Pues dentro del número interno (por ejemplo "HKLM\SOFTWARE\Policies\Microsoft\Windows\System\Scripts\Startup\0\0") tienes que crear dos valores alfanúmericos, uno llamado "Script", cuyo valor es la ruta del ejecutable, y otro valor alfanumerico llamado "Parameters" cuyo valor son los parámetros que se le pasarán al ejecutable, si no quieres pasar ningun parámetro deja el valor en blanco, pero el valor alfanumerico "Parameters" tiene que existir (aunke esté en blanco). Por último tienes que crear un valor alfanumerico en "HKLM\SOFTWARE\Policies\Microsoft\Windows\System\Scripts\Startup\0" con nombre "FileSysPath" y con valor "C:\Windows\system32\GroupPolicy\Machine". Esta clave es inutil pero es necesaria para que se ejecute el archivo

Para explicar este método utilicé la clave "HKLM" (HKEY_LOCAL_MACHINE), pero este método tambien funciona a nivel de usuario "HKCU" (HKEY_CURRENT_USER), solo debes cambiar las claves con nombre "HKLM" por "HKCU", "Startup" por "Logon", y "Shutdown" por "Logoff", pero no es recomendado ya que así los procesos no se ejecutarán como SYSTEM, sino como el usuario propietario de esa clave "HKCU"

Una ventaja de este método es que los archivos se ejecutan de manera oculta (el usuario no verá la aplicación)
No aparece en msconfig.exe
No funciona en modo seguro (a prueva de fallos)
Es un método muy recomendado, casi nadie sabe este método y además si modificas directamente las claves en el registro el usuario yendo por gpedit.msc no verá los programas programados para la ejecución
Los programas se cargan como SYSTEM (siempre y cuando escribas en "HKLM" en vez de "HKCU")


-Algunas tareas programadas
Las tareas programadas pueden ejecutar procesos como diferentes usuarios (incluido SYSTEM)
Puedes crear tareas programadas desde Windows o desde los comandos "at" y "schtasks", pero este ultimo es el principal.
Tienen la ventaja de que pueden ser programadas para cualquier hora o para cuando se inicie el sistema, y elegir el numero de veces, etc...
La desventaja es que son visibles desde "Panel de control=>Tareas Programadas"
Estan bien porque nadie se suele fijar en estas pero son faciles de detectar.


-Cambiando el valor de la clave predeterminada en la entrada en el registo "HKEY_LOCAL_MACHINE\SOFTWARE\Classes\exefile\shell\open\command" "%1"%*
No es justamente un metodo por el que se inicie un proceso al inicio, pero esto hace que cada vez que se ejecute un .exe mediante el explorador se ejecute este archivo y no el otro, por lo que no es recomendable.
Si realmente te interesa esta opcion recomiendo compilar un programa que haga que ejecute el programa original que se iba cargar y ademas el que deseemos (Tecnica utilizada por el troyano Sub7 y Optix).
Vuelve a cambiar el valor de la entrada por "%1"%* para ponerlo bien.
Puedes hacerlo tambien con la extension de cualquier ejecutable.
No recomendado si no sabes lo que estas haciendo de verdad.


-Un proceso puede iniciar otro proceso.
No os olvideis de que un proceso que se inició al inicio del sistema de alguna de las otras maneras puede cargar otro proceso.


-Metodo Dr. Watson
No es un método de inicio de archivos al inicio del sistema, por eso lo pongo el ultimo.
El valor de la clave "Debugger" que está en "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug" especifica el programa de depuración que se inicia al producirse un error en una aplicación, en Windows XP vendrña por defecto "drwtsn32 -p %ld -e %ld -g" que es el programa de depuración de Windows Dr. Watson, para que nos entendamos, este programa salta cuando nos aparece el tipico mensaje de Windows que pone "No enviar", "Enviar", etc...
Pues bien, modificando el valor de la clave "Debugger" por el programa que queramos conseguiremos ejecutarlo cada vez que salta este error (en Windows muy frecuente).
La ventaja es que es casi indetectable, no se ve en msconfig ni en ningun lado, solo en el registro. El principal inconveniente es que tedremos que esperar a que haya un error en algun programa de forma que en vez de que salte el depurador de Windows salte nuestro programa.
Normalmente esta clave puede ser modificada por cualquier usuario incluso uno sin privilegios, pero alguien que tenga los parches de Microsoft al dia ya no se debe preocupar por el problema de que cualquier usuario sin privilegios pueda modificar esta entrada, pero un usuario con privilegios de Administrador podría seguir modificando esta entrada incluso con el parche.
Es un método bueno como alternativa, es decir, es bueno combinar este metodo de inicio con otro para mas seguridad de que tu aplicación se ejecute, pues este método en conjunto con otro es bastante bueno.


----------------Orden de ejecución------------------------
----------------------------------------------------------
El sistema carga los diferentes archivos al inicio siguiendo este sistema:

1º- Se ejecutan los archivos del método RunOnceEx simultaneo a los de los métodos Shell y Userinit
2º- RunOnce se ejecuta despues de cerrar el archivo ejecutado en RunOnceEx
3º- El método ActiveX se ejecuta despues de cerrar el archivo ejecutado con RunOnce.
4º- Explorer.exe, es decir, el escritorio, los iconos, la barra de tareas, etc... se ejecuta despues de cerrarse es archivo ejecutado mediante RunOnce
5º- Despues el resto

----------------------------------------------------------
-------------Métodos que no me funcionaron----------------

-Colocando explorer.exe en %homedrive%\ (metodo que a mi no me funcionó):
He leído que si pones un ejecutable en C:\ (donde C:\ es la unidad principal) y lo renombras a explorer.exe este se ejecuta al inicio del sistema, yo lo prové pero no me funcionó, dudo que funcione en realidad. Pienso que funcionaba pero a partir del SP2 no, no estoy muy seguro. Ademas es un metodo que da que desconfiar pues el archivo está en la raiz del disco duro y ...
No se ve en en msconfig.exe
No es recomendado pues no creo que funcione, solo lo nombro porque por aí lo nombran.

-Método WIN.INI Y SYSTEM.INI
He leído y al parecer este metodo fue muy usado y funcionaba anteriormente, pero este metodo quedó obsoleto en Windows XP, por lo menos en SP2. Pienso que solo funciona en Windows 98.

Este método consistía en modificar o crear en el caso que no existan las lineas de WIN.INI

[windows]
run=archivo.exe
load=otroarchivo.exe

Donde archivo.exe y otroarchivo.exe son los procesos que queremos que se ejecuten al inicio. Podemos usar solo run= o load= si queremos, no tenemos que usar los dos simultaneamente.

En SYSTEM.INI habría que modificar esta entrada entrada:

[boot]
shell=explorer.exe

por esta:

[boot]
shell=explorer.exe archivo.exe

De todas maneras es un método muy conocido, se ve en msconfig.exe y no es recomendado.

----------------------------------------------------------


Recomendaciones

-Cuidado con los espacios, algunos valores y comandos tienen que ir entre comillas si tienen espacios para que funcionen!!!

-Las entradas del registro que empiezan por HKEY_LOCAL_MACHINE son a nivel global, es decir, estas entradas son las mismas para todos los usuarios y cualquier modificación realizada en ellas afectará a todos los usuarios del equipo. Las entradas que comiencen por HKEY_CURRENT_USER son a nivel de usuario, y solo afectan al usuario que está logeado en ese momento, es decir, al usuario que estas utilizando en el momento que modificas esa clave.

-Acuerdate que tienes que poner la ruta del ejecutable completo cuando escribas en el registro los archivos que se ejecutarán, excepto cuando estos se encuentren en C:\Windows\ o C:\Windows\system32

-Puedes aprovecharte tambien de un bug del regedit.exe que consiste en que las claves y valores con el nombre de mas de 200 caracteres no se muestran. Aunke si que se muestran en otros programas como en el msconfig.exe y otros programas editores del registro.

-Yo recomiendo usar el método "Shell", "Userinit" o "Scripting" ya que son los mas discretos y faciles de usar. "Shell" y "Userinit" tienen la ventaja de que funcionan en modo a prueva de fallos y "Scripting" la ventaja que permite que la aplicación se ejecute como "SYSTEM", suelen pasar desapercibidos. El método ActiveX sería el 4º en mi lista de preferidos. El metodo policies sería el 5º.

-Es recomendable que uses variables de entorno. Recuerda que la ruta de Windows normalmente es "C:\Windows" pero no tiene porque serlo en todos los ordenadores, si usas %windir% te resolverá esta ruta aunque la unidad sea "D:" por ejemplo. Por poner un ejemplo, imaginate que mi ruta de Windows es "D:\Windows.0" (que la es realmente en uno de mis ordenadores), pues si usas el método "Userinit" y pones "C:\Windows\system32\userinit.exe,tuprograma.exe" pues me estropearás el arranke, y sin embargo si me pones "%windir%\system32\userinit.exe,tuprograma.exe" funcionará siempre. Existen más variables de entorno, consultalas escribiendo "set" en la consola de Windows (cmd.exe). Por ejemplo %programfiles% resuelmve el directorio de archivos de programa, que puede ser "C:\Program files" por ejemplo.

-Cuidado con el método "Shell" y "Userinit", es importante que nunca borres los valores "Explorer.exe" y "C:\Windows\system32\userinit.exe" de estas claves respectivamente, solo añade una coma (y un espacio en caso del método "Shell") y añade mas programas, pues si borras esos valores no se ejecutaran los procesos fundamentales del Windows XP explorer.exe y userinit.exe.

----------------------------------------------------------



Esto es todo, espero que os sirva de ayuda. Si alguien sabe algun otro metodo que lo ponga. Yo soy el único autor de este manual, lo he creado yo, no he copiado nada de nadie. Puede que este documento tenga errores, si alguien los ve que los diga. Acepto todas las sugerencias. Si tienen algun problema posteenlo aqui y yo os ayudaré en lo que pueda

Un saludo ;) ;) ;)
#73
Software / grabadoras
12 Octubre 2006, 00:05 AM
Que os parecen estas grabadoras?:

PIONEER 111D NEGRA - 36,10€ en APP
LITE-ON DVD-R/+RW SHW-16H5S 16X DL LS BULK NEGRA - 39,44€ en PC-BOX