Przechwytywanie funkcji

0

Cześć
czy istnieje możliwość przechwycenia funkcji bez dostępu do styerowników niższego poziomu windowsa(jądra systemu)?
a przede wszystkim czy w delphi da sie?
Prosze o jakiekolwiek rozwiązanie powyzszego problemu

PS: troche sie pomyliłem nie w tym ms umieściłem ten temat :(
Jakby mógł szanowny moderator przenieś ten temat :) byłbym wdzięczny

0

a jakie dokładnie funkcje?

0

wszystkie.Wiem że systemowe takie jak operacje na plikach trrzeba sie odwoływac do sterowników windowsa, ale np: DirectX czy inne?

0

jasne, że się da... tylko napisz dokładnie czy chcesz przechwytywać funkcje globalnie - z tym byłoby dosyć trudno czy dla konkretnego programu - można pobawić się debug api, wtedy można zatrzymać w dowolnym momencie program i porzebać IAT/ew. breakpointem go ;) /. Kolejna sprawa to to, czy chcesz tylko monitorować wywołania czy podmieniać funkcje.
Tak jak już pisałem napisz bardzo dokładnie co chcesz osiągnąć, a postaram się omówić możliwe zorwiązania ;)

0

owszem, da się w delphi, i to nawet względnie prosto, wystarczy użyć odpowiedniego modułu dostępnego w internecie. ale nie zamierzam powiedzieć co to za moduł, bo nadpisywanie api prawie zawsze pachnie pisaniem wirusa, a ja nie zamierzam w czymś takim pomagać.
dlatego sugeruję, żeby nikt znający nazwę owej biblioteki nie zdradził jej nazwy, dopóki autor tego wątku nie napisze łaskawie po co mu nadpisywanie api.

a tak ogólnie... musisz w kopii programu załadowanej do pamięci nadpisać adres wywoływanej funkcji, zastępując go adresem funkcji o identycznych parametrach z twojej własnej biblioteki. writeprocessmemory + imagehlp + duuużo pracy.

[dopisane]
deus: nadpisując api windowsa przejmuję cały system - mogę zrobić cokolwiek, co mógłby zrobić użytkownik, na przykład usunąć mu co drugi plik z co drugiej partycji. ale nie o to chodzi. chodzi o to, że można bardzo skutecznie ukryć 1) uruchomiony proces wirusa; 2) plik z wirusem na dysku; 3) autouruchamianie wirusa z poziomu rejestru - czyli w zasadzie zakopać program w systemie tak głęboko, że 99% użytkowników systemu nie będzie wiedzieć, że w ogóle coś złapali. przy okazji dość skutecznie utrudni się usunięcie programu z poziomu zainfekowanego systemu.
więc nie mów, że można co najwyżej porobić statystyki.

Deus napisał(a)

i jeszcze jedno ŁF: jeśli chcesz monitorować wywołania do 4 funkcji to nic nie trzeba nadpisywać

o, a to coś nowego - powiedzmy, że chcę nadpisać NtQueryInformation we wszystkich uruchomionych w systemie programach - jak to zrobić? debug api? sądzę, że wątpię ;-)

0

przesadzasz ŁF ;) obecnie bez Ring0 zbyt wiele się nie zdziała - gdyby dało się np. podpiąć pod system plików czy chociażby zarządzania procesami pod ring3 to byłoby dużo wirusów, które na winNT byłyby naprawdę groźne... lokalne podpięcie się pod importy innego procesu nie jest groźne... no, chyba, że wyszukasz sobie explorera i podepniesz pod CreateProcess - wtedy chociaż uzyskasz informacje o części odpalanych programów... ale Delphi zdecydowanie nie nadaje się do pisania wirusów...

i jeszcze jedno ŁF: jeśli chcesz monitorować wywołania do 4 funkcji to nic nie trzeba nadpisywać ;)

0

heh jak sie go zamyka? amsz do niego jakieś źródło?

a co do wcześniejszych postów:

to chce a by były funckje systemowe np: monitorowane.Zew w delphi w debugerze da sie przechwytywac to kazdy uzytkownik delphi wie.

0

heh... fajne, ale bez większych problemów mogę to obejść - opłacało się bawić w tworzenie nowej sztuczki antydebug ;) /może nie taka oryginalna ale działa/ po drobnych modyfikacjach robi swoje :> Jest też inna metoda, powiedzmy firmowa, ale...
a poważnie żeby coś takiego napisać trzeba mieć łeb, ale... to nadal nie nadaje się zbytnio na wirusa ;) Możliwości ma nawet niezłe, ale kontroli nad systemem nadal nie jest w stanie przejąć.. naprawa funkcji systemowych to już insza sprawa, ale jak się wie co zostało nadpisane to można zamapować bibliotekę i przekopiować ep każdej zmienionej api ;).

p.s. widać, że pliczek dll jest składany z kilku modułów ale do końca mi to na Delphi wygląda... i jeszcze jedno - to bardziej crackme niż hackme :P

//do postu powyżej: chodziło mi o zaimplementowanie namiastki debuggera w Twoim programie...

0

jak się go wyłącza?

0

z tego co wyczaiłem to na dysku C utwórz plik 'quit' /bez apostrofów.../ gdyby ktoś był chętny to mogę po południu napisać anty-closeme, które przywraca system do równowagi /prawie/...

ŁF - jedna sprawa - pisałem o przechwytywaniu api w jednym procesie nie globalnie, Faktyczną kontrolę nad systemem otrzymasz tylko i wyłącznie gdy nadpiszesz ntoskrnl a wierz mi, pod R3 nie jest to takie łatwe... chociaż znam osobę, która nie ma z tym problemów...jeśli zaś chodzi o zamknięcie nie pomyślałeś o takiej jednej funkcji :> byłeś blisko - coś podobnego do OpenProcess tylko częściej stosowane 'w moim fachu' ;)

//skoro masz taką władzę nad systemem to sformatuj partycję systemową podczas pracy systemu - tu Ring3 wysiada;) i gdzie tu władza?

//

ŁF napisał(a)

mogę zrobić cokolwiek, co mógłby zrobić użytkownik

  • Ł
0

hehe jeszcze wiele musze sie nauczyć o tym windowsie :) (i nie tylko).
Szkoda że nie znacie żadnego artu an temat dobierania się do kreneli :-)
Dzięki za wszystkie posty

0
ŁF napisał(a)

dlatego sugeruję, żeby nikt znający nazwę owej biblioteki nie zdradził jej nazwy, dopóki autor tego wątku nie napisze łaskawie po co mu nadpisywanie api.

30 sek szukania w google

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