He intentado ForceBindIP, pero tiene una desventaja significativa: no afecta a los hijos de la aplicación que estoy tratando de vincular, solo afecta a la aplicación misma. Tampoco puede forzar a una aplicación a ejecutarse siempre a través de una interfaz específica, debe ejecutarse forcebindip.exesiempre. Se convierte en un problema con aplicaciones como League of Legends donde el árbol de procesos se ve así:

El lanzador ejecuta el parche, el parche ejecuta el cliente, etc. Solo puedo afectar al padre de todos estos procesos en el árbol, por lo que el juego real no está vinculado a la interfaz que quiero, lo que hace que esta aventura no tenga sentido.
¿Existe una alternativa más moderna a ForceBindIP para Windows 7? Hay muchas preguntas similares a esta en este sitio, pero en su mayoría son antiguas. Tal vez ahora hay una mejor manera de resolver este problema?
Mi idea actual es hacer lo siguiente:
Configure el servidor local 3proxy vinculado a la interfaz deseada.
Ejecute el juego a través de Proxifier o un software similar configurado para ejecutarse a través de ese proxy local.
No estoy seguro de si eso funcionará, pero incluso si lo hace, parece una solución subóptima. ¿Ustedes tienen alguna idea mejor?
Editar: Mi idea no funcionó :(
Edición 2: Básicamente, lo que intento lograr es vincular algunas aplicaciones a una interfaz normal, mientras se ejecuta VPN. La razón es que necesito conectarme a través de VPN la mayor parte del tiempo, pero algunas aplicaciones (como los juegos) no funcionan correctamente de esta manera, debido a un mayor ping y otros problemas.

LolClient.exe? EsLolClient.exeunx86ox64exe? Estoy jugando con un inyector dll de terceros y tal vez pueda ayudarte, pero necesito más información.BindIp.dlles de 32 bits, por lo que no funcionaría con procesos de 64 bits.Respuestas:
Actualizar
Descubrí que ForceBindIp de hecho está pasando parámetros a los ejecutables llamados. Simplemente omite el primer parámetro . Así que modifiqué mi script para usarlo en
ForceBindIp.exelugar del inyector personalizado y ahora parece que todos los problemas coninjectoryexcepciones han desaparecido y todo funciona.Aquí hay pasos y
BindIp.cmdguiones modificados :Instale ForceBindIp como de costumbre
Poner en
BindIp.cmdcualquier lugar de su disco (por ejemploC:\BindIp\BindIp.cmd)BindIp.cmdguión:Luego siga los pasos 2-6 desde abajo.
Introducción
ForceBindIp no puede inyectar automáticamente
BindIp.dlla procesos secundarios yno pasa parámetros a los ejecutables llamados. Pero pude evitar esto mediante el uso de las opciones de ejecución de archivos de imagen en el registro , secuencia de comandos por lotes e inyector dll de terceros . Los detalles están abajo.Teoría
Para usar
BindIp.dllsinForceBindIp.exenecesidad de averiguar cómo se comunican (ForceBindIp.exetiene que pasar la dirección IP para dll de alguna manera).Utilicé IDA gratis y descubrí que
ForceBindIp.execrea una variable de entorno con un nombreFORCEDIPque contiene la direcciónBindIp.dllIP y lee la dirección IP de esta variable cuando se inyecta y ejecuta en el proceso de destino.Para detectar el inicio de la aplicación de destino, podemos agregar una
Debuggerclave en las Opciones de ejecución de archivos de imagen en el registro para este ejecutable:El "depurador" en nuestro caso, será un script por lotes, que establecerá
FORCEDIPvariables y lanzará el inyector dll inyector. Inyector comenzará el proceso, pasará los argumentos de la línea de comandos e inyectaráBindIp.dll.Práctica
Cree una carpeta en algún lugar (
C:\BindIppor ejemplo) y ponga esos tres archivos en ella:BindIp.dllBindIp.cmdBindIp.cmdguión:LolClient.exe) para el ejecutable de destino enHKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\Agregue valor de cadena a esta clave:
DebuggerC:\BindIp\BindIp.cmdOtorgue
Userspermisos completos sobre esta clave (el script deberá modificarla en cada lanzamiento). Debe tener un aspecto como este:Establecer la dirección IP requerida en
BindIp.cmdRepita los pasos 3 y 4 para cada archivo ejecutable que desea bind (
rad_user_kernel.exe,LolLauncher.exe,LolPatcher.exe, etc.).Ahora, cada vez que inicie un ejecutable que tenga la entrada de registro correspondiente, el
BindIp.cmdscript se iniciará y vinculará este programa a la dirección IP deseada.Conclusión
Probé esto en mi computadora portátil con Windows 8.1 x64 y pude vincular con éxito varios programas ( AIMP 2 , BersIRC , Opera 12.4 ) a un adaptador Ethernet o WiFi utilizando esta técnica. Lamentablemente
BindIp.dlles de 32 bits, por lo que no funcionaría con procesos de 64 bits.fuente
injectoryveces tiene problemas con la--argsopción. No estoy seguro de por qué.--argsninguna aplicaciónForceBindIprealidad puede pasar parámetros, vea mi respuesta actualizada.¡He encontrado que HideMyAss! El cliente VPN tiene la función Secure IP Bind que permite vincular aplicaciones a la interfaz VPN:
Lo he mirado y se basa en un dll de proveedor de servicios por capas (LSP) personalizado y una interfaz COM para controlarlo. Y se puede (ab) usar sin instalar el cliente VPN de HideMyAss.
Instalación de HideMyAss 'Secure IP Bind
bincarpeta en el instalador desempaquetadoCopie esos tres archivos a una carpeta en su disco (
C:\HMA_Bind)Poner
Install.cmdyUninstall.cmda esta carpetaInstall.cmd
Desinstalar.cmd
Install.cmdcomo administrador . Para verificar que la instalación se realizó correctamente, puede usar Autoruns :Windows PowerShell ISE (x86)oWindows PowerShell (x86), porque el componente COM es de 32 bits.Primero, debe crear un nuevo objeto Secure IP Bind:
Y luego puedes llamar a sus métodos:
Desinstalar el enlace seguro de IP de HideMyAss
Uninstall.cmdcomo administrador , verifique que la desinstalación se haya realizado correctamente con AutorunsEjemplos:
Tenga en cuenta que debe crear un objeto COM seguro de enlace IP solo una vez por sesión de PowerShell. Los ejemplos a continuación suponen que los ejecuta en una nueva sesión de PowerShell, por lo que siempre crean un nuevo objeto COM.
Configure la IP para enlazar, agregar
firefoxa aplicaciones enlazadas, habilitar el enlace.Habilitar globalmente el enlace de IP:
Desactivar globalmente el enlace de IP:
Eliminar la aplicación de la lista (detener el enlace para esta aplicación):
Notas
Debido a que Secure IP Bind se implementó como un proveedor de servicios de capas personalizado (LSP) dll, se aplican esas limitaciones:
He probado este método con varias aplicaciones con resultados mixtos: las aplicaciones de 32 bits funcionan, pero no de 64 bits, es decir, pude vincular el Explorador de 64 bits (probablemente porque sus procesos de pestañas son de 32 bits por defecto), pero no el navegador Waterfox de 64 bits u otras aplicaciones de 64 bits.
fuente
Se me ocurren dos soluciones al problema:
Cree una máquina virtual para ejecutar el juego, que solo usa un adaptador de red.
Si conoce el rango de direcciones IP que usa el juego, construya una ruta de red que dirija este rango hacia la puerta de enlace del adaptador específico.
Puedo agregar más información una vez que conozca sus preferencias. Por ejemplo, en el punto 1, su producto de máquina virtual preferido.
fuente
Supongamos que tiene dos cuentas de usuario de Windows:
HomeUserVpnUserCuando inicia sesión en la
VpnUsercuenta, puede ejecutar aplicaciones (particularmente juegos que mencionó) comoHomeUser(Shift + RMB en el archivo ejecutable -> Ejecutar como otro usuario) y esta aplicación ejecuta sus procesos secundarios comoHomeUser. Las aplicaciones que ejecutará de forma estándar (accesos directos, doble clic en el archivo ejecutable) serán propiedad deVpnUser.Al definir las conexiones de red de Windows, tiene una opción para permitir que otros usuarios usen esta conexión. Asumamos que definiste:
HomeNetworkexclusivamente paraHomeUserVpnNetworkexclusivamente paraVpnUsery para simplificar:
Yo supongo que las aplicaciones:
VpnUserdebe usar soloVpnNetwork.HomeUserdebe usar soloHomeNetwork.Si mi especulación es cierta, entonces cuando inicie sesión en la
VpnUsercuenta, las aplicaciones usaránVpnNetwork, cuando las aplicaciones ejecutadasHomeUserdesde laVpnUsercuenta deberían usarHomeNetwork.fuente
Se puede usar forcebindip.exe pero debe codificar una aplicación auxiliar (ninguna otra opción).
La aplicación carga XXX.ini que contiene ie
La aplicación se ejecuta
C: \ path1 \ app_to_run.exe 192.168.10.21 C: \ path1 \ app_to_run.exe Saved_Command_line
La aplicación finaliza.
PROBLEMA: ForcebindIP no pasa parámetros al programa llamado. luego, si necesita pasar parámetros a app_to_run.exe, necesita un enfoque más evolucionado donde XXX.exe crea un archivo por lotes que incluye app_to_run.exe y los parámetros pasados, este lote se llama en lugar de app_to_run.exe en el punto 4.
También puede echar un vistazo a algunas aplicaciones GUI que envuelven ForcebindIP. Algunos de ellos pueden trabajar con más de una aplicación, pero no hacen lo que necesita.
https://www.raymond.cc/blog/bind-windows-application-to-specific-network-adapter-with-forcebindip/
fuente