Autor
|
Tema: Cerrar un puerto abriendole otro ensima O.o? (Leído 2,080 veces)
|
Elemental Code
Desconectado
Mensajes: 622
Im beyond the system
|
hola Durante la codificacion de Athenea me di cuenta que bloquear los puertos tambien podia ser una buena idea. Despues de googlear como mogolico no encontre ni cuarto de cerrar "CERRAR" posta un puerto de vb Pero como tambien se que solamente un programa puede usar un puerto al mismo tiempo Pregunto Es factible que yo ponga un programa a escuchar en un puerto que utilizaria un programa X y todos los paquetes los rechazo o los mando a volar y dicho programa no funcionaria. me explico? seria asi para darle un toq de graficos asi seria el funcionamiento normal Salida de datos Programa 1 -----> Puerto Y -------> Servidor Z
Entrada de datos Programa 1 <----- Puerto Y <------ Servidor Z Y asi lo que quiero hacer. Salida de datos (Bloqueada por ATHENEA monitoreando el puerto) Programa 1 ----->ATHENEA ---X Puerto Y Servidor Z
Entrada de datos (Bloqueado por ATHENEA monitoreando el puerto) Programa 1 X---ATHENEA<----- Puerto Y<-----------Servidor Z
|
|
|
En línea
|
I CODE FOR $$$ Programo por $$$ Hago tareas, trabajos para la facultad, lo que sea en VB6.0 Mis programas
|
|
|
raul338
Desconectado
Mensajes: 2.633
La sonrisa es la mejor forma de afrontar las cosas
|
simplemente no creo que te puedas meter como proxy en una conexion ya establecida. Si puedes derivarla antes de que se estableaca (modificando el archivo host x ej, auqnue es algo suicida xd)
Y tampoco creo que se puedan cerrar puertos de otra forma que no sea desde el programa que lo abrio, aunque de eso no estoy seguro.
Sobre si puedes abrir el puerto antes de que el programa lo haga, es dificil. Si el programa habre un puerto local especifico su puedes bloquearlo abriendolo antes. Si lo elige al azar, tendras que actuar como firewall
|
|
« Última modificación: 7 Febrero 2011, 03:38 am por raul338 »
|
En línea
|
|
|
|
BlackZeroX
Wiki
Desconectado
Mensajes: 3.158
I'Love...!¡.
|
. Para cerrar un puerto yo uso siempre lo mismo... aun que ya lo aplique a un Hook y va de peluche!¡. . 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
Temibles Lunas!¡. .
|
|
|
En línea
|
The Dark Shadow is my passion.
|
|
|
|
|