Güncelleme
Ben ForceBindIp aslında çalıştırılan çalıştırılabilir parametrelere geçiyor bulduk. Sadece ilk parametreyi atlar . Bu yüzden ForceBindIp.exe
özel enjektör yerine kullanmak için betiğimi değiştirdim ve şimdi injectory
istisnalarla ilgili tüm sorunlar gitti ve her şey çalışıyor gibi görünüyor .
Değiştirilmiş adımlar ve BindIp.cmd
komut dosyası:
ForceBindIp'i her zamanki gibi yükleyin
BindIp.cmd
Sürücünüzde herhangi bir yere koyun (ör. C:\BindIp\BindIp.cmd
)
BindIp.cmd
senaryo:
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
Ardından aşağıdan 2-6 arasındaki adımları izleyin.
Giriş
ForceBindIp otomatik BindIp.dll
olarak alt süreçlere enjekte edilemez ve çağrılan yürütülebilir dosyalara parametre iletmez . Ama ben kayıt defteri , toplu komut dosyası ve üçüncü taraf dll enjektör Görüntü Dosyası Yürütme Seçenekleri kullanarak bu başardı . Detaylar aşağıda.
teori
BindIp.dll
Olmadan kullanmak ForceBindIp.exe
için nasıl iletişim kurduklarını öğrenmek gerekir (bir ForceBindIp.exe
şekilde dll IP adresi geçmek zorunda).
Ben IDA ücretsiz kullandım ve IP adresi tutan ve hedef sürecinde enjekte ve yürütüldüğünde bu değişkenden IP adresini okur ForceBindIp.exe
adıyla ortam değişkeni oluşturur bulundu .FORCEDIP
BindIp.dll
Hedef uygulama başlatmayı algılamak Debugger
için, bu yürütülebilir dosya için kayıt defterindeki Görüntü Dosyası Yürütme Seçeneklerine bir anahtar ekleyebiliriz :
Kernel32! CreateProcess, DEBUG_PROCESS veya DEBUG_ONLY_THIS_PROCESS oluşturma bayrakları olmadan çağrıldığında, IFEO'nun başlattığı yürütülebilir dosyada ayarlanıp ayarlanmadığını görmek için kayıt defterini kontrol eder. Evetse, çalıştırılabilir dosyanın hata ayıklayıcı yolunu etkin bir şekilde hata ayıklama altında başlatmasını sağlar.
Bizim durumumuzda "Hata Ayıklayıcı", FORCEDIP
değişken kuracak ve dll-enjektör enjeksiyonu başlatacak bir toplu komut olacak . Daha sonra Injectory işlemi başlatır, komut satırı argümanlarını iletir ve enjekte eder BindIp.dll
.
Uygulama
Bir yerde klasör oluşturun ( C:\BindIp
örneğin) ve bu üç dosyayı içine yerleştirin:
BindIp.cmd
senaryo:
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
LolClient.exe
Hedef yürütülebilir dosya için kayıt defteri anahtarı oluşturun (örn. )HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\
Bu anahtara Dize Değeri ekleyin:
- Ad:
Debugger
- Değeri:
C:\BindIp\BindIp.cmd
Grant Users
bu anahtarının tam izinleri (script her açılışında değiştirmek zorunda kalacak). Şöyle görünmelidir:
Gerekli IP adresini BindIp.cmd
Tekrarlayın (bağlama istediğiniz her yürütülebilir için 3. ve 4. adımları rad_user_kernel.exe
, LolLauncher.exe
, LolPatcher.exe
vb.)
Şimdi, karşılık gelen kayıt defteri girdisine sahip yürütülebilir dosyayı her başlattığınızda, BindIp.cmd
komut dosyası bunun yerine başlatılır ve bu programı istenen IP adresine bağlar.
Sonuç
Bunu Windows 8.1 x64 çalıştıran dizüstü bilgisayarımda test ettim ve bu tekniği kullanarak çeşitli programları ( AIMP 2 , BersIRC , Opera 12.4 ) Ethernet veya WiFi adaptörüne başarıyla bağlayabildim . Ne yazık ki BindIp.dll
32 bit, bu yüzden 64 bit işlemlerle çalışmaz.
LolClient.exe
? MıLolClient.exe
birx86
veyax64
exe? Ben üçüncü taraf dll enjektör ile oynuyor ve belki ben size yardımcı olabilir, ama daha fazla bilgiye ihtiyacım var.