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 injectoryistisnalarla ilgili tüm sorunlar gitti ve her şey çalışıyor gibi görünüyor .
Değiştirilmiş adımlar ve BindIp.cmdkomut dosyası:
ForceBindIp'i her zamanki gibi yükleyin
BindIp.cmdSü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.dllolarak 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.dllOlmadan kullanmak ForceBindIp.exeiç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.exeadıyla ortam değişkeni oluşturur bulundu .FORCEDIPBindIp.dll
Hedef uygulama başlatmayı algılamak Debuggeriç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ı", FORCEDIPdeğ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.exeHedef 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 Usersbu 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.exevb.)
Şimdi, karşılık gelen kayıt defteri girdisine sahip yürütülebilir dosyayı her başlattığınızda, BindIp.cmdkomut 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.dll32 bit, bu yüzden 64 bit işlemlerle çalışmaz.
LolClient.exe? MıLolClient.exebirx86veyax64exe? Ben üçüncü taraf dll enjektör ile oynuyor ve belki ben size yardımcı olabilir, ama daha fazla bilgiye ihtiyacım var.