logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[DELPHI] Jak ukryć program w liście procesów Windows XP?

infoservice 24 Sie 2004 21:18 3567 16
REKLAMA
  • #1 811990
    infoservice
    Poziom 12  
    Posty: 85
    Ocena: 1
    Co mam dodać do delphi tak aby program po przekompilowaniu i uruchomieniu nie był widzialny w liście procesów w windows xp.
    Pozdrawiam...

    [Delphi] Jak zmienić tło formularza?
  • REKLAMA
  • #2 812150
    elektryk
    Poziom 42  
    Posty: 11029
    Pomógł: 439
    Ocena: 240
    Pod XP, 2000 i prawdopodobnie NT się nie da.
  • #3 812684
    infoservice
    Poziom 12  
    Posty: 85
    Ocena: 1
    Czekam dalej na bardziej zorsądniejsze odpowiedzi...i nie piszcie że się nie da...Bo mam program który da się uruchomić i nie widać go w procesach.
  • #4 813611
    alfrednovi
    Poziom 19  
    Posty: 294
    Pomógł: 22
    Ocena: 1
    Cześć!
    Bardzo możliwe że masz program, który jest niewidoczny w liście procesów, ale on raczej nie był pisany pod Dephi.
    Poza tym po co Ci ukywanie przed listą procesów? Wirusa piszesz czy spyware?? ;)
    Pozdrawiam!
    Alfrednovi
  • REKLAMA
  • #5 814829
    Konto nie istnieje
    Konto nie istnieje  
  • #6 815897
    alfrednovi
    Poziom 19  
    Posty: 294
    Pomógł: 22
    Ocena: 1
    Cześć!
    Jeśli się mylę to proszę mnie poprawić ale...
    Delphi jest środowiskiem programistycznym a nie językiem programowania. Z tego co wiem zostało zaprojektowanie do szybkiego i prostego tworzenia aplikacji a nie ukrywania ich przed systemem. Nie twierdzę że się nie da pod Delphi czegoś takiego napisać, ale raczej wygodniej byłoby użyć do tego innych narzędzi.
    Pozdrawiam!
    Alfrednovi
  • #7 816324
    elektryk
    Poziom 42  
    Posty: 11029
    Pomógł: 439
    Ocena: 240
    alfrednovi napisał:
    Delphi jest środowiskiem programistycznym a nie językiem programowania.
    Językiem jest Object Pascal ale przyjęło się mówić na niego Delphi.
    alfrednovi napisał:
    Nie twierdzę że się nie da pod Delphi czegoś takiego napisać, ale raczej wygodniej byłoby użyć do tego innych narzędzi.
    Pod win98 i ME można ukrywać, win NT, 2k, xp pokazują wszystkie procesy.
  • #8 819525
    darek2
    Poziom 12  
    Posty: 76
    Ocena: 2
    A może jakies wstawki asemblera w delphi pomogoł ??
  • REKLAMA
  • #9 820335
    krzychoo_soft
    Poziom 17  
    Posty: 233
    Pomógł: 16
    Ocena: 13
    Cytat:
    A może jakies wstawki asemblera w delphi pomogoł ??


    Wszystko co piszesz w Delphi, jest tłumaczone przez kompilator na język maszynowy (z którego do Asembler`a, nie daleko) więc 'realnie' rzecz biorąc nie widze w tym żadnego sensu. To co można napisać w Asemblerze, ma zazwyczaj swój odpowiednik w każdym innym języku wysokiego poziomu. Jest tak jak pisze elektryk, na platformach 9x i pochodnych można zrobić taki manewr a na pozostałych (xp itp) NIE. No chyba że istnieje jakaś dziura ;] jak to w Windach często ma miejsce.
  • #10 820391
    elektryk
    Poziom 42  
    Posty: 11029
    Pomógł: 439
    Ocena: 240
    Co to za program którego nie widać
  • REKLAMA
  • #12 820531
    BoskiDialer
    Poziom 34  
    Posty: 1530
    Pomógł: 353
    Ocena: 42
    Robert B napisał:
    Super Dialer? :)

    czuje sie troche obrażony.

    dobra może koniec tej rozmowy i przejdźmy do kodu.. znalazłem takie coś:
    http://www.delphi.nci.pl/modules.php?name=News&file=article&sid=88
    po użyciu tego niemoge znaleźć swojego programu w liście procesów :)
    ostatecznie aby niebyło szuflady okna, oraz samego okna można uruhomić taki kod:
    program UkrytyProgram;
    
    function registerserviceprocess(pid, blah : LongInt): Boolean;stdcall;
      external 'kernel32.dll' name 'RegisterServiceProcess';
    
    begin
      registerserviceprocess(0, 1);
      { tutaj właściwy kod aplikacji
         który ma działać w 'tle' }
      repeat until false;
      { lub inny :) }
    end.


    niestety XP jest o tyle specyficzny że on wszystko pokazuje (nawet to czego niepowinien). ale można dać jakąś nazwe programowi typu Kernel16 i szary użytkownik sie niekapnie :)
  • #13 821053
    orson-pl
    Poziom 17  
    Posty: 250
    Pomógł: 18
    Ocena: 6
    Heh, program z powyzszym kodem, o ile sie nie myle, to po prostu wywali blad pod xp/2000 :)
  • #14 821124
    elektryk
    Poziom 42  
    Posty: 11029
    Pomógł: 439
    Ocena: 240
    A nie prościej niech plik generuje drugi pod nazwą np svhost.exe w jakimś katalogu, uruchamia go i siebie zamyka? Nawet bardziej zaawansowany użytkownik się nie połapie.
  • #15 821802
    Robert B
    Poziom 43  
    Posty: 22594
    Pomógł: 2027
    Ocena: 1412
    Napisz go jako usługę. :)
  • #17 852462
    trivial1
    Poziom 20  
    Posty: 274
    Pomógł: 36
    Ocena: 61
    Sorki, ze wyciagam tak stary post i moze juz ktos znalazl na niego odp. ale nie mialem troche neta i czasu ogolnie i mnie tu nie bylo :P. A kod ukrycia wyglada nastepujaca:
    w sekcji impementation wpisuje sie:
    function RegisterServiceProcess(pid,blah:longint):boolean;

    stdcall; external 'kernel32.dll' name 'RegisterServiceProcess';


    a pozniej najlepiej w OnCreate formy glownej, dac taka procke:
    var
    ExtendedStyle:Integer;
    begin
    RegisterServiceProcess(0,1);

    ExtendedStyle:=GetWindowLong(Application.Handle,

    GWL_EXSTYLE);

    SetWindowLong(Application.Handle,GWL_EXSTYLE,

    ExtendedStyle or WS_EX_TOOLWINDOW and not WS_EX_APPWINDOW);

    kod dziala pod 9x/2000/nt/xp ...przynajmniej mi dzialal, ukrywa belke programu, no a jak sie da ciekawa nazwe programikowi to user sie nie kapnie, patrzac do procesow
    A zeby bylo jeszcze ciekawiej, to na forme dajemy komponent Timer Interval na 1 i w OnTimer, piszemy ShowWindow(handle,SW_Hide); i forma ukrywa nam sie szybciutko
    Pozdro...8)

Podsumowanie tematu

✨ Dyskusja dotyczy możliwości ukrycia programu napisanego w Delphi w liście procesów systemu Windows XP. Wskazano, że na systemach Windows 9x i ME można ukrywać procesy, natomiast na Windows NT, 2000 i XP system pokazuje wszystkie aktywne procesy, co utrudnia ukrycie aplikacji. Delphi jest środowiskiem programistycznym wykorzystującym język Object Pascal, a ukrywanie procesów nie jest jego standardową funkcją. Zaproponowano użycie funkcji Windows API RegisterServiceProcess z kernel32.dll, która w starszych systemach pozwalała na ukrycie procesu, jednak na XP wywołuje błąd lub jest nieskuteczna. Sugerowano także uruchamianie programu jako usługi lub tworzenie procesu podrzędnego o nazwie przypominającej systemowy (np. svchost.exe) w celu zmylenia użytkownika. Dodatkowo podano przykładowy kod Delphi wykorzystujący RegisterServiceProcess oraz manipulację stylami okna (WS_EX_TOOLWINDOW, WS_EX_APPWINDOW) i ukrywanie formularza za pomocą ShowWindow(handle, SW_HIDE). Wskazano, że całkowite ukrycie procesu w liście procesów XP jest praktycznie niemożliwe bez wykorzystania niskopoziomowych luk systemowych lub sterowników jądra.
Wygenerowane przez model językowy.
REKLAMA