FAQ | Points | Add... | Recent posts | Search | Register | Log in


Jak zabezpieczyć aplikację przed kopiowaniem?


Post new topic  Reply to topic      Main Page -> Forum Index -> Programming Generally -> Jak zabezpieczyć aplikację przed kopiowaniem?
Author
Message
machoney
Poziom 15
Poziom 15


Joined: 23 Feb 2004
Posts: 210
Location: Tarnów

Post#1 Post from the author of the topic 10 Mar 2008 16:06   

Jak zabezpieczyć aplikację przed kopiowaniem?


Witam,
napisałem sofcik, który chcę wypuścić w wersji demo w pełni funkcjonalne przez 30 dni. Następnie program ma poprosić o klucz. Program jest w instalce i klucz powinien być przypisany do komputera. Znalazłem coś odnośnie woluminu dysku ale to nie rozwiązanie bo po formacie wolumin się zmienia i klucz nie zadziała. Czy ktoś ma sposób na pobranie w delphi lub przez WinAPI sprzętowego numeru np. dysku, procesora lub biosu? Może jest na to inny sposób. proszę o pomoc, pzd
Back to top
   
Guest
Poziom 10
Poziom 10





Post#2 10 Mar 2008 17:41   

Re: Jak zabezpieczyć aplikację przed kopiowaniem?


GetVolumeSerialNumber powinno wystarczyć.
Back to top
   
Google

Google Adsense


Post# 10 Mar 2008 17:41   





Back to top
   
machoney
Poziom 15
Poziom 15


Joined: 23 Feb 2004
Posts: 210
Location: Tarnów

Post#3 Post from the author of the topic 10 Mar 2008 18:14   

Re: Jak zabezpieczyć aplikację przed kopiowaniem?


próbowałem coś takiego:
Code:

function ID: string;
var
   VolumeSerialNumber : DWORD;
   MaximumComponentLength : DWORD;
   FileSystemFlags : DWORD;
   SerialNumber : string;
begin
  GetVolumeInformation ( 'C:', nil, 0, @VolumeSerialNumber, MaximumComponentLength, FileSystemFlags, nil, 0 );
  SerialNumber := IntToHex( HiWord( VolumeSerialNumber ), 4 ) +  IntToHex( LoWord( VolumeSerialNumber ), 4 );
  Result := SerialNumber;
  form1.edit1.text := result;

end;

niestety to zwraca mi serial woluminu.

Jaką ma składnię GetVolumeSerialNumber bo nigdy tego nie używałem.
Back to top
   
Guest
Poziom 10
Poziom 10





Post#4 10 Mar 2008 18:17   

Re: Jak zabezpieczyć aplikację przed kopiowaniem?


machoney wrote:
Jaką ma składnię GetVolumeSerialNumber bo nigdy tego nie używałem.

Sprawdź w MSDN. Programowanie to głównie korzystanie z dokumentacji.
Back to top
   
machoney
Poziom 15
Poziom 15


Joined: 23 Feb 2004
Posts: 210
Location: Tarnów

Post#5 Post from the author of the topic 10 Mar 2008 19:26   

Re: Jak zabezpieczyć aplikację przed kopiowaniem?


Nie znalazłem jeszcze dokładnego opisu ale z tego co znalazłem mam wrażenie że to jest to samo co GetVolumeInformation. Jesteś pewny że da mi to serial dysku i zarówno z partycji c: jak i z d: wynik będzie ten sam i po formacie się nie zmieni?
Back to top
   
Guest
Poziom 10
Poziom 10





Post#6 10 Mar 2008 19:33   

Re: Jak zabezpieczyć aplikację przed kopiowaniem?


Numer seryjny partycji po formacie zmienia się.
http://delphi.about.com/od/windowsshellapi/a/volumeserial.htm
http://msdn2.microsoft.com/en-us/default.aspx
Back to top
   
machoney
Poziom 15
Poziom 15


Joined: 23 Feb 2004
Posts: 210
Location: Tarnów

Post#7 Post from the author of the topic 10 Mar 2008 20:30   

Re: Jak zabezpieczyć aplikację przed kopiowaniem?


Dlatego szukam czegoś stałego w sprzęcie. Może coś z BIOS-em albo z prockem. Potrzebuję coś co się nie zmieni po formacie
Back to top
   
Guest
Poziom 10
Poziom 10





Post#8 10 Mar 2008 20:34   

Re: Jak zabezpieczyć aplikację przed kopiowaniem?


Wybacz, ale gdybyś szukał to byś znalazł:
http://www.codeproject.com/KB/system/GetHardwareInformation.aspx
http://en.allexperts.com/q/C-1040/motherboard-serialnumber-1.htm
http://www.codeguru.com/forum/archive/index.php/t-340016.html
http://www.delphifaq.net/how-to-read-the-mainboards-bios-information/
http://forums.devshed.com/delphi-programming-90/motherboard-serial-number-137130.html
http://www.delphifaq.net/how-to-read-the-mainboards-bios-information/
http://www.techblog.tomksoft.com/programming/hardware-serial-number-generator.html
http://www.latiumsoftware.com/en/delphi/00050.php
http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2803954&SiteID=1
I wiele innych.
Back to top
   
Google

Google Adsense


Post# 10 Mar 2008 20:34   





Back to top
   
machoney
Poziom 15
Poziom 15


Joined: 23 Feb 2004
Posts: 210
Location: Tarnów

Post#9 Post from the author of the topic 10 Mar 2008 20:48   

Re: Jak zabezpieczyć aplikację przed kopiowaniem?


Wybaczam ;)
Wielkie dzięki!! Niestety widocznie moje zdolności poszukiwacza są marne bo siedzę dwa dni i ciągle nic nie miałem. Siadam do przeglądania linów od Ciebie. jeszcze raz wielkie thx
Back to top
   
Guest
Poziom 10
Poziom 10





Post#10 10 Mar 2008 20:49   

Re: Jak zabezpieczyć aplikację przed kopiowaniem?


Fakt - wpisanie how to get main board serial delphi wymaga odpowiedniego przygotowania ;)
Back to top
   
Google

Google Adsense


Post# 10 Mar 2008 20:49   





Back to top
   
machoney
Poziom 15
Poziom 15


Joined: 23 Feb 2004
Posts: 210
Location: Tarnów

Post#11 Post from the author of the topic 12 Mar 2008 11:51   

Re: Jak zabezpieczyć aplikację przed kopiowaniem?


Niestety u mnie ciągle bez efektów. Mimo dużej ilości różnych linów ciągle nie mogę trafić w 10. Zaczniemy od tego, że piszę w Turbo Delphi i chcę uniknąć dodawania komponentów. Po drugie - dużo znalazłem na temat WMI jednak nie wiem jak z tego skorzystać w TD. Szukam też w WinAPI ale narazie też bez praktycznych efektów.
Jeśli masz jeszcze cierpliwość i wyrozumiałość dla mnie to pomóż. thx
Back to top
   
Xitami
Poziom 21
Poziom 21


Joined: 10 Aug 2004
Posts: 1126
Location: Gliwice

Post#12 12 Mar 2008 12:17   

Re: Jak zabezpieczyć aplikację przed kopiowaniem?


A może kluczyk USB?
http://www.systherm-info.pl/index.php?k=strony_l&m=39&ns=1&pns=1
jest HASP HL Basic, teraz kosztuje 105 zł netto, a obiecują, że potanieje.

Mój komputer/Właściwości/Zarejestrowano dla: XXXX-XXX-......
co to za numer?
Back to top
   
machoney
Poziom 15
Poziom 15


Joined: 23 Feb 2004
Posts: 210
Location: Tarnów

Post#13 Post from the author of the topic 12 Mar 2008 16:00   

Re: Jak zabezpieczyć aplikację przed kopiowaniem?


link otrzymany dzięki uprzejmości Roch Brada
http://www.codeguru.pl/article-265.aspx
jest super tylko ja nie potrafię przjść z C# na Delphi. Mam wmiutils.dll i nie wiem co dalej bo nigdy podobnych rzeczy nie robiłem. Narazie bezustannie walczę z tym tematem.

Dodano po 1 [godziny] 1 [minuty]:

Trafiłem na coś takiego
http://www.delphi3000.com/articles/article_3118.asp

wygląda spoko jednak nie mogę w Turbo znaleźć importu do projektu. Po wklejeniu funkcji z linku zgłasza błąd przy deklaracji zmiennych

Code:

var  // These are all needed for the WMI querying process
  Locator:  ISWbemLocator;
  Services: ISWbemServices;
  SObject:  ISWbemObject;
  ObjSet:   ISWbemObjectSet;
  SProp:    ISWbemProperty;
  Enum:     IEnumVariant;
  Value:    Cardinal;
  TempObj:  OleVariant;
  SN: string;


Jak powiązać funkcję z wmiutils.dll którą znalazłem w system32??
Back to top
   
Guest
Poziom 10
Poziom 10





Post#14 12 Mar 2008 16:05   

Re: Jak zabezpieczyć aplikację przed kopiowaniem?


Kolego - z Delphi to Ci za bardzo nie pomogę bo nie miałem z nim styczności, ale mogę podpowiedzieć jakbym to ugryzł w C++, a Ty sobie już to "przetrawisz" ;)

Najpierw, mając już tego dll'a, musisz zalinkować go programie. W tym celu musisz utworzyć plik LIB (w katalogu bin powinno być narzędzie implib: implib -c -f plik.dll plik.lib).

Tak stworzony plik LIB dodajesz do projektu (projects - add) i potem dopiero odwołujesz się do funkcji zawartych w dll.

Generalnie poczytaj sobie o linkowaniu statycznym (jest łatwiejsze) plików dll.

Tylko mogę Ci podpowiedzieć.

Powodzenia :)

P.S: Przeglądając ten link, który podałeś znalazłem to: http://yourpage.blazenet.net/ditto/files/wmidemo.zip i http://users.eastlink.ca/~dblondeau/downloads.htm i jeszcze http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmisdk/r_wmicls_6r6t.asp

Sprawdź - może w którymś projekcie będą źródła to sobie zobaczysz co i jak.
Back to top
   
machoney
Poziom 15
Poziom 15


Joined: 23 Feb 2004
Posts: 210
Location: Tarnów

Post#15 Post from the author of the topic 12 Mar 2008 21:57   

Re: Jak zabezpieczyć aplikację przed kopiowaniem?


znalazłem implib ale nie chce mi skonwertować. 'Error : unable to open file'.
Proszę, spróbuj u siebie zrobić ten plik lib.



wmiutils.zip
 Filename:  wmiutils.zip
Download
 Contents:  wmiutils.dll
See all...
 Filesize:  43.6 KB
 Punkty:  0

Back to top
   
Guest
Poziom 10
Poziom 10





Post#16 13 Mar 2008 12:16   

Re: Jak zabezpieczyć aplikację przed kopiowaniem?


W załączniku masz wykesportowany plik wmiutils.lib. Dodatkowo masz plik wmiutils.def, który możesz otworzyć w notatniku. W nim masz zawarte wszystkie funkcje.

Wygląda tak:
Code:
LIBRARY     WMIUTILS.DLL

EXPORTS
    DllCanUnloadNow                @1   ; DllCanUnloadNow
    DllGetClassObject              @2   ; DllGetClassObject
    DllRegisterServer              @3   ; DllRegisterServer
    DllUnregisterServer            @4   ; DllUnregisterServer

Suma MD5 dla pliku wmiutils.zip to: cb6205b035118772b7ce6565fdc36564



wmiutils.zip
 Filename:  wmiutils.zip
Download
 Contents:  wmiutils.def , wmiutils.dll , wmiutils.lib
See all...
 Filesize:  43 KB
 Punkty:  0

Back to top
   
machoney
Poziom 15
Poziom 15


Joined: 23 Feb 2004
Posts: 210
Location: Tarnów

Post#17 Post from the author of the topic 13 Mar 2008 14:07   

Re: Jak zabezpieczyć aplikację przed kopiowaniem?


dzięki,
znalazłem jeszcze coś takiego:
http://cc.codegear.com/download.aspx?id=19255&file=UnitSimpleWMI.pas&ln=1

niestety nie mogę skompilować bo woła o WbemScripting_TLB które
Code:

{
 You need the WbemScripting_TLB unit, which you can create by installing the type library
 <Windows System32>\wbem\wbemdisp.tlb type library using the "Project|Import type library" menu option.
}

niby wszystko jest a jednak ... ja tego nie umiem odpalić
Back to top
   
Guest
Poziom 10
Poziom 10





Post#18 13 Mar 2008 17:05helpful post - solution   

Re: Jak zabezpieczyć aplikację przed kopiowaniem?


No a zrobiłeś to co wkleiłeś w code?
Back to top
   
Google

Google Adsense


Post# 13 Mar 2008 17:05helpful post - solution   





Back to top
   
machoney
Poziom 15
Poziom 15


Joined: 23 Feb 2004
Posts: 210
Location: Tarnów

Post#19 Post from the author of the topic 14 Mar 2008 09:14   

Re: Jak zabezpieczyć aplikację przed kopiowaniem?


Chyba tu właśnie będzie główny problem - ja mam Turbo Delphi które jest darmowe (również komercyjnie) i nie mam 'Project | Import Type Library' natomiast pytałem znajomego czy w Delphi 7 ma import - on ma. Jeżeli u niego się to skompiluje to będę musiał znaleźć sposób na dodanie typu w Turbo. Dam znać o efektach.
Back to top
   
machoney
Poziom 15
Poziom 15


Joined: 23 Feb 2004
Posts: 210
Location: Tarnów

Post#20 Post from the author of the topic 16 Mar 2008 00:09   

Re: Jak zabezpieczyć aplikację przed kopiowaniem?


jest wszystko ok. Udało mi się dostać do WMI z poziomu Turbo Delphi. WbemScripting_TLB.pas wygenerował Delphi 7 łącznie z plikiem dcu. Po przekopiowaniu do folderu LIB dla Turbo wszystko się kompiluje. Aby dostać sie do WMI pomogła mi funkcja:
Code:

function TForm1.GetWMIstring (wmiHost, wmiClass, wmiProperty : string):string;
var  // These are all needed for the WMI querying process
  Locator:  ISWbemLocator;
  Services: ISWbemServices;
  SObject:  ISWbemObject;
  ObjSet:   ISWbemObjectSet;
  SProp:    ISWbemProperty;
  Enum:     IEnumVariant;
  Value:    Cardinal;
  TempObj:  OleVariant;
  SN: string;
begin
  try
  Locator := CoSWbemLocator.Create;  // Create the Location object
  // Connect to the WMI service, with the root\cimv2 namespace
   Services :=  Locator.ConnectServer(wmiHost, 'root\cimv2', '', '', '','', 0, nil);
  ObjSet := Services.ExecQuery('SELECT * FROM '+wmiClass, 'WQL',
    wbemFlagReturnImmediately and wbemFlagForwardOnly , nil);
  Enum :=  (ObjSet._NewEnum) as IEnumVariant;
  while (Enum.Next(1, TempObj, Value) = S_OK) do
  begin
    SObject := IUnknown(tempObj) as ISWBemObject;
    SProp := SObject.Properties_.Item(wmiProperty, 0);
    if VarIsNull(SProp.Get_Value) then
      result := ''
    else
    begin
      SN := SProp.Get_Value;
      result :=  SN;
    end;
  end;
  except // Trap any exceptions (Not having WMI installed will cause one!)
   on exception do
    result := '';
   end;
end;


którą należy wcześniej zadeklarować a do wywołania wpisujemy:

Code:

Memo1.Text := getWMIstring('','Win32_BIOS','SerialNumber');


WIELKIE DZIĘKI ROCH ZA POMOC I INSPIRACJĘ, ZA TO ŻE MNIE NIE ZOSTAWIŁEŚ W POTRZEBIE!! Pzd
Back to top
   
prokopcio
Poziom 22
Poziom 22


Joined: 21 Dec 2004
Posts: 1598
Location: Grodków

Post#21 12 Dec 2008 14:38   

Re: Jak zabezpieczyć aplikację przed kopiowaniem?


mam rozumieć, że ktoś (lub aplikacja) musi podać ci nr seryjny biosu a Ty odsyłasz jemu klucz... to jest dobre rozwiązanie ale tylko i wyłącznie dla przejście z wersji demo / full ponieważ do tych wersji 30-dniowe to są darmowe narzędzia hakerskie, które dokładnie prześledzą podczas instalacji Twój program i jednym kliknięciem zrobią kolejne 30dni... śledzą one zmiany w rejestrze, dyskach itd... problem z kluczami pod konkretnego kompa jest również z większą ilością użytkowników programu gdzie musisz każdego obsłużyć ręcznie lub "półautomatycznie".... Sam czasem kombinuję jak się zabezpieczyć i szczerze ręce opadają.
Back to top
   
Chris_W
Poziom 23
Poziom 23


Joined: 10 Jan 2007
Posts: 2846

Post#22 16 Dec 2008 14:36   

Re: Jak zabezpieczyć aplikację przed kopiowaniem?


Tu jest poważna zaleta VB. Jego pseudo-skryptowe działanie jest trudne do 'łamania'. Pseudo-kodu nie da się tak łatwo rozgryźć.
Back to top
   
Post new topic  Reply to topic      Main Page -> Forum Index -> Programming Generally -> Jak zabezpieczyć aplikację przed kopiowaniem?
Page 1 of 1
Similar topics
Jak zabezpieczyć RS485 przed badaniami EMC?? (1)
[C++] Jak zabezpieczyć klasę przed dziedziczeniem ? (2)
PIC12C508A jak zabezpieczyć przed odczytem (2)
Jak zabezpieczyć ATMEGA8 przed odczytem ? (2)
jak zabezpieczyć triaki przed zwarciem ? (24)
Jak zrobić porównanie plików przed kopiowaniem ? (2)
jak zabezpieczyć przed kopiowaniem ATMEGA8515 attiny 2313 (4)
AT90S8515 - Jak zabezpieczyć kod programu przed kopiowaniem? (3)
[PIC18F2550] Jak zabezpieczyć przed kopiowaniem. (1)
Jak zabezpieczyć zasilacz przed napięciem z zewnątrz? (9)

Page generation time: 0.164 seconds


FAQ || Administrator || Moderators || Widgets and banners || Contact
elektroda.pl topic RSS feed