Chirurgia endoscopică a hipofizei
"Standardul de aur" în chirurgia hipofizară îl reprezintă endoscopia transnazală transsfenoidală. Echipa NeuroHope este antrenată în unul din cele mai mari centre de chirurgie a hipofizei din Europa, Spitalul Foch din Paris, centrul în care a fost introdus pentru prima dată endoscopul în chirurgia transnazală a hipofizei, de către neurochirurgul francez Guiot. Pe lângă tumorile cu origine hipofizară, prin tehnicile endoscopice transnazale pot fi abordate numeroase alte patologii neurochirurgicale. www.neurohope.ro |
Algoritm sistem licentiere
Last Updated: Aug 26 2017 19:58, Started by
red46
, Apr 17 2017 21:49
·
0
#37
Posted 26 August 2017 - 17:20
salut,
indiferent de metoda de protectie pe care o alegi, codul care ruleaza pe calculatorul celor carora le vei da programul il poti compila astfel incat executabilul sa difere de la om la om, insa sa faca acelasi lucru. depinde si de limbajul de programare sau de compilator, si inca de alti factori. uite ceva in pascal var a,b:integer; function scriere(a,b:integer):integer;forward; procedure schimb(var a,b:integer);forward; procedure citire_a(var a:integer);forward; procedure citire_b(var b:integer);forward; function scriere(a,b:integer):integer; begin writeln('a=',a); writeln('b=',; end; procedure schimb(var a,b:integer); var temp:integer; begin temp:=a; a:=b; b:=temp; end; procedure citire_a(var a:integer); begin readln(a); end; procedure citire_b(var b:integer); begin readln(; end; begin citire_a(a); citire_b(; scriere(a,; schimb(a,; scriere(a,; end. codul respectiv poate fi compilat rezultand executabile diferite care insa fac acelasi lucru, prin permutarea procedurilor si functiilor. adica in loc sa scrii functia de scriere prima, o scrii dupa procedura citire_a. executabilele vor avea codul procedurilor in cauza in alte adrese de memorie unul fata de altul. in functie de nr persoanelor carora le dai executabile si mijlocul prin care le dai, poti face permutarile manual sau automat. uite ceva automat tot in pascal, lucrand pe fisierul de mai sus: {$mode objfpc} uses Classes, SysUtils; var textul: TStringList; i,pozitia,nr_beginuri,j,linii_text,a,b:integer; v:array[1..100]of tstringlist; stiva:array[1..100] of integer; n,k,contorul:integer; procedure pune_in_vector(i,j:integer); var contor:integer; begin inc(pozitia); v[pozitia]:=tstringlist.create; for contor:=i to j do v[pozitia].add(textul[contor]); if a=-1 then a:=i else b:=j; end; procedure sterge_text; begin for i:=a to b do textul.delete(a); end; procedure init(k:integer); begin stiva[k]:=0; end; function succesor(k:integer):boolean; begin if stiva[k]<n then begin inc(stiva[k]); succesor:=true end else succesor:=false; end; function valid(k:integer):boolean; var i:integer; begin valid:=true; for i:=1 to k-1 do if stiva[k]=stiva[i] then valid:=false; end; function solutie(k:integer):boolean; begin if k=n then solutie:=true else solutie:=false; end; procedure afisaj; var i,j,a1,nr:integer; begin a1:=a-1; inc(contorul); for i:=1 to n do begin nr:=stiva[i]; for j:=v[nr].count-1 downto 0 do textul.insert(a1,v[nr].strings[j]); textul.insert(a1,''); a1:=a1+v[nr].count+1; end; textul.delete(a1); textul.SaveToFile('program'+inttostr(contorul)+'.pas'); sterge_text; end; procedure permutari; begin n:=pozitia; k:=1; init(k); while k>0 do begin while succesor(k) do if valid(k) then if solutie(k) then afisaj else begin inc(k); init(k); end; dec(k); end; end; begin pozitia:=0; a:=-1; contorul:=0; textul := TStringList.Create; textul.LoadFromFile('program.pas'); linii_text:=textul.count-1; for i:=0 to linii_text do if (pos('procedure',textul[i])>0) or (pos('function',textul[i])>0) then if pos('forward',textul[i])=0 then begin nr_beginuri:=0; for j:=i to linii_text do if pos('end',textul[j])>0 then if nr_beginuri=1 then begin pune_in_vector(i,j); break; end else dec(nr_beginuri) else if pos('begin',textul[j])>0 then inc(nr_beginuri); end; sterge_text; permutari; textul.Free; writeln('apasa enter');readln; end. programul foloseste metoda backtracking pt a face permuratile intre procedurile si functiile declarate in noi fisier. aceste noi fisiere le poti compila automat, rezultand mai multe executabile care fac acelasi lucru dar codul lor difera prin locatia diferita a procedurilor in memorie. aceste permutari ale procedurilor le poti combina cu permutari de variabile sau cu combinari de proceduri si functii scrise in moduri diferite (de exemplu la interschimbarea variabilelor sa folosesti alte metode), cu functii ce returneaza o constanta sau alte metode |
#39
Posted 26 August 2017 - 19:58
In anumite cazuri sa nu mai mearga aplicatia crack (acum depinde si ce cauta ea).
Mai bine faci un loader custom cu tot felul de criptari/amestecuri si alte giumbuslucuri si pana-i dai de capat te cam saturi. Edited by neagu_laurentiu, 26 August 2017 - 20:04. |
Anunturi
▶ 0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users