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 dengan injectory
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:
setlocal
:: IP to bind to
set IP=192.168.128.85
:: Common variables
set RegIFEO=HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\%~nx1
set Injector=ForceBindIp.exe
:: ForceBindIp swallows first parameter passed to target exe,
:: so we inject dummy parameter just before it
set AllParams=%*
set FirstParam=%1
call set TargetParams=%%AllParams:*%FirstParam%=%FirstParam% Dummy%%
:: Delete debugger for the target exe in registry,
:: or we'll end in an endless loop of the batch files
reg delete "%RegIFEO%%" /v Debugger /f
:: Start target exe via ForceBindIp
%Injector% %IP% %TargetParams%
:: Restore this script as debugger for the target exe in registry
reg add "%RegIFEO%" /v Debugger /t REG_SZ /d "%~dpnx0" /f
:: Debug, uncomment if needed
rem pause
endlocal
Kemudian ikuti langkah 2-6 dari bawah.
pengantar
ForceBindIp tidak bisa secara otomatis menyuntikkan BindIp.dll
ke proses anak dan tidak 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
tanpa ForceBindIp.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 nama FORCEDIP
yang menyimpan alamat IP dan BindIp.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:
Kernel32! Buat Proses ketika dipanggil tanpa flag penciptaan DEBUG_PROCESS atau DEBUG_ONLY_THIS_PROCESS, periksa registri untuk melihat apakah IFEO telah diatur pada executable yang diluncurkannya. Jika ya, maka itu hanya menambahkan path debugger ke nama yang dapat dieksekusi, secara efektif membuat executable untuk diluncurkan di bawah debugger.
"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 menyuntikkan BindIp.dll
.
Praktek
Buat folder di suatu tempat ( C:\BindIp
misalnya) dan masukkan ketiga file di dalamnya:
BindIp.cmd
naskah:
setlocal
:: IP to bind to. This env.var is used by BindIp.dll
set FORCEDIP=192.168.1.23
:: Common variables
set RegIFEO=HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\%~nx1
set Injector=%~dp0injectory.x86.exe
set BindIpDll=%~dp0BindIp.dll
:: Extract target's parameters, if any
set AllParams=%*
set FirstParam=%1
call set TargetParams=%%AllParams:*%FirstParam% =%%
:: Delete debugger for the target exe in registry,
:: or we'll end in an endless loop of the batch files
reg delete "%RegIFEO%%" /v Debugger /f
:: Start target exe and inject BindIp.dll
if not [%2] == [] (
:: If there were parameters for target exe, pass them on
"%Injector%" --launch %1 --inject "%BindIpDll%" --args "%TargetParams%"
) else (
:: No parameters were specified
"%Injector%" --launch %1 --inject "%BindIpDll%"
)
:: Restore this script as debugger for the target exe in registry
reg add "%RegIFEO%" /v Debugger /t REG_SZ /d "%~dpnx0" /f
:: Debug, uncomment if needed
rem pause
endlocal
- Buat kunci registri (mis.
LolClient.exe
) Untuk target yang dapat dieksekusi diHKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\
Tambahkan Nilai String ke kunci ini:
- Nama:
Debugger
- Nilai:
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.
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.