Zabezpieczenie (prawie gotowe)

0

Witam. Zrobiłem takie małe zabezpieczenie że w programie zabezpieczającym jest zaszyfrowany program właściwy. Do uruchomienia programu właściwego trzeba podać hasło, które nie jest porównywane z żadnym innym, ale jest używane do deszyfrowania programu właściwego. Aplikacja zabezpieczająca ukrywa się na czas działania programu, próbując go cały czas usunąć. Gdy to się uda kończy pracę.

Teraz tak:
Mam 2 problemy:
1: Jak zrobić żeby jak ktoś zamknie program zabezpieczający na procesach to jak zamknąć program właściwy i go usunąć, lub jak usunąć program zabezpieczający z listy procesów.
2: Teraz program zabezpieczający wykorzystuje swoje zasoby za pomocą klasy TResourceStream. Jak zrobić żeby korzystał z zewnętrznego pliku zasobów (np. encryptedfile.res)

Z góry dziękuję za pomoc!

0
  1. zabijasz proces
  2. podajesz ten plik w unicie programu. {$R zasob.RES}
0
djmentos napisał(a)
  1. zabijasz proces
  2. podajesz ten plik w unicie programu. {$R zasob.RES}

Tyle to ja akurat wiem. I w taki sposób dodaje plik zasobów. Ale mi chodzi o dynamiczne dołączanie zasobów z zewnętrznego pliku. Przy zamykaniu programu zabezpieczającego na procesach to nie wykonuje się formdestroy, choć nie wiem dlaczego.

0

to zrób inaczej ;)
niech zabezpieczana aplikacja sprawdza czy zabezpieczenie jest aktywne i jeżeli nie będzie to się zamyka ;)

0
djmentos napisał(a)

to zrób inaczej ;)
niech zabezpieczana aplikacja sprawdza czy zabezpieczenie jest aktywne i jeżeli nie będzie to się zamyka ;)

ale ona musi być jeszcze usunięta

0

Niech właściwy program sprawdza co jakiś czas czy jest uruchomiony program zabezpieczający, jeśli nie to go odpala.

0

a jak dynamicznie dołączyć plik zasobów?

0

Nie chcę Cię martwić ale :
używając byle jakiego programu do odzysku danych można program bez problemu odzyskać
nie mówiąc już o metodzie szyfrowania która jest pewnie do złamania w krótkim czasie.
ogólnie szkoda sobie głowę zawracać aby deszyfrować i zapisywać deszyfrowaną aplikacje.
bo to marne zabezpieczenie .

0
Piotrekdp napisał(a)

Nie chcę Cię martwić ale :
używając byle jakiego programu do odzysku danych można program bez problemu odzyskać
nie mówiąc już o metodzie szyfrowania która jest pewnie do złamania w krótkim czasie.
ogólnie szkoda sobie głowę zawracać aby deszyfrować i zapisywać deszyfrowaną aplikacje.
bo to marne zabezpieczenie .

Aplikacja właściwa jest szyfrowana algorytmem Blowfish, ale mam w planach dodanie 2 algorytmu, np RC5

0

a co ze skasowaniem , pomyslałes o tym ze da sie bardzo latwo taki plik odzyskac ?
ja bym proponował jeżeli juz to nadpisywać wielokrotnie plik w procesie usuwania

0

jeszcze możesz użyć jakiegoś packera, utrudni to sprawę

0
Piotrekdp napisał(a)

a co ze skasowaniem , pomyslałes o tym ze da sie bardzo latwo taki plik odzyskac ?
ja bym proponował jeżeli juz to nadpisywać wielokrotnie plik w procesie usuwania

można przed usunięciem dopisywać do pliku w losowych miejscach losowe bajty

0

co do samego próbowania zabijania hmmm niech program strażnik uruchomi program wlasciwyy za pomocą tego kodu jesli (uruchamiany jest 32 bitowy)
po tym kodzie piszesz procedure usuwającą :)

var SI:TStartupInfo;
    PI:TProcessInformation;
    S,Dir:String;
begin
 Dir:=ExtractFilePath(Application.ExeName);
 S:='winrar95.exe a '+Dir+'test.rar '+Dir+'*.*';  //Sciezka exe z ewentualnymi paraametrami 

 FillChar(SI,sizeof(SI),0);
 with SI do
 begin
  dwFlags:=STARTF_USESHOWWINDOW;
  wShowWindow:=SW_SHOW;
  cb:=sizeof(TStartupInfo);
 end;

 if CreateProcess(nil,PChar(S),nil,nil,FALSE,NORMAL_PRIORITY_CLASS,nil,nil,SI,PI) then
  with PI do
  begin
   WaitForInputIdle(hProcess,1000);
   WaitForSingleObject(hProcess,10000);
   WaitForSingleObject(hThread,10000);
   CloseHandle(hProcess);
   CloseHandle(hThread);
  end;
end;

Do postu wyzej Ja to wiem :)
BTW nadpisanie skuteczne to ok 20X po tym juz tylko laboratorium..

0
Piotrekdp napisał(a)

co do samego próbowania zabijania hmmm niech program strażnik uruchomi program wlasciwyy za pomocą tego kodu jesli (uruchamiany jest 32 bitowy)
po tym kodzie piszesz procedure usuwającą :)

var SI:TStartupInfo;
    PI:TProcessInformation;
    S,Dir:String;
begin
 Dir:=ExtractFilePath(Application.ExeName);
 S:='winrar95.exe a '+Dir+'test.rar '+Dir+'*.*';  //Sciezka exe z ewentualnymi paraametrami 

 FillChar(SI,sizeof(SI),0);
 with SI do
 begin
  dwFlags:=STARTF_USESHOWWINDOW;
  wShowWindow:=SW_SHOW;
  cb:=sizeof(TStartupInfo);
 end;

 if CreateProcess(nil,PChar(S),nil,nil,FALSE,NORMAL_PRIORITY_CLASS,nil,nil,SI,PI) then
  with PI do
  begin
   WaitForInputIdle(hProcess,1000);
   WaitForSingleObject(hProcess,10000);
   WaitForSingleObject(hThread,10000);
   CloseHandle(hProcess);
   CloseHandle(hThread);
  end;
end;

Do postu wyzej Ja to wiem :)
BTW nadpisanie skuteczne to ok 20X po tym juz tylko laboratorium..

czyli po procedurze wypakowania i deszyfracji do zmiennej s dać nazwę pliku, tym uruchomić, potem "zepsuć" wypakowany plik i go usunąć?

0

Dzieci, nie bierzcie się za zabezpieczenia skoro pojęcia nie macie... Takie pitolenie nic nie da, możecie sobie wypakowywać nawet do piekła a najgłupszy newbie to sobie ładnie odzyska, po prostu skopiuje podczas działania.

   WaitForSingleObject(hProcess,10000);
   WaitForSingleObject(hThread,10000);

Co za idiota to pisał? Jeżeli proces zostanie zakończony to uchwyt do wątku jest już nieważny.
'Program strażnik', też coś... dzieci, wiecie co to debugger, wiecie, że można monitorować otwierane pliki? Newbie, który nawet z najstarszym WINZPIem sobie rady nie daje to obejdzie...
Użyj komercyjnego protectora jeżeli Twój soft jest faktycznie tak cenny bo sam tylko ułatwiasz życie crackerom /tak, pamiętam wszystkie Twoje tematy o 'zabezpieczeniach'/.

0

Deus zaraz ja mówiłem że to i tak nic nie da gdzieś powyżej no ale jeśli już to podawałem sposób o który pytano. chodziło mi raczej ozwrócenie uwagi na to ,że nawet jeśli skasuje się plik i go nadpisze to można go spokojnie odczytać , uwaga o skopiowaniu w czasie pracy jest to oczywista...
przyznaje z tym wain'tem i bije się w pierś [wstyd]:)

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