Autor
|
Tema: Cerrar un puerto, se puede? (Leído 4,812 veces)
|
barzata
Desconectado
Mensajes: 14
|
Hola, es muy dificil bloquear un puerto que ya conozco con winsock o algo asi?? o alguna manera de que no le lllegue nada a ese puerto. Es para evitar que funcione una aplicacion que sé que funciona en el puerto tal. Gracias!
|
|
|
En línea
|
|
|
|
BlackZeroX
Wiki
Desconectado
Mensajes: 3.158
I'Love...!¡.
|
. Si, es posible usa el buscador puble dicho codigo hace ya como 3 años atras!¡.
Dulce Infierno Lunar!¡.
|
|
|
En línea
|
The Dark Shadow is my passion.
|
|
|
Elemental Code
Desconectado
Mensajes: 622
Im beyond the system
|
Bajo la regla de que dos apps no pueden usar el mismo puerto al mismo momento se me ocurre algo muuuuuuy bol** pero que capas que anda.
pon algo a andar en el puerto que quieras un winsock que se mande 1 de data para aca y para alla
ocupa el puerto y clin caja.
|
|
|
En línea
|
I CODE FOR $$$ Programo por $$$ Hago tareas, trabajos para la facultad, lo que sea en VB6.0 Mis programas
|
|
|
BlackZeroX
Wiki
Desconectado
Mensajes: 3.158
I'Love...!¡.
|
. Solo aplica para escuchas, no se puede escuhcar mas de 1 instancia por puerto, pero SI se puede escuchar y conectar envarias instancias por puerto....
Dulces Lunas!¡.
|
|
|
En línea
|
The Dark Shadow is my passion.
|
|
|
BlackZeroX
Wiki
Desconectado
Mensajes: 3.158
I'Love...!¡.
|
. Hace mucho que lo hice... aun no lo he mejorado te pongo tal cual esta en otros post. . ' ' ///////////////////////////////////////////////////////////// ' // Autor: BlackZeroX ( Ortega Avila Miguel Angel ) // ' // // ' // Web: http://InfrAngeluX.Sytes.Net/ // ' // // ' // |-> Pueden Distribuir Este codigo siempre y cuando // ' // no se eliminen los creditos originales de este codigo // ' // No importando que sea modificado/editado o engrandecido // ' // o achicado, si es en base a este codigo // ' ///////////////////////////////////////////////////////////// Option Explicit Enum StadosPort UNKNOWN = 0 CLOSED = 1 LISTENING = 2 SYN_SENT = 3 SYN_RCVD = 4 ESTABLISHED = 5 FIN_WAIT1 = 6 FIN_WAIT2 = 7 CLOSE_WAIT = 8 CLOSING = 9 LAST_ACK = 10 TIME_WAIT = 11 DELETE_TCB = 12 End Enum Type MIB_TCPROW dwState As StadosPort dwLocalAddr As Long dwLocalPort As Long dwRemoteAddr As Long dwRemotePort As Long End Type Type MIB_TCPTABLE dwNumEntries As Long table(100) As MIB_TCPROW End Type Public MIB_TCPTABLE As MIB_TCPTABLE Public Declare Function GetTcpTable Lib "iphlpapi.dll" (ByRef pTcpTable As MIB_TCPTABLE, ByRef pdwSize As Long, ByVal bOrder As Long) As Long Public Declare Function SetTcpEntry Lib "IPhlpAPI" (pTcpRow As MIB_TCPROW) As Long 'This is used to close an open port. Public Declare Function ntohs Lib "WSOCK32.DLL" (ByVal netshort As Long) As Long Private Declare Function CreateWindowEx Lib "user32" Alias "CreateWindowExA" (ByVal dwExStyle As Long, ByVal lpClassName As String, ByVal lpWindowName As String, ByVal dwStyle As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hWndParent As Long, ByVal hMenu As Long, ByVal hInstance As Long, lpParam As Any) As Long Private Declare Function SetTimer Lib "user32" (ByVal hwnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long) As Long 'Private Declare Function KillTimer Lib "user32" (ByVal hwnd As Long, ByVal nIDEvent As Long) As Long Private Declare Function WaitMessage Lib "user32" () As Long Private Const PS As String = "80,1863,8080,443,15690" 'Edita estos Puertos Private hwnd As Long Sub main() hwnd = CreateWindowEx(0, "STATIC", 0, 0, 0, 0, 100, 100, 0, 0, App.hInstance, 0&) SetTimer hwnd, 0, 2000, AddressOf TimerProc Do DoEvents WaitMessage Loop End Sub Public Sub TimerProc(ByVal hwnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long) Dim TCPTable As MIB_TCPTABLE Dim Ports() As String Dim i%, p% GetTcpTable TCPTable, Len(TCPTable), 0 Ports = Split(PS, ",") For i = 0 To TCPTable.dwNumEntries - 1 For p = 0 To UBound(Ports) - 1 If Ports(p) = ntohs(TCPTable.table(i).dwRemotePort) Then GoTo Salto: ElseIf (p = Val(UBound(Ports) - 1)) Then TCPTable.table(i).dwState = DELETE_TCB SetTcpEntry TCPTable.table(i) Debug.Print ntohs(TCPTable.table(i).dwRemotePort) GoTo Salto: End If Next p Salto: Next i End Sub
|
|
|
En línea
|
The Dark Shadow is my passion.
|
|
|
barzata
Desconectado
Mensajes: 14
|
faa no te caso una de todo eso jaja, voy a tener que estudiar el tema pense que era mas facil, una pregunta mas, usan el api de winsock porque con el control que viene en el VB no te deja hacer mucho? o por que razon? Gracias muchachos
|
|
|
En línea
|
|
|
|
BlackZeroX
Wiki
Desconectado
Mensajes: 3.158
I'Love...!¡.
|
. En el codigo que te puse no es nada del Winsock es solo el registro TCP/IUp del Sistema. solo se manipula esta estructura y con eso se hace todo... con u n Hook al api quedaria mas chulo el codigo... el codigo asi como te lo puse tiene fugaz de memoria, y cosas ques epueden obviar pero bueno!¡.
y se usan las apis del winsock solamente para crear Sock's Tipo RAW y para quitar dependencias a los programas mas que nada, o por simplisidad!¡.
Dulces Lunas!¡.
|
|
« Última modificación: 20 Octubre 2010, 04:44 am por BlackZeroX▓▓▒▒░░ »
|
En línea
|
The Dark Shadow is my passion.
|
|
|
barzata
Desconectado
Mensajes: 14
|
. En el codigo que te puse no es nada del Winsock es solo el registro TCP/IUp del Sistema. solo se manipula esta estructura y con eso se hace todo... con u n Hook al api quedaria mas chulo el codigo... el codigo asi como te lo puse tiene fugaz de memoria, y cosas ques epueden obviar pero bueno!¡.
y se usan las apis del winsock solamente para crear Sock's Tipo RAW y para quitar dependencias a los programas mas que nada, o por simplisidad!¡.
Dulces Lunas!¡.
gracias maestro, lo voy a estudiar!!
|
|
|
En línea
|
|
|
|
barzata
Desconectado
Mensajes: 14
|
. En el codigo que te puse no es nada del Winsock es solo el registro TCP/IUp del Sistema. solo se manipula esta estructura y con eso se hace todo... con u n Hook al api quedaria mas chulo el codigo... el codigo asi como te lo puse tiene fugaz de memoria, y cosas ques epueden obviar pero bueno!¡.
y se usan las apis del winsock solamente para crear Sock's Tipo RAW y para quitar dependencias a los programas mas que nada, o por simplisidad!¡.
Dulces Lunas!¡.
gracias maestro, lo voy a estudiar!! Molesto otra vez, creo entender la logica del codigo, supongo q el puerto lo cierra en las lineas: TCPTable.table(i).dwState = DELETE_TCB SetTcpEntry TCPTable.table(i) mi pregunta es, que le deberia cambiar para volver a abrir el mismo puerto q cerre?
|
|
|
En línea
|
|
|
|
BlackZeroX
Wiki
Desconectado
Mensajes: 3.158
I'Love...!¡.
|
. pues eso es para CERRAR CUALQUIER puerto que desees de cualquier puerto, y esactamente ashy solo se pone el estado... pero en si aun hay no se cierra se cierra hasta que se pasa la estructura ya configurada en la api SetTcpEntry cuando se pasa la estrucra a esta api se actualiza la informacion]!¡.
Se me ocurre que el programa que abrio el puerto debera de volver a abrirlo den su forma habitual... o quisas tambien solo cambia el estado... no es gran cosas hay trae una numeracion de los estados disponibles de los Socket.
Ducle Lunas!¡.
|
|
|
En línea
|
The Dark Shadow is my passion.
|
|
|
|
|