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.exealih-alih injektor khusus dan sekarang sepertinya semua masalah dengan injectorypengecualian telah hilang dan semuanya berfungsi.
Berikut langkah dan BindIp.cmdskrip yang dimodifikasi :
Instal ForceBindIp seperti biasa
Letakkan di BindIp.cmdmana 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.dllke 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.dlltanpa ForceBindIp.exekita perlu mengetahui bagaimana mereka berkomunikasi ( ForceBindIp.exeentah bagaimana harus mengirimkan alamat IP ke dll).
Saya telah menggunakan IDA gratis dan menemukan bahwa ForceBindIp.exemenciptakan variabel lingkungan dengan nama FORCEDIPyang menyimpan alamat IP dan BindIp.dllmembaca alamat IP dari variabel ini ketika disuntikkan dan dieksekusi dalam proses target.
Untuk mendeteksi peluncuran aplikasi target, kita dapat menambahkan Debuggerkunci 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 FORCEDIPvariabel 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:\BindIpmisalnya) 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 Usersizin 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.cmdskrip 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.dll32-bit, jadi itu tidak akan bekerja dengan proses 64-bit.
LolClient.exe? ApakahLolClient.exeax86ataux64exe? Saya bermain-main dengan injector pihak ketiga dll dan mungkin saya dapat membantu Anda, tapi saya butuh info lebih lanjut.