Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Dll Injection + Lista Procesów


Rekomendowane odpowiedzi

Opublikowano

Witam wszystkich (tych którzy myśleli że nie wrócę też, jednak zmieniłem zdanie, a raczej przeszło mi)! Zauważyłem że nie ma w tym dziale żadnego (?) wątku dot. Delphi. Więc będę pierwszy.

 

1. Dll Injection

Zaczniemy od procedurki do wstrzykiwania biblioteki do wybranego procesu. Nie będzie to gotowy kod, postaram się wszystko ładnie wytłumaczyć.

 

Najpierw standardowa linijka:

To jest ukryta treść, proszę

PID - parametr typu DWORD, w nim podajemy ID procesu do wstrzykiwania dllki.

DLL - nazwa biblioteki, przekazana jako PChar.

 

Następnie deklaracja zmiennych, wyjaśnię je niżej:

To jest ukryta treść, proszę

 

Teraz główna część procedury:

To jest ukryta treść, proszę

Zaczynamy słówkiem begin. Następnie w zmiennej hProcess (typ Cardinal -> liczba całkowita dodatnia, a raczej nieujemna) zapisujemy uchwyt procesu który otwieramy

To jest ukryta treść, proszę

Teraz rezerwujemy miejsce na naszą dll'kę za pomocą funkcji VirtualAllocEx, zwraca ona początkowy adres zarezerwowanego miejsca który zapisujemy w zmiennej Parameters

To jest ukryta treść, proszę

Wstrzykujemy zawartość biblioteki do pamięci aplikacji używając zawartości zmiennej hProcess jako uchwytu procesu i Parameters jako adresu początkowego. Zmienna BytesWritten jest wymagana przez WinApi więc tam zostanie mimo iż nic z nią potem nie robimy.

To jest ukryta treść, proszę

Zapisujemy pointer do procedury ładowania biblioteki z windowsowskiego kernela.

To jest ukryta treść, proszę

Tworzymy kolejny wątek w naszej aplikacji uruchamiając tym samym zawartość bloku begin..end biblioteki załadowanej przed chwilą.

To jest ukryta treść, proszę

Na koniec zamykamy uchwyt zwalniając pamięć i kończymy procedurę end'em.

 

2. Lista Procesów, wyszukiwanie tego który nas interesuje.

No tak, po co nam taka procedura skoro nie wiemy jak znaleść ID procesu? Tutaj znów z pomocą przychodzi nam WinAPI (w sumie to chyba oczywiste ;p), a dokładnie funkcja EnumWindows.

 

Najpierw napiszemy funkcję-callback, tutaj zadeklarujemy co ma się dziać:

To jest ukryta treść, proszę

Tutaj tradycyjnie,

hHwnd - parametr typu HWND, w sumie nie musimy się przejmować co tu podać bo WinAPI zrobi to za nas.

lParam - parametr typu integer -> liczba całkowita, j.w. nie myślimy co tu podać.

 

Teraz zmienne:

To jest ukryta treść, proszę

W zmiennej pPid zapiszemy poszukiwane przez nas ID procesu, title i ClassName to zmienne pomocnicze to przechowania nazwy procesu i jego klasy, przydadzą nam się przy sprawdzaniu czy to ten proces.

 

To jest ukryta treść, proszę

Jeśli uchwyt jest pusty (równy NULL) przerwij wykonywanie i zwróć fałsz. Chyba nie muszę wyjaśniać.

To jest ukryta treść, proszę

Jeśli uchwyt nie jest pusty:

To jest ukryta treść, proszę

Pobieramy ID procesu i zapisujemy w zmiennej pPid

To jest ukryta treść, proszę

Ustawiamy długość zmiennej ClassName żeby zmieścić tam nazwę klasy okna procesu.

To jest ukryta treść, proszę

Pobieramy nazwę klasy i ustawiamy długość zmiennej na długość klasy. Następnie zwiększamy długość zmiennej title żeby zmieścić tam tytuł okna.

To jest ukryta treść, proszę

Tak jak wyżej, pobieramy tytuł okna i zapisujemy go do zmiennej title, po czym resetujemy jej rozmiar tak aby pasował.

To jest ukryta treść, proszę

Teraz sprawdzamy czy klasa i tytuł okna są takie jak chcemy, potem możemy wstrzyknąć bibliotekę:

To jest ukryta treść, proszę

Dlaczego kombinacje z ExtractFilePath? Bo jak podamy samą nazwę to nie znajdzie biblioteki.

To jest ukryta treść, proszę

Zamykamy wszystkie bloki kodu i gotowe! Teraz tylko na przykład pod przyciskiem (zdarzenie onClick) przypisujemy:

To jest ukryta treść, proszę

I wsio! Mam nadzieję że wystarczająco ładnie wytłumaczyłem, jeśli chcecie mogę wrzucić jakieś przykłady dllek związane z metinem (nie wiem jak się obchodzi hs'a, poszukam na forum), np. wyświetlanie własnego tekstu na oknie itp.

Cya.

 

P.S. Do admina forum: Przydałoby się kolorowanie składni dla programistów, tak prawie nic nie widać... Code koloruje tylko VB z tego co zauważyłem (i inne odmiany Basica, w tym AutoIt bo jest na nim bazowany). Mogę pomóc w tym.

#EDIT:

A nie, jednak koloruje, tylko na początku nie chciał...

[TUT] Full Autoit V3 Tutorial

yo po 1 nie kayloger tylko bot który zapamiętuje hasła -_-

stop1.png

Opublikowano

wszystko ładnie opisane nie mam zastrzeżeń (mogłem coś przeoczyć ale raczej wszystko jest ok) i masz +

Opublikowano

A w czym ma wykrywać viry? Przecież to jest samo winapi... nie powinno wykryć żadnego bo nic tam nie ma ;p Ale jak coś znajdziesz to daj znać, poszukam innego sposobu.

[TUT] Full Autoit V3 Tutorial

yo po 1 nie kayloger tylko bot który zapamiętuje hasła -_-

stop1.png

Opublikowano

Ladnie opisane, + dla kolegi. Zaraz sam postaram sie cos takiego zrobic bo chce zobaczyc ile wirusow bedzie wykrywalo na virustotal.

 

jeśli chodzi Ci o np: injector+moberhac(dll) to wirki są z powodu injectora dll jest czyste. Jeśli o to Ci chodziło ;p

Kocham mpcforum.pl!!!

18706.png

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ę

Zaloguj się poniżej.

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