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 - Robokop

#61
Por favor postea en el debido foro para que puedan encontrar donde es debido ya que estas hablando de .NEt y eso va en el subforo de .net :
http://www.elguille.info/colabora/puntoNET/PabloTilli_SocketsVBNET.htm
hay tienes info de como trabajar con sockets
#62
De esto ya se ha hablado muchas veces sobre el manifest y se ha dado muchas explicaciones.
http://foro.elhacker.net/index.php/topic,120000.0.html
http://foro.elhacker.net/index.php/topic,130954.0.html
No se porque pero tengo un leve presentimiento que querias mostrar tu site web ¬¬
#63
comprate un libro de visual C sharp donde se hablen de conceptos basicos pero tambien se resalte bases de datos de ADO.Net y SQL ya veras cual de esas 2 te conviene mas depende de tus preferencias.
Sea cual sea las 2 son muy faciles de utilizar ya que visual studio es un IDE inteligente y te permite hacerlo de manera rapida y autonoma.
#64
El programa lo que hace es la funcion de un editor de un server como en los troyanos , que en lugar de configurar un puerto predeterminado para la conexion dejas que otra la aplicacion lo decida ya que se supone que el servidor no debe de interactuar para que se configure en la otra computadora .
Lo del editor hexadecimal , es para generar una aplicacion idependiente de otra pero en una sola , asi que lo que tienes que hacer con el editor es colocar los datos del server al final del cliente y guardarlo como ejecutable entonces con el codigo que coloque lo va a generar.

CitarLeyendo el código... es imposible saber que hace el programa.
Para eso esta la explicacion.

Si no comprendes el funcionamiento baja el proyecto dentro viene el generador del server para que veas como funciona.



Editado , note que al tener que recojer muchos datos era muy laborioso y problematico asi que estuve buscando en muchos NameSpaces para encontrar otro método mucho mas facil y corto.

Edit Server 2 (Mas Fácil y corto)

Cliente

Antes en el cliente teniamos que implementar una funcion para añadir espacios antes pero ya no porque Ahora vamos a prefedinir esa longitud sin caracteres el codigo es :


Imports Microsoft.VisualBasic.Compatibility
Public Class Form1
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim port As New VB6.FixedLengthString(5)
        Dim pass As New VB6.FixedLengthString(20)
        port.Value = TextBox1.Text
        pass.Value = TextBox2.Text
        FileOpen(1, "Vamos.exe", OpenMode.Binary)
        FilePut(1, port.Value, LOF(1) + 1)
        FilePut(1, pass.Value, LOF(1) + 1)
        FileClose(1)
    End Sub
End Class


En este se va a editar el server cuando se haca click en el botón
Dim port As New VB6.FixedLengthString(5)
        Dim pass As New VB6.FixedLengthString(20)

Declaramos la varibles como objetos y usamos un metodo primitivo de vb6 para definir la longitud que va a llevar :
port es de 5 caracteres y pass de 20.
Con este codigo si el usuario escribe de mas no pasa nada ya que elimina los caracteres restantes automaticamente.

     port.Value = TextBox1.Text
        pass.Value = TextBox2.Text

Como lo creamos a un objeto tenemos que usar la propiedad value o valor , para referenciarlos con las cajas de texto.

FileOpen(1, "Server.exe", OpenMode.Binary)
1 es la declaracion que define el archivo , server.exe es el nombre del programa que vamos a editar y openmode.binary el modo que lo abrimos que es binario.

FilePut(1, port.Value, LOF(1) + 1)
Ponemos los datos al final del archivo pero separado por un espacio para eso es ese + 1
  FileClose(1)
Cerramos el flujo.

Server

Public Class Form1
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim port As New VB6.FixedLengthString(5)
        Dim pass As New VB6.FixedLengthString(20)
    FileOpen(1, My.Application.Info.AssemblyName & ".exe", OpenMode.Binary, OpenAccess.Read)
        FileGet(1, port.Value, LOF(1) - 24)
        FileGet(1, pass.Value)
        FileClose(1)
        TextBox1.Text = Trim(port.Value)
        TextBox2.Text = Trim(pass.Value)
    End Sub
End Class


Dim port As New VB6.FixedLengthString(5)
        Dim pass As New VB6.FixedLengthString(20)

Definimos los espacios de port y pass , tienen que ser la misma cantidad que los que difinimos en el cliente

FileOpen(1, My.Application.Info.AssemblyName & ".exe", OpenMode.Binary, OpenAccess.Read)
Nos abrimos a nosotros mismos en modo binario

FileGet(1, port.Value, LOF(1) - 24)
fileget nos permite tomar valores, port.value son los espacios predefinidos y lof(1) nos permite llegar al final del archivo pero -24 espacios que son los que guardamos , es 24 porque 20+5-1=24 es-1 siempre se le resta menos 1.

FileGet(1, pass.Value)
Como ya definimos desde donde iva a empezar ya no es necesario restar los -24.
Se delimita gracias a los valores que apartamos en las declaraciones.

FileClose(1)
        TextBox1.Text = Trim(port.Value)
        TextBox2.Text = Trim(pass.Value)

Cerramos el flujo y quitamos los espacios sobrantes.

Descarga de proyecto: Aqui
#65
Buéno por lo visto es mi computadora o el compilador de visual basic esta jodido  :P .
Buscando en las propiedades del NameSpace my. encontre otro metodo pero sigue igual.
CitarConsole.WriteLine(My.Computer.Info.OSPlatform)
#66
Obvio que si lo hice si no , no posteria el codigo.....
El codigo si es 100% funcional ya tu lo tienes que hacer funcionar.
Citarpor lo que se ve es un poco largo y complicado
Si sigues con esa ideologia nunca vas a llegar a hacer algo grande  :-\.
suerte
#67
Si te interesa en .NET http://foro.elhacker.net/index.php/topic,131538.0.html
una mini guia de como hacer un generador de server.
Para hacerlo en el 6 :
Necesitas un editor hexadecimal , crear el server ver su peso, en el archivo que va a generar el otro lo tienes que programar para que se lea como binario tome los datos del otro archivo a generar y los copie en otro nuevo.
por ejemplo en el que va a generar el otro archivo dentro de un boton o en el form load pones este code

Dim primero As String
Dim segundo As String


Open App.Path & "\" & App.EXEName & ".exe" For Binary Access Read As #1 'Nos abrimos a nostros mismos como binario para obtener datos.

primero = Space(LOF(1) - 111)'Donde dice 111 lo tienes que cambiar por el peso de la aplicacion que vas a generar para ello la compilas antes y ves su peso.
'es LOF(1) para ir al final del archivo y separar los datos
segundo = Space(111)'Obtienes los valores de la aplicacion a generar
Get #1, , primero     'Aqui obtienes los datos
Get #1, , segundo
Close #1

Open App.Path & "\" & "Programa_a_generar.exe" For Binary As #2
Put #2, , segundo
Close #2


Y asi lo generas Ahora compilas ese proyecto y compilas la otra aplicacion que vas a generar , bajas un editor hexadecimal abre s esta aplicacion que acabamos de generar y abres la aplicacion que quieres generar copias los datos del segundo y lo colocas al final del primer archivo que es el generador y listo ya genera la otra aplicacion independiente.
Gracias a WarGhost porque el me dio la idea del metodo de como hacerlo con un editor hexadecimal.

PD:Tambien lo puedes hacer integrando un script de recursos que es mas o menos parecido a este metodo.

Salu2
#68
Necesitas estudiar sobre el protocolo de messenger es un proceso largo del login y tienes que tener conocimientos del uso de cadenas para poder separar y enviar los datos recibidos.
mira por aqui --> http://www.hypothetic.org/docs/msn/general/overview.php
#69
Editores de server y server builder
En esta mini guía voy a explicar o mas bien a dar ideas para crear editores de Server y generadores de Server para sus proyectos Cliente-Servidor.
Estos editores ayudan haciendo ver un poco mas profesional el trabajo realizado, aquí se va a usar la versión visual basic.Net 2005 Profesional , pero la Express servirá perfectamente

Todas estas ideas las saque de métodos que se usaban en VB6 ya notaran que son parecidas ,las ideas originales  las saque de la versión 6 no son mías pero de la .Net si .

Empezamos creando un proyecto grafico con 2 textbox y un commandButton.
Eso es para el editor




Algo así mas o menos debemos de dejar.
Luego ustedes podrán añadir mas opciones de mientras dejaremos esas para el ejemplo.
Creamos otro proyecto al que llamaremos Server ,igual que el anterior colocamos 2 textbox pero esta vez sin el comandButton.

Para poderlo editar perfectamente sin que se dañe el server , tenemos que abrirlo de forma binaria y colocar los datos hasta el Final del archivo.
Después cuando en el server debemos de leernos en forma binaria para obtener los datos.

Comencemos con el Edtor:

Primero importamos el nameSpace IO para poder trabajar con flujos de entrada y salida y de forma binaria.
Después en el form dentro del evento on click del commandButton colocamos este code:

Imports System.IO
Public Class Form1
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Try
            Dim fs As FileStream
            Dim bw As BinaryWriter
            Dim directorio As String = "server.exe"
            fs = New FileStream(directorio, FileMode.Append, FileAccess.Write)
            bw = New BinaryWriter(fs)

            Dim puerto As String = TextBox1.Text
            Dim pass As String = TextBox2.Text

            Dim i As Integer
            For i = puerto.Length + 1 To 5
                puerto = " " + puerto
            Next
            Dim a As Integer
            For a = pass.Length + 1 To 5
                pass = " " + pass
            Next
            bw.Write(puerto & "\" & pass)
            bw.Close() : fs.Close()
        Catch ex As IOException
            Console.WriteLine("Error:" + ex.Message)
        End Try
    End Sub

End Class


Primero declaramos Fs como flujo de entrada y salida.
Bw lo declaramos para poder escribir en forma binaria la declaración binaryWriter nos permite eso.
Directorio es el lugar donde se encuentra el server.

Aquí:

    fs = New FileStream(directorio, FileMode.Append, FileAccess.Write)

Creamos un objeto con la variable fs ,el objeto es del tipo filestream por lo tanto nos permite la entrada y salida de datos ,en la primera posición va la aplicación a editar en ese caso server.exe ya declarado, después filemode nos permite elegir de que modo se va a abrir en este caso es append es decir al final del archivo para no dañar el contenido y por ultimo el modo de acceso que es para escribir.

CitarDim puerto As String = TextBox1.Text
            Dim pass As String = TextBox2.Text
Declaramos el valor de puerto y pass corresponden a las cajas de texto.

CitarDim i As Integer
            For i = puerto.Length + 1 To 5
                puerto = " " + puerto
            Next
Esta parte es muy importante y de aquí depende su funcionamiento:
Tenemos que tener contados y separados los caracteres para que cuando programemos el servidor no coma datos que no pertenecen por eso debemos de dejar un espacio predefinido.
Aquí estamos dejando un espacio para 5 caracteres, si no pusiéramos este código tendríamos que colocar exactamente 5 caracteres para que no diera error , así que esta parte nos permite poner cualquier cantidad entre 0 y 5  en cada caja de texto , si escribimos demás también nos dará un error para ello debemos de aumentar la cantidad.
Asi que contamos la longitud de la variable puerto y la llevamos  hasta 5 aumentado un espacio atras de la variable para que no de error , posteriormente quitaremos esos espacios en el server.

      Dim a As Integer
            For a = pass.Length + 1 To 5
                pass = " " + pass
            Next

Hacemos lo mismo que en el anterior codigo.
  bw.Write(puerto & "\" & pass)
            bw.Close() : fs.Close()

Procedemos a escribir los datos separados por una diagonal para posteriormente podelos separar.
y cerramos los flujos.
  Catch ex As IOException
            Console.WriteLine("Error:" + ex.Message)
        End Try

Si hay un error atrapamos la exepción y mostramos el mensaje de error evitando un cierre de programa.


SERVER

En el server ira el siguiente codigo:
CitarImports System.IO
Public Class Form1
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim br As BinaryReader '//Declaramos variable para abrir como binario//
        Dim nombre As String = "server.exe" '//fila a abrir
        Dim fs As FileStream '/Variable para flujo de entrada

        fs = New FileStream(nombre, FileMode.Open, FileAccess.Read) '/Condiciones flujo de entrada
        br = New BinaryReader(fs) '//Declaramos en binary reader condiciones de fs

        Dim puerto As String 'Variable en donde se almacena la info
        br.BaseStream.Seek(-12, SeekOrigin.End) 'nos pocicionamos al final menos 12
        puerto = br.ReadString '//Leemos 12 caracteres que equivale a 5 en un lado y 5 en otro
        'Se desperdicia -1 asi que para 10 seria -11 pero mas el "\".
        Dim lugar As Integer '//Lugar donde se encuentra el punto clave a separar.
        lugar = InStr(puerto, "\") 'Buscamos el punto clave y almacenamos su poscicion en lugar.
        Dim str2 As String 'Declaramos una variable para partir la original.
        str2 = puerto.Substring(lugar) 'La partimos desde el punto clave
        Dim str As String
        str = puerto.Remove(lugar - 1) 'Almacenamos en str lo removido despues del punto clave -1_
        'ese menos 1 es del "\"(la diagonal)
        TextBox1.Text = str.Trim 'Quitamos espacios
        TextBox2.Text = str2.Trim

        fs.Close() : br.Close() 'Cerramos los flujos.
    End Sub
End Class

Aqui ya tiene comentarios asi que solamente detallo las partes imporantes:

Citarbr.BaseStream.Seek(-12, SeekOrigin.End)
        puerto = br.ReadString
        Dim lugar As Integer
        lugar = InStr(puerto, "\")
aqui usamos el objeto br y la propiedad baseStream para poder acceder a seek , en accesos aleatorios podemos usar Seek directamente pero como estamos en binario nos basamos de baseStream para abrirlo.

Seek nos permite posicionarnos en cualquier parte de un fichero SeekOrigin.End nos permite colocarnos al final del archivo es -12 porque:
5+5 de los datos de las cajas de texto van 10 , + 1 de la diagonal ("\") y menos 1 que siempre se debe de restar ese uno y van 12, si quisiéramos que el usuario pudiera introducir 6 caracteres en cada caja tendríamos que poner -14 en lugar de -12 y así sucesivamente dependiendo de las necesidades del programa.
Recuerden que si van a aumentar aquí tendrían que hacerlo también en el servidor para registrar mas espacios en caso que no se completaran los caracteres.

y fin del editor de server ahora ya podemos hacer las pruebas.



Constructor del server
Este nos permite generar el servidor a partir del ejecutable .
El codigo del editor esta vez sería así:
Imports System.IO
Public Class Form1
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        serverbuild()
        Try
            Dim fs As FileStream
            Dim bw As BinaryWriter
            Dim directorio As String = "server.exe"
            fs = New FileStream(directorio, FileMode.Append, FileAccess.Write)
            bw = New BinaryWriter(fs)

            Dim puerto As String = TextBox1.Text
            Dim pass As String = TextBox2.Text

            Dim i As Integer
            For i = puerto.Length + 1 To 5
                puerto = " " + puerto
            Next
            Dim a As Integer
            For a = pass.Length + 1 To 5
                pass = " " + pass
            Next
            bw.Write(puerto & "\" & pass)
            bw.Close() : fs.Close()
        Catch ex As IOException
            MsgBox("Error:" + ex.Message)



        End Try
    End Sub

    Sub serverbuild()
        Dim cliente As String
        Dim server As String
        FileOpen(1, My.Application.Info.DirectoryPath & "\" & My.Application.Info.AssemblyName & ".exe", OpenMode.Binary, OpenAccess.Read)
        cliente = Space(LOF(1) - 28672)
        server = Space(28672)
        FileGet(1, cliente)
        FileGet(1, server)
        FileClose(1)
        FileOpen(2, My.Application.Info.DirectoryPath & "\" & "server.exe", OpenMode.Binary)
        FilePut(2, server)
        FileClose(2)
    End Sub


Lo que cambia es que en la propiedad del click llamamos a serverBuild antes  y creamos un nuevo subprocedimiento que es el que llamamos :
CitarFileOpen(1, My.Application.Info.DirectoryPath & "\" & My.Application.Info.AssemblyName & ".exe", OpenMode.Binary, OpenAccess.Read)
Nos abrimos a nostros mismos , el 1 es un identificador como #1 que declarabas en visual basic  y nos abrimos en modo binario para leer.

Citarcliente = Space(LOF(1) - 28672)
        server = Space(28672)
Almacenamos en cliente el espacio que resta despues de 28672 bits que es el peso del server, para saberlo , antes compilamos el server , vamos a propiedades y vemos el peso ese peso lo remplazamos por 28672 , LOF(1) nos permite llegar al final de un archivo.
Despues hacemos lo mismo con server pero esta vez el espacio restante que es lo que pesa el.


  FileOpen(2, My.Application.Info.DirectoryPath & "\" & "server.exe", OpenMode.Binary)
        FilePut(2, server)

Creamos el directorio server.exe en modo binario y colocamos los datos que obtuvimos en server.

En el server es el mismo codigo y la misma explicación.

Ahora para poder generar un solo ejecutable tenemos que descargar un editor hexadecimal(Por cierto quiero dar un parentesis para agradecer a WarGhost que el me dio la idea del generador del server en Visual Basic 6 yo la pase al .Net para ayudar a los que han cambiado a este lenguaje).

El editor hexadecimal es para pegar los datos del server y el cliente , para dejar uno solo.
Primero debemos de dejar los datos del Cliente y luego los del server , así que abrimos con el editor el Server y copiamos todos sus datos .
Luego abrimos el editor y nos vamos hasta al final hasta el ultimo cero que haya y lo pegamos .
Por ultimo guardamos lo editado con extensión .exe y listo ya
lo tenemos.

Creo que no van a quedar tantas dudas pues lo explique muy especificamente , pero cualquier cosa dila .
Seguro que con esto van a surgir nuevas ideas , que van a acortar muchisimo mas el codigo y lo van a hacer un poco mas facíl eso ya esta en su imaginación.

Por si se llegaran a presetar dificultades dejo los proyectos , junto con el ServerBuilder ya Compilado
http://mx.geocities.com/esteban_7_21/ProyectoNet.zip

Salu2
#70
xDD , imagino que debe de haber mas ....
Hice todo igual y yo no escucho la musica  :-\