Malo da pojasnim...
Pristupio sam prvom sloju resavanja problema tako sto sam napravio enkripciju izvrsne datoteke koju desifrujem na disku i pokrenem. Mana ovoga je sto (koliko god je ja zavukao duboko u neki temp) ozbiljniji korisnik moze da je pronadje.
Sa druge strane, mogao bih da zakljucam datoteku kao sistemsku, i dozvolim da samo ona bude aktivna (recimo koristeci paralelne niti - jednu koja ce je desifrovati i zakljucati, zatim na kratko odkljucati i pokrenuti drugu nit, a zatim pokrenuti program,druga nit ce uporno zakljucavati datoteku,... bez obzira koliko se aktivno koristio unlocker...)
Druga ideja bi bila da je pokrenem kao zasticeni kernelov modul u ram-u (ili nadogradnja ove ideje), ...
samo ne znam koliko je to opet efikasno i da li je stvarno potrebno...
Code:
#include <stdio.h>
#include <io.h>
#include <fcntl.h>
/* The following line is needed to
compile using the Microsoft visual C compiler */
#include <sys/locking.h>
/* Uncomment For Concurrent Write Test */
/* #include <dos.h> */
char write_buffer[] = { "Purl Gurl Rocks And Rolls!" };
int main (int argc, char *argv[])
{
int file_handle;
int data_size;
/* Open Or Create New File For Write - Truncates Existing File */
file_handle = open (argv[1], O_WRONLY | O_CREAT | O_TRUNC);
if (file_handle != -1)
{
/* Lock Error Check */
/* Please uncomment for Visual C */
if (_locking (file_handle, LK_NBLCK, 20L))
/* uncomment for other compilers */
/* if (lock (file_handle, 0L, 20L)) */
{ printf ("File Lock For %s Failed\n", argv[1]); }
else
{
printf ("File %s Is Locked\n", argv[1]);
/* Write File */
data_size = write (file_handle, write_buffer, sizeof (write_buffer));
/* Write Error Check */
if (data_size != sizeof (write_buffer))
{ printf ("Write To %s Failed\n", argv[1]); }
else
{ printf ("Write To %s Successful\n", argv[1]); }
/* Uncomment To Allow Time For Concurrent Write Test */
/* sleep (30); */
/* Unlock File */
/* Please uncomment for Visual C */
_locking (file_handle, LK_UNLCK, 20L);
/* uncomment this line for other compilers */
/* unlock (file_handle, 0L, 20L); */
/* Close File */
close (file_handle);
}
}
return 0;
}
^Ovo je skolski primer, ali ovo obican Unlocker razbija
http://www.brothersoft.com/sec...k_dll_device_driver_44509.html
^ovo je malo ozbiljnije
http://www.brothersoft.com/uti...down_-_free_edition_34614.html
^ Ovo je takodje zanimljivo
Dajte vi neki primer koda za zakljucavanje, bio bih vam veoma zahvalan...
I ideje su dobrodosle ...
P.S. Izvinjavam se zbog konfuznosti svojih odgovora, prilicno sam bio angazovan ovih dana na nekim drugim temema...
Marko
Sve se menja.
Promena je stanje koje je konstanto. ??? Ups, kako to?
http://blender-srbija.forummotion.com/