[WinAPI][C++] podpinanie się pod funkcję z dllki

0

1.Mam program który wywołuje rózne funkcje z biblioteki dll, chciałbym podpiąć się pod jedną z nich - zaimplementować własny kod i ewentualnie wykonać oryginalny w jaki sposób można to zrobić ?

2.Jak można się podpiąć do cudzego procesu i monitorować co robi ? czekać na odpowiednią instrukcje np. wywołanie funkcji z dll ?

0

1 - napisz dllke o identycznym interfejsie zewnetrznym jak ta oryginalna, dzialajaca w ten sposob, ze wszystkie Twoje funkcje beda wolaly swoje odpowiedniki w oryginale, poza ta jedna funkcja ktora chcesz podmienic. nastepnie podrzuc programowi swoja dllke. pamietaj ze oczywscie Twoja dllka musi "widziec" oryginalna, zeby moc poprawnie udawac (a raczej: filtrowac) jej dzialanie :)

2 - najprosciej uzyc debuggera i wstawic breakpointa.. jak chcesz zeby to robil Twoj program - mozesz sprobowac uzywac API debuggingu pod windowsami. mozesz tez proces-ofiare suspendowac, zmapowac sobie obraz jego stron z kodem, wstrzeilc mu jakis swoj kod, wyszukac sekcje importow, podmienic tymczasowo adres jakiejs czesto uzywanej funkcji na adres wstrzelonego bloczku kodu i tyle. twoj bloczek kodu po pierwsze: musi z punkttu widzenia ofiary zachowywac sie dokladnei jak funkcja ktora ofiara chciala wywolac, po drugie - moze robic w obrebie procesu-ofiary co Ci sie zamarzy. to tak w skrocie. w praktyce wyglada to bardziej skomplikowanie bo dochodzi wiele czesto nietrywialnych szczegolow

0

dzięki

  1. co do podmiany dllki myślałem o tym i jest całkiem "proste" gdy dllka ma 3-10 funkcji gorzej gdy mamy biblioteke z tysiącem funkcji :D

  2. mógłbyś podać jakieś przykłady kodu, funkcji albo jakąś stronę gdzie można o tym poczytać
    Zacząłem się tym interesować po przeczytaniu artykułu w którym jeden facet "poprawił" program nie działąjący w win98 (wywoływał jedna funkcje api niedostępną w 98) niestety cały kod zamieszczony w artykule jest w asmie :(

0

jak bede mial dluzsza chwile czasu to obiecuje cos wyszperac, nie wiem czy sa materialy jakies od tego, pisalem opierajac sie na wiedzy wyczytanej z disasmow spyware/wirusow..

0

Cóż, może ten art. okaże się pomocny: http://revival.pl/__main/articles/show_article/DLL_spoofing_44/
To w sumie najwygodniejsza metoda... zawsze można też wygodnie załadować własną Dll'kę poprzez CreateRemoteThead - niech zrobi swoje podczas inicjowania.

0

oo.. ciekawy art! w dodatku z tego co widze wspmniane wirki w robily cos bardzo podobnego:)

0

odpowiedź na drugie pytanie :
"Three Ways to Inject Your Code into Another Process"
http://www.codeproject.com/threads/winspy.asp

:D</delphi>

1 użytkowników online, w tym zalogowanych: 0, gości: 1