Ich habe ForceBindIP ausprobiert, aber es hat einen erheblichen Nachteil - es wirkt sich nicht auf die untergeordneten Elemente der Anwendung aus, die ich binden möchte, sondern nur auf die Anwendung selbst. Es kann auch nicht erzwingen, dass eine Anwendung immer über eine bestimmte Schnittstelle ausgeführt wird, sondern muss forcebindip.exe
jedes Mal ausgeführt werden. Bei Anwendungen wie League of Legends, bei denen der Prozessbaum folgendermaßen aussieht, tritt ein Problem auf:
Der Launcher führt den Patcher, der Patcher den Client usw. aus. Ich kann nur das übergeordnete Element aller dieser Prozesse im Baum beeinflussen, sodass das eigentliche Spiel nicht an die von mir gewünschte Benutzeroberfläche gebunden ist.
Gibt es eine modernere Alternative zu ForceBindIP für Windows 7? Es gibt viele ähnliche Fragen auf dieser Seite, aber sie sind meistens alt. Vielleicht gibt es jetzt einen besseren Weg, um dieses Problem zu lösen?
Meine aktuelle Idee ist Folgendes:
Richten Sie den lokalen 3proxy-Server ein, der an die gewünschte Schnittstelle gebunden ist.
Führen Sie das Spiel über Proxifier oder eine ähnliche Software aus, die für die Ausführung über diesen lokalen Proxy konfiguriert ist.
Ich bin mir nicht sicher, ob das funktionieren wird, aber selbst wenn, scheint es eine suboptimale Lösung zu sein. Habt ihr bessere Ideen?
Edit: Meine Idee hat nicht funktioniert :(
Bearbeiten 2: Grundsätzlich versuche ich, einige Anwendungen an eine reguläre Schnittstelle zu binden, während VPN ausgeführt wird. Der Grund dafür ist, dass ich die meiste Zeit eine VPN-Verbindung herstellen muss, aber einige Anwendungen (z. B. Spiele) funktionieren auf diese Weise aufgrund von höherem Ping und anderen Problemen nicht ordnungsgemäß.
LolClient.exe
? IstLolClient.exe
einx86
oder einx64
exe? Ich spiele mit einem DLL-Injektor eines Drittanbieters und kann Ihnen vielleicht helfen, aber ich benötige weitere Informationen.BindIp.dll
ist 32-Bit, so würde es nicht mit 64-Bit-Prozessen funktionieren.Antworten:
Aktualisieren
Ich habe festgestellt, dass ForceBindIp tatsächlich Parameter an die aufgerufenen ausführbaren Dateien übergibt. Der erste Parameter wird einfach weggelassen . Deshalb habe ich mein Skript so geändert, dass es
ForceBindIp.exe
anstelle des benutzerdefinierten Injektors verwendet wird. Nun scheinen alle Probleme mitinjectory
Ausnahmen behoben zu sein und alles funktioniert.Hier ist modifizierte Schritte und
BindIp.cmd
Skript:Installieren Sie ForceBindIp wie gewohnt
Stellen Sie
BindIp.cmd
irgendwo auf Ihrem Laufwerk (zBC:\BindIp\BindIp.cmd
)BindIp.cmd
Skript:Befolgen Sie dann die Schritte 2-6 von unten.
Einführung
ForceBindIp kann nicht automatisch
BindIp.dll
in untergeordnete Prozesse einfügen und übergibt keineParameter an die aufgerufenen ausführbaren Dateien. Ich konnte dies jedoch umgehen, indem ich die Ausführungsoptionen für Bilddateien in der Registrierung , im Stapelskript und im DLL-Injektor eines Drittanbieters verwendete . Details sind unten.Theorie
Um
BindIp.dll
ohne zu verwendenForceBindIp.exe
, müssen wir herausfinden, wie sie kommunizieren (ForceBindIp.exe
muss IP-Adresse irgendwie an DLL übergeben).Ich habe IDA free verwendet und festgestellt, dass
ForceBindIp.exe
eine Umgebungsvariable mit einem Namen erstellt wirdFORCEDIP
, der die IP-Adresse enthält undBindIp.dll
die IP-Adresse aus dieser Variablen liest, wenn sie im Zielprozess injiziert und ausgeführt wird.Um den Start der Zielanwendung zu erkennen, können wir einen
Debugger
Schlüssel in den Ausführungsoptionen für Bilddateien in der Registrierung für diese ausführbare Datei hinzufügen :Der "Debugger" in unserem Fall ist ein Batch-Skript, das die
FORCEDIP
Variable setzt und den Injectory- DLL-Injector startet . Injectory startet dann den Prozess, übergibt Befehlszeilenargumente und injiziertBindIp.dll
.Trainieren
Erstellen Sie irgendwo einen Ordner (
C:\BindIp
zum Beispiel) und legen Sie diese drei Dateien darin ab:BindIp.dll
BindIp.cmd
BindIp.cmd
Skript:LolClient.exe
) für die ausführbare Zieldatei inHKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\
Fügen Sie diesem Schlüssel einen Zeichenfolgewert hinzu:
Debugger
C:\BindIp\BindIp.cmd
Gewähren Sie die
Users
vollständigen Berechtigungen für diesen Schlüssel (das Skript muss sie bei jedem Start ändern). Es sollte so aussehen:Stellen Sie die gewünschte IP-Adresse ein
BindIp.cmd
Wiederholen Sie die Schritte 3 und 4 für jede ausführbare Sie binden wollen (
rad_user_kernel.exe
,LolLauncher.exe
,LolPatcher.exe
, etc.).Jedes Mal, wenn Sie eine ausführbare Datei mit einem entsprechenden Registrierungseintrag
BindIp.cmd
starten, wird stattdessen das Skript gestartet und dieses Programm an die gewünschte IP-Adresse gebunden.Fazit
Ich habe dies auf meinem Laptop unter Windows 8.1 x64 getestet und konnte mit dieser Technik verschiedene Programme ( AIMP 2 , BersIRC , Opera 12.4 ) erfolgreich an Ethernet- oder WiFi-Adapter binden . Leider
BindIp.dll
ist 32-Bit, so würde es nicht mit 64-Bit-Prozessen funktionieren.quelle
injectory
manchmal Probleme mit der--args
Option. Nicht sicher warum.--args
Anwendung nicht ausführenForceBindIp
tatsächlich Parameter übergeben können, siehe meine aktualisierte Antwort.Ich habe das HideMyAss gefunden! Der VPN-Client verfügt über die Funktion " Sichere IP-Bindung" , mit der Anwendungen an die VPN-Schnittstelle gebunden werden können:
Ich habe es angeschaut und es basiert auf einer benutzerdefinierten Layered Service Provider (LSP) -Dll und einer COM-Schnittstelle, um es zu steuern. Und es kann (ab) verwendet werden, ohne den VPN-Client von HideMyAss zu installieren.
Installieren von HideMyAss Secure IP Bind
bin
Ordner im entpackten InstallationsprogrammKopieren Sie diese drei Dateien in einen Ordner auf Ihrer Festplatte (
C:\HMA_Bind
)Legen Sie
Install.cmd
undUninstall.cmd
in diesen OrdnerInstall.cmd
Uninstall.cmd
Install.cmd
als Administrator . Um zu überprüfen, ob die Installation erfolgreich war, können Sie Autoruns verwenden :Windows PowerShell ISE (x86)
oder startenWindows PowerShell (x86)
, da es sich um eine 32-Bit-COM-Komponente handelt.Zuerst müssen Sie ein neues Secure IP Bind-Objekt erstellen:
Und dann können Sie es Methoden aufrufen:
Deinstallation von HideMyAss Secure IP Bind
Uninstall.cmd
als Administrator aus , und überprüfen Sie, ob die Deinstallation mit Autoruns erfolgreich war.Beispiele:
Beachten Sie, dass Sie ein sicheres IP Bind-COM-Objekt nur einmal pro PowerShell-Sitzung erstellen müssen. In den folgenden Beispielen wird davon ausgegangen, dass Sie sie in einer neuen PowerShell-Sitzung ausführen, sodass immer ein neues COM-Objekt erstellt wird.
Festlegen der IP-Adresse,
firefox
an die gebunden werden soll , Hinzufügen zu gebundenen Anwendungen und Aktivieren der Bindung.IP-Bindung global aktivieren:
IP-Bindung global deaktivieren:
Anwendung von der Liste entfernen (Bindung für diese Anwendung beenden):
Anmerkungen
Da Secure IP Bind als benutzerdefinierte LSP- DLL (Layered Service Provider) implementiert ist, gelten folgende Einschränkungen:
Ich habe diese Methode mit verschiedenen Anwendungen mit gemischten Ergebnissen getestet: 32-Bit-Anwendungen funktionieren, 64-Bit jedoch nicht, dh ich konnte den 64-Bit-Explorer binden (wahrscheinlich, weil die Tabulatorprozesse standardmäßig 32-Bit sind), aber Kein 64-Bit- Waterfox- Browser oder andere 64-Bit-Anwendungen.
quelle
Ich kann mir zwei Lösungen für das Problem vorstellen:
Erstellen Sie eine virtuelle Maschine zum Ausführen des Spiels, die nur den einen Netzwerkadapter verwendet.
Wenn Sie den IP-Adressbereich kennen, den das Spiel verwendet, erstellen Sie eine Netzwerkroute, die diesen Bereich zum Gateway des jeweiligen Adapters leitet.
Ich kann weitere Informationen hinzufügen, sobald ich Ihre Präferenzen kenne. Zum Beispiel in Punkt 1 Ihr bevorzugtes virtuelles Maschinenprodukt.
quelle
Angenommen, Sie haben zwei Windows-Benutzerkonten:
HomeUser
VpnUser
Wenn Sie sich bei Ihrem
VpnUser
Konto anmelden, können Sie Anwendungen (insbesondere die von Ihnen erwähnten Spiele) alsHomeUser
(Umschalt + RMB für ausführbare Dateien -> Als anderer Benutzer ausführen) ausführen und diese Anwendungen führen ihre untergeordneten Prozesse als ausHomeUser
. Anwendungen, die Sie standardmäßig ausführen (Verknüpfungen, Doppelklick auf die ausführbare Datei), gehörenVpnUser
.Wenn Sie Windows-Netzwerkverbindungen definieren, haben Sie die Möglichkeit, anderen Benutzern die Verwendung dieser Verbindung zu ermöglichen. Angenommen, Sie haben Folgendes definiert:
HomeNetwork
exklusiv fürHomeUser
VpnNetwork
exklusiv fürVpnUser
und zur Vereinfachung:
Ich vermute, dass Anwendungen:
VpnUser
sollte nur verwendenVpnNetwork
.HomeUser
sollte nur verwendenHomeNetwork
.Wenn meine Spekulationen zutreffen, werden
VpnUser
Anwendungen beim Anmelden bei einem Konto verwendetVpnNetwork
, wenn Anwendungen ausgeführt werden, dieHomeUser
von einemVpnUser
Konto aus verwendet werden sollenHomeNetwork
.quelle
forcebindip.exe kann verwendet werden, Sie müssen jedoch eine Hilfsanwendung codieren (keine andere Option).
Die Anwendung lädt die Datei XXX.ini, die Folgendes enthält:
Die Anwendung wird ausgeführt
C: \ path1 \ app_to_run.exe 192.168.10.21 C: \ path1 \ app_to_run.exe Saved_Command_line
Die Anwendung endet
PROBLEM: ForcebindIP übergibt keine Parameter an das aufgerufene Programm. Wenn Sie dann Parameter an app_to_run.exe übergeben müssen, benötigen Sie einen weiterentwickelten Ansatz, bei dem XXX.exe eine Batchdatei erstellt, die app_to_run.exe und die übergebenen Parameter enthält. Dieser Batch wird dann bei Punkt 4 anstelle von app_to_run.exe aufgerufen.
Sie können sich auch einige GUI-Apps ansehen, in denen ForcebindIP enthalten ist. Einige von ihnen können mit mehr als einer App arbeiten, aber sie tun nicht das, was Sie brauchen.
https://www.raymond.cc/blog/bind-windows-application-to-specific-network-adapter-with-forcebindip/
quelle