Filtr poczty i przeglądarek PORNO!? Projekt na Studia

0

Witam Was moi przyjaciele, otóż Nasz kochany wykładowca rozdał na lab. projekty do wykonania, niby nic ale jak zwykle mi musiał sie przytrafić chyba najtrudniejszy...

Głównie chodzi o stworzenie w Środowisku Delphi aplikacji która ma za zadanie wycinać w przeglądarkach słowa sex i wklejać tam inne słowo [Zakazany OWOC], mało tego filtracja ma też obejmować pocztę czyli przed przekazaniem do programu pocztowego ma skanować czy w treści emaila znajdują się słowa sex i zamienić je na [Zakazany Owoc]...

Całą ta cześć z tą zmianą to pikuś ale proszę powiedzcie mi jak przechwycić to co wpisze się w przeglądarce przed przeglądarką i klientem pocztowym ;/

Jest to praca już na zakończenie :D więc wykonać ją muszę, a naprawdę nie wiem jak to ugryźć..

Rozumiem to tak
Program przechwytuje treść która przechodzi do przeglądarki, skanuje text, zamienia tam słowa sex na zakazany owoc, i dopiero przekazuje do przeglądarki, tak że końcowy użytkownik widzi w tych miejscach słowo Zakazany Owoc ;/ ....

Jest cos jeszcze użytkownik nie może ingerować w przeglądarce (typu proxy) program ma sam przechwycić wartość bez ingerencji człowieka... powalone

Myślałem na początku o proxy ażeby ustawić ale wymaga to konfiguracji w przeglądarkach...

PROSZĘ POMÓŻCIE MI JAK TO OGARNĄĆ ??

Ps. dodam że podobną funkcjonalność mają antywirusy, one skanują treść na stronie, a także emial przed przekazaniem do klienta pocztowego, może tym się sugerować ale jak ? :(

Dziękuje bardzo za pomoc;*

0

Kiedys olesio mi zrobil program ktory przechwytywal co sie klepie w kalkulatorze.
Przechwytywanie polegalo na HOOK'u globalnym (z podanego okna).
Mysle ze to moglbys zrobic w podobny sposob
link do postu: WinAPI (czytanie z okna)

0
Nieobeznany napisał(a)

Kiedys olesio mi zrobil program ktory przechwytywal co sie klepie w kalkulatorze.
Przechwytywanie polegalo na HOOK'u globalnym (z podanego okna).
Mysle ze to moglbys zrobic w podobny sposob
link do postu: WinAPI (czytanie z okna)

Dziękuje przyjacielu :) wszak problem jest bardziej skomplikowany :( mi potrzeba przed wyświetleniem zwartość strony przejąc treść wykreślić słowo sex i zamienić na zakazany owoc, a następnie skierować np. do firefox

i tu się rozchodzi o to że podobne rozwiązanie jest już w antywirusach, ale za cholerę nie mogę znaleźć przykładu i na jakiej zasadzie to się dzieje...

Bardzo proszę o jakieś sugestie gdzie i jak to znaleźć

Dziękuję

0

Nieobeznany: HOOK na funkcję API tutaj niewiele da. Rozwiązaniem pewnie było by napisanie usługi, ktora by
przechwytywała wszystkie pakiety i działała tak jak program typu "Opiekun Ucznia". Można do tego celu chyna
wykorzystać pakiet WinPCAP, ale nigdy nie używałem go w Delphi. Napisałem tylko na próbę używając chyba z
google wyszukanych modułów magneta do napisania czegoś takiego prostego, jak pod adresem poniżej. Może i
to się Tobie do czegoś przyda i naprowadzi Cię: http://www.speedyshare.com/files/27147133/packets_stat.rar
Także pogoogluj, przeanalizuj te moduły (w paczce byly chyba jeszcze jakieś inne) to powinieneś coś sklecić ;/

0

hm.. ok a przyjmijmy przez chwilkę że stworzymy serwer proxy a z poziomu aplikacji zmienimy ustawienia np. firefoxa na proxy naszej aplikacji (wtedy da się obejść w opcjach przeglądarki wyłączyć proxy :P) ale profesor nie musi o tym wiedzieć P

Macie może jakieś źródła Servera Proxy?
Zasada działania:
Przeglądarka pyta serv proxy o stronę -> Serwer Proxy pobiera stronę zmienia treść sex na Zakazany Owoc -> Przegladraka otrzymuje już zmodyfikowany kod strony :)

Poradzi ktoś ?

0

Dlaczego ma nie wiedzieć? - to zawsze może być poprawne rozwiązanie... W sumie cały ruch do cenzury przez proxy, a tam zamiana brzydkich słówek...

Dokumentacja proxy w synapse: http://synapse.ararat.cz/doku.php/public:howto:proxy
Przykład proxy w synapse: http://synapse.ararat.cz/files/contrib/httpproxydemo.zip

0

Jeżeli nie chcesz stawiać proxy które można obejść, to może połącz moduły ktore użyłem w Packet Stats z kodem, ktory jest tutaj:
http://www.delphipages.com/forum/showthread.php?t=208178 - niestety ponoć nie działa on pod Windowsem 7, a z tego co się w
temacie kiedyś zorientowałem, to aby blokować skutecznie wybrany ruch z poziomu aplikacji w Delphi trzeba by było używać chyba
vxd jakiś albo inwazyjnych metod ktorych nie znam. Ja wiem jedno, użyłem kodu z linka powyżej, po niewielkich zmianach i dałem
go jako plugin do Expressivo aby mi nie czepiał się "mojego klucza" blokując mu cały ruch internetowy po PIDzie procesu rodzica ;P
W sumie pod XP to działa, bo do czytania mi leniowi czasami napisów w filmach wystarczają BestPlayer + Expressivo i komunikacja
wspomnianych po DDE (a nie po Socketach jak w AllPlayerze, bo uniemożłiwia wtedy taki plugin). Wracając do tematu, możesz też
w taki sposób jak poniżej zapisywać zawartośc pakietów, oczywiście można to robić na przykład tylko w przypadku kiedy jakiś port
docelowy to 80, później przeszukać MemoryStream (dlatego Stream, a nie string, bo pakiet możne zawierać znaki #0 i inne) i po
tym sprawdzeniu dany pakiet blokować albo podmieniać. Tylko właśnie największa trudność dla mnie to wykombinowac łatwy kod,
ktory jednocześnie podmieni w pakiecie co potrzeba i przekaże go dalej. To samo to problemy ze skutecznym jego zablokowaniem.
Tylko dodam, że blokowanie nie dośc że nie działa chyba pod Windows 7 to również może spowodować (i robi to u mnie pod XP)
komunikaty o braku pamięci wirtualnej. Swoją drogą te moduły magneta moga fajnie działać jak prosty Sniffer, ale i tak różnorakie
domorosłe hackery lamki wolą używać Hooków na klawisze i tak rejestrować hasła, a skuteczniejsza metoda to chyba pobierać to
co ciekawego zaweierają pakiety podczas logowania do serwisów, bo często są one nieszyfrowane. Lecz to dykusja nie na teraz.

procedure TMainForm.PacketEvent(Sender: TObject; PacketInfo: TPacketInfo);
begin
  MS.WriteBuffer(PacketInfo.DataBuf, PacketInfo.DataLen);
end;
0

Czyli po prostu musisz napisać sniffer'a :)

Ja też się kiedyś w to bawiłem i napisałem takowego w VC++

Zamieszczam część kodu z mojej aplikacji, może coś Ci pomoże: http://4programmers.net/Pastebin/1077

0

:) Koledzy dziękuje bardzo za burzę mózgów. Sęk w tym co napisał olesio, na win 7 to nie działa, ms wymaga teraz podpisów oraz praw admina do większości prostych operacji.

Hm.. kurde nie moznaby porstu blokowac dostęp do aplikacji po wpsianiu słowa sex (HOOK na kawiturę i schowek) :P no tak ale takim sposbem raczej tego nie zalicze...

Moze inaczej.. skoro nie mam dostępu do przeglądarki, wykryc proces włączania np. firefoxa i załączyc własna apliakcję jako przeglądarkę i tam np. WebBrowser i przechwytywac tresc i klawisze... Wtedy tresc zmodyfikować i wsywietlic w webbrowser :) hehe ale to juz naprwde nagiecie ;/ ale najprostrze rozwiaznie na chwile obecną. NIe mam pojecia jak to ugrysc dalej.
NIby takie proste a niby nie. Wszytko oprocz tego przejecia tresci przeglodarki jest proste...

pomyślmy dalej

0

No przejęcie z przeglądarki nie jest proste, bo na przykład Opera ma wszystkie swoje elementy jako obiekty pod jedną klasą oraz uchwytem i nie
można się do nich dobrac poza pobraniem nazwy oraz adresu z aktywnej karty. Jednak największy problem, to skutecznie zablokować połączenie i
ewentualnie je przekierować. Bo zawartość pakietów można sprawdzić tym pakietem od Magenta (a wcześniej źle chyba podałem cała ich nazwę).
Wątpie również aby firma prodokująca Opiekuna Ucznia czy tam Opiekuna Dziecka podpowiedziała jak napisali swoje produkty że tam to działa, a
analizowanie nawet pod DEDE pewnie niewiele by dalo. Ja tylko kiedyś napisałem loader ktory powodowal, że Opiekun przyjmował dowolne hasło.
Jednak okazalo się, że pod nowszymi wersjami mimo znalezienia właściwych danych w pamięci i podmianie skoku całość przestawała działać, a w
nowszej wersji nie udało mi się tego sprawdzić, bo gdzieś w rejestrze zapisał sobie informację, że okres testowy ów aplikacji już wcześniej minął.

0
olesio napisał(a)

No przejęcie z przeglądarki nie jest proste, bo na przykład Opera ma wszystkie swoje elementy jako obiekty pod jedną klasą oraz uchwytem i nie
można się do nich dobrac poza pobraniem nazwy oraz adresu z aktywnej karty. Jednak największy problem, to skutecznie zablokować połączenie i
ewentualnie je przekierować. Bo zawartość pakietów można sprawdzić tym pakietem od Magenta (a wcześniej źle chyba podałem cała ich nazwę).
Wątpie również aby firma prodokująca Opiekuna Ucznia czy tam Opiekuna Dziecka podpowiedziała jak napisali swoje produkty że tam to działa, a
analizowanie nawet pod DEDE pewnie niewiele by dalo. Ja tylko kiedyś napisałem loader ktory powodowal, że Opiekun przyjmował dowolne hasło.
Jednak okazalo się, że pod nowszymi wersjami mimo znalezienia właściwych danych w pamięci i podmianie skoku całość przestawała działać, a w
nowszej wersji nie udało mi się tego sprawdzić, bo gdzieś w rejestrze zapisał sobie informację, że okres testowy ów aplikacji już wcześniej minął.

olesio, masz rację. Dlatego najlepszym rozwiązaniem byłoby pokombinować z tym proxy, tak czy siak pakiet będzie szedł przez proxy więc jego późniejsza wartość można zmodyfikować...

0

a może zainteresuj się http://www.softdir.pl/details.php?id=0A2F460862 lub hookiem na funkcje recv z WS2_32

0

No właśnie WinPcap polecałem na początku, ale ja z tego nigdy samodzielnie nie korzystałem, bo wiem, że wykorzystuje go sniffer
WireShark i pewnie wiele podobnych aplikacji, tylko nie wiem czy da się dzięki WinPcap skutecznie również podmieniać i blokować.

0

szopenfx dzieki za pomoc, ale pakiet ten jest w stanie wyłącznie przechwycić pakiet(y), należało by jeszcze dopisać funkcję przekazywania do innej aplikacji.

Dlatego rozsądne jest napisanie aplikacji Servera Proxy i dodania go jako Usługę systemu Windows Xp/7, myślę ze na chwile obecną byłoby to najbardziej realne i mniej problematyczne. Pytanie jakim certyfikatem podpisac aplikacje i czy w ogóle jets sens, w win 7 ma to znaczenie.

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