Skocz do zawartości

Wstrzykiwanie Pliku .So Do Procesu (Jak?)


Subaru

Rekomendowane odpowiedzi

Witam

 

Chciałbym zapytać o sprawy wstrzykiwania plików .so do procesu.

Testuję pod okiem administracji prywatnego serwera Diablo II metody uruchomienia MapHacka na Linuksie (niektórzy jeszcze potrzebują odkrywania mapy ;) ).

Znalazłem metodę takiego kalibru, kompilowanie programu wstrzykującego (Surgeon) oraz samego modułu MapHack (Snoogans).

Po małej poprawce w kodzie źródłowym oba programy się skompilowały (chciało bibliotek user.h z katalogu asm-i486 czy jakośtak, zmieniłem na asm-generic i poszło).

Oba programy się zainstalowały poprawnie (make install, skopiowanie do katalogów /usr/bin czy coś, oczywiście wykonane z (_root'a_ → roota) ORT).

Instrukcja mówi, iż trzeba wejść do gry single lub multi i dopiero wtedy wstrzyknąć moduł do procesu gry po numerze PID lub skryptem ułatwiającym sprawę.

Niestety w tym momencie sprawa się zatrzymuje, gra chodzi normalnie pod kontrolą Wine, a program zwraca takie coś w konsoli:

[subaru@Ura-Server Diablo II]$ surgeon 8123 snoogans.so
injecting module snoogans.so into process 8123
err: Input/output error
err: failed to write module name
err: failed to load module snoogans.so

Próbowałem wykonać polecenie z (_root'a_ → roota) ORT myśląc, że może uprawnień nie mam czy coś, też nie przeszło dalej.

Skrypt ułatwiający odnajduje proces gry poprawnie, lecz zwraca to samo na wyjściu.

Numer 8123 oczywiście jest procesem gry na tą chwilę.

 

Z góry dziękuję za pomoc i pozdrawiam

 

Subaru

Odnośnik do komentarza
Udostępnij na innych stronach

  • 2 weeks later...

Najmocniej przepraszam, ze tak dlugo bez odzewu, mialem problemy techniczne z internetem (staly chwilowo przestal dzialac a mobilny na "pipcyku" nie chcial na Linux zaskoczyc do konca)

 

Próbowalem Twojej rady morsik, ale nie do konca sie udalo, najblizej byla taka linijka polecenia i jej output:

[subaru@Ura-Server Diablo II]$ LD_PRELOAD=./snoogans.so ./Game.exe


*** INIT MODULE ***

populating kernel32 functions... err: could not find location of kernel32.dll

*** FAILED TO LOAD MODULE ***

exiting...


*** INIT MODULE ***

populating kernel32 functions... err: could not find location of kernel32.dll

*** FAILED TO LOAD MODULE ***

exiting...
ERROR: ld.so: object './snoogans.so' from LD_PRELOAD cannot be preloaded: ignored.
ERROR: ld.so: object './snoogans.so' from LD_PRELOAD cannot be preloaded: ignored.
ERROR: ld.so: object './snoogans.so' from LD_PRELOAD cannot be preloaded: ignored.
ERROR: ld.so: object './snoogans.so' from LD_PRELOAD cannot be preloaded: ignored.
ERROR: ld.so: object './snoogans.so' from LD_PRELOAD cannot be preloaded: ignored.
ERROR: ld.so: object './snoogans.so' from LD_PRELOAD cannot be preloaded: ignored.
WARNING: couldn't connect to: /tmp/keyring-cXGNHK/pkcs11: Nie ma takiego pliku ani katalogu
fixme:advapi:SetSecurityInfo stub
fixme:win:EnumDisplayDevicesW ((null),0,0x33f208,0x00000000), stub!
fixme:x11drv:X11DRV_desktop_SetCurrentMode Cannot change screen BPP from 32 to 8
fixme:d3d_surface:wined3d_surface_flip Ignoring flags 0x1.
fixme:x11drv:X11DRV_desktop_SetCurrentMode Cannot change screen BPP from 32 to 8
fixme:x11drv:X11DRV_desktop_SetCurrentMode Cannot change screen BPP from 32 to 16
err:ddraw:ddraw_surface7_Flip Can't find a flip target
err:ddraw:ddraw_surface7_Flip Can't find a flip target
err:ddraw:ddraw_surface7_Flip Can't find a flip target
fixme:x11drv:X11DRV_desktop_SetCurrentMode Cannot change screen BPP from 32 to 8
err:wgl:internal_SetPixelFormat Invalid operation on root_window


*** FINIT MODULE ***

stopping maphack thread... done
removing hooks...done

*** MODULE UNLOADED ***

Co prawda niby wynika, ze jednak cos zaladowal skoro mógl wyladowac, ale jednak zamierzonego efektu to nie dalo (chodzi o mape odkryta konkretnie, powinna sie odkryc po wcisnieciu TAB)

Odnośnik do komentarza
Udostępnij na innych stronach

  • 8 months later...

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
×
×
  • Dodaj nową pozycję...