Saya telah mencoba ForceBindIP, tetapi memiliki kelemahan yang signifikan - ini tidak mempengaruhi anak-anak dari aplikasi yang saya coba ikat, itu hanya mempengaruhi aplikasi itu sendiri. Itu juga tidak bisa memaksa aplikasi untuk selalu dijalankan melalui antarmuka yang ditentukan, itu harus dijalankan forcebindip.exe
setiap saat. Ini menjadi masalah dengan aplikasi seperti League of Legends di mana pohon proses terlihat seperti itu:
Peluncur menjalankan patcher, patcher menjalankan klien, dll. Saya hanya dapat memengaruhi induk dari semua proses ini di pohon, sehingga permainan sebenarnya tidak terikat dengan antarmuka yang saya inginkan, membuat seluruh usaha ini sia-sia.
Apakah ada alternatif yang lebih modern untuk ForceBindIP untuk Windows 7? Ada banyak pertanyaan yang mirip dengan yang ini di situs ini, tetapi kebanyakan sudah tua. Mungkin sekarang ada cara yang lebih baik untuk menyelesaikan masalah ini?
Ide saya saat ini adalah melakukan hal berikut:
Siapkan server 3proxy lokal yang terikat ke antarmuka yang diinginkan.
Jalankan game melalui Proxifier atau perangkat lunak serupa yang dikonfigurasi untuk dijalankan melalui proxy lokal itu.
Saya tidak yakin apakah itu akan berhasil, tetapi bahkan jika itu akan berhasil, sepertinya solusi yang kurang optimal. Apakah kalian punya ide yang lebih baik?
Sunting: Ide saya tidak berfungsi :(
Sunting 2: Pada dasarnya, apa yang saya coba capai adalah mengikat beberapa aplikasi ke antarmuka biasa, sementara VPN sedang berjalan. Alasannya adalah saya harus terhubung melalui VPN hampir sepanjang waktu, tetapi beberapa aplikasi (seperti game) tidak berfungsi dengan baik dengan cara ini, karena ping yang lebih tinggi dan masalah lainnya.
LolClient.exe
? ApakahLolClient.exe
ax86
ataux64
exe? Saya bermain-main dengan injector pihak ketiga dll dan mungkin saya dapat membantu Anda, tapi saya butuh info lebih lanjut.BindIp.dll
adalah 32-bit, sehingga tidak akan bekerja dengan proses 64-bit.Jawaban:
Memperbarui
Saya telah menemukan bahwa ForceBindIp sebenarnya meneruskan parameter ke executable yang disebut. Itu hanya menghilangkan parameter pertama . Jadi saya telah memodifikasi skrip saya untuk digunakan
ForceBindIp.exe
alih-alih injektor khusus dan sekarang sepertinya semua masalah denganinjectory
pengecualian telah hilang dan semuanya berfungsi.Berikut langkah dan
BindIp.cmd
skrip yang dimodifikasi :Instal ForceBindIp seperti biasa
Letakkan di
BindIp.cmd
mana saja di drive Anda (mis.C:\BindIp\BindIp.cmd
)BindIp.cmd
naskah:Kemudian ikuti langkah 2-6 dari bawah.
pengantar
ForceBindIp tidak bisa secara otomatis menyuntikkan
BindIp.dll
ke proses anak dantidak meneruskan parameter ke executable yang disebut. Tapi saya bisa menghindari ini dengan menggunakan Opsi Eksekusi File Gambar di registri , skrip batch dan injector pihak ketiga dll . Detailnya di bawah.Teori
Untuk menggunakannya
BindIp.dll
tanpaForceBindIp.exe
kita perlu mengetahui bagaimana mereka berkomunikasi (ForceBindIp.exe
entah bagaimana harus mengirimkan alamat IP ke dll).Saya telah menggunakan IDA gratis dan menemukan bahwa
ForceBindIp.exe
menciptakan variabel lingkungan dengan namaFORCEDIP
yang menyimpan alamat IP danBindIp.dll
membaca alamat IP dari variabel ini ketika disuntikkan dan dieksekusi dalam proses target.Untuk mendeteksi peluncuran aplikasi target, kita dapat menambahkan
Debugger
kunci di Opsi Eksekusi File Gambar di registri untuk eksekusi ini:"Debugger" dalam kasus kami, akan menjadi skrip batch, yang akan mengatur
FORCEDIP
variabel dan meluncurkan injector, dll-injector. Injeksi kemudian akan memulai proses, meneruskan argumen baris perintah dan menyuntikkanBindIp.dll
.Praktek
Buat folder di suatu tempat (
C:\BindIp
misalnya) dan masukkan ketiga file di dalamnya:BindIp.dll
BindIp.cmd
BindIp.cmd
naskah:LolClient.exe
) Untuk target yang dapat dieksekusi diHKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\
Tambahkan Nilai String ke kunci ini:
Debugger
C:\BindIp\BindIp.cmd
Berikan
Users
izin penuh pada kunci ini (skrip harus memodifikasinya di setiap peluncuran). Seharusnya terlihat seperti ini:Setel alamat IP yang diperlukan di
BindIp.cmd
Ulangi langkah 3 dan 4 untuk setiap executable Anda ingin mengikat (
rad_user_kernel.exe
,LolLauncher.exe
,LolPatcher.exe
, dll).Sekarang, setiap kali Anda meluncurkan executable yang memiliki entri registri yang sesuai,
BindIp.cmd
skrip akan memulai dan mengikat program ini ke alamat IP yang diinginkan.Kesimpulan
Saya telah menguji ini pada laptop saya yang menjalankan Windows 8.1 x64 dan berhasil mengikat berbagai program ( AIMP 2 , BersIRC , Opera 12.4 ) ke Ethernet atau adaptor WiFi menggunakan teknik ini. Sayangnya
BindIp.dll
32-bit, jadi itu tidak akan bekerja dengan proses 64-bit.sumber
injectory
terkadang ada masalah dengan--args
opsi. Tidak yakin kenapa.--args
dengan aplikasi apa punForceBindIp
benar - benar dapat melewati parameter, lihat jawaban saya yang diperbarui.Saya telah menemukan HideMyAss! Klien VPN memiliki fitur Secure IP Bind yang memungkinkan untuk mengikat aplikasi ke antarmuka VPN:
Saya telah melihatnya dan didasarkan pada LSP ( kustom Layered Service Provider) dll dan antarmuka COM untuk mengendalikannya. Dan itu dapat (ab) digunakan tanpa menginstal klien VPN HideMyAss.
Menginstal Secure IP Bind HideMyAss '
bin
folder di penginstal yang belum dikemasSalin ketiga file tersebut ke folder di disk Anda (
C:\HMA_Bind
)Masukkan
Install.cmd
danUninstall.cmd
ke folder iniInstall.cmd
Uninstall.cmd
Install.cmd
sebagai Administrator . Untuk memverifikasi, instalasi berhasil, Anda dapat menggunakan Autoruns :Windows PowerShell ISE (x86)
atauWindows PowerShell (x86)
, karena komponen COM adalah 32-bit.Pertama, Anda harus membuat objek Secure IP Bind baru:
Dan kemudian Anda dapat memanggil metode itu:
Menghapus Instalasi Secure IP Bind HideMyAss
Uninstall.cmd
sebagai Administrator , verifikasi bahwa penghapusan instalasi berhasil dengan Autoruns.Contoh:
Catatan, bahwa Anda harus membuat objek COM IP Bind aman hanya sekali per sesi PowerShell. Contoh di bawah ini mengasumsikan bahwa Anda mengeksekusi mereka dalam sesi PowerShell baru, sehingga mereka selalu membuat objek COM baru.
Atur IP untuk diikat, tambahkan
firefox
ke aplikasi yang terikat, aktifkan pengikatan.Aktifkan secara global pengikatan IP:
Nonaktifkan pengikatan IP secara global:
Hapus aplikasi dari daftar (berhenti mengikat untuk aplikasi ini):
Catatan
Karena Secure IP Bind diimplementasikan sebagai dll. LSP) , batasan itu berlaku:
Saya telah menguji metode ini dengan berbagai aplikasi dengan hasil beragam: aplikasi 32-bit bekerja, tetapi 64-bit tidak, yaitu saya dapat mengikat Explorer 64-bit (mungkin karena proses tabnya 32-bit secara default), tetapi bukan browser Waterfox 64-bit atau aplikasi 64-bit lainnya.
sumber
Saya dapat memikirkan dua solusi untuk masalah ini:
Buat mesin virtual untuk menjalankan game, yang hanya menggunakan satu adapter jaringan.
Jika Anda tahu kisaran alamat IP yang digunakan game, buat rute jaringan yang mengarahkan rentang ini ke gateway adaptor khusus.
Saya dapat menambahkan lebih banyak informasi setelah saya tahu preferensi Anda. Misalnya, dalam poin 1 produk mesin virtual pilihan Anda.
sumber
Mari kita asumsikan bahwa Anda memiliki dua akun pengguna Windows:
HomeUser
VpnUser
Saat Anda masuk ke
VpnUser
akun, Anda dapat menjalankan aplikasi (terutama game yang Anda sebutkan) sebagaiHomeUser
(Shift + RMB pada file yang dapat dieksekusi -> Jalankan sebagai pengguna lain) dan aplikasi ini menjalankan proses anak-anak mereka sebagaiHomeUser
. Aplikasi yang akan Anda jalankan dengan cara standar (pintasan, klik dua kali pada file yang dapat dieksekusi) akan dimiliki olehVpnUser
.Saat Anda mendefinisikan koneksi jaringan Windows, Anda memiliki opsi untuk mengizinkan pengguna lain menggunakan koneksi ini. Mari kita asumsikan bahwa Anda mendefinisikan:
HomeNetwork
khusus untukHomeUser
VpnNetwork
khusus untukVpnUser
dan untuk penyederhanaan:
Saya kira aplikasi itu:
VpnUser
harus menggunakan sajaVpnNetwork
.HomeUser
harus menggunakan sajaHomeNetwork
.Jika spekulasi saya benar, maka ketika Anda masuk ke
VpnUser
aplikasi akun akan menggunakanVpnNetwork
, ketika aplikasi dijalankanHomeUser
dariVpnUser
akun harus digunakanHomeNetwork
.sumber
forcebindip.exe dapat digunakan tetapi Anda harus kode aplikasi pembantu (tidak ada opsi lain).
Aplikasi memuat XXX.ini yang berisi mis
Aplikasi berjalan
C: \ path1 \ app_to_run.exe 192.168.10.21 C: \ path1 \ app_to_run.exe Saved_Command_line
Aplikasi berakhir
MASALAH: ForcebindIP tidak meneruskan parameter ke program yang dipanggil. maka jika Anda perlu meneruskan parameter ke app_to_run.exe Anda memerlukan pendekatan yang lebih berkembang di mana XXX.exe membuat file batch termasuk app_to_run.exe dan parameter berlalu, batch ini kemudian dipanggil bukan app_to_run.exe pada titik 4.
Anda juga dapat melihat beberapa aplikasi GUI yang membungkus ForcebindIP. Beberapa dari mereka dapat bekerja dengan lebih dari satu aplikasi tetapi mereka tidak melakukan apa yang Anda butuhkan.
https://www.raymond.cc/blog/bind-windows-application-to-specific-network-adapter-with-forcebindip/
sumber