[Delphi] Jeden progs - Jeden komp

[Delphi] Jeden progs - Jeden komp
0

Witam.
Chcę zrobic program, który będzie mozna uruchomic tylko na jednym komputerze (ale wiele razy, a nie tylko raz).

Mam już że trzeba podać kod dostępu do programu, no ale zawsze ktos sie znajdzie kto poda dalej. I na nic zabezpieczenie.
więc do tego chciałbym dodać sobie by można ten program uruchomic tylko na jednym komputerze. Oczywiście mozna by zmieniać jakąś wartość w kodzie dzięki czemu powstawałyby inne kopie, które mozna odpalic na innym komputerze.

Wie ktos jak to zrobić? Z góry dzieki za pomoc,
ps: sorrki ze tak troche namotalem;-)

AklimX
  • Rejestracja:prawie 22 lata
  • Ostatnio:ponad 13 lat
  • Postów:1218
0

kwestia jest bardzo ciężka... dajmy na to, ze instaluje sobie twojego proga, który zmienia coś w swoim kodzie, potem komp misie wykrzacza no to reinstalke robie, chce zainstalować ponownie twojego proga a on mi na to że ma zmieniony kod i bardzo mu przykro! Co wtedy? Vicious Circle !


Piszę programy w językach: C, C++, Java, Python, Bash, PHP, SQL.
Przyjmuję zlecenia
PcSA
  • Rejestracja:ponad 21 lat
  • Ostatnio:prawie 13 lat
0

Może sprawdzanie po s/n dysku twardego - jeżeli się nie zgadza to program się zamyka

lofix
  • Rejestracja:około 23 lata
  • Ostatnio:21 dni
  • Lokalizacja:Wdzydze
0

a jak dysk sie zmieni?


Pozdrawiam. Karol
PcSA
  • Rejestracja:ponad 21 lat
  • Ostatnio:prawie 13 lat
0

No niestety, każde rozwiązanie w tym wypadku ma wady :)

NO
  • Rejestracja:ponad 22 lata
  • Ostatnio:ponad 6 lat
  • Postów:654
0

to niech do uruchomieina tego programu jest potrzebny CD - wtyedy sprawdzasz numer serujny płydki i odpalasz albo nie :)

migajek
  • Rejestracja:ponad 21 lat
  • Ostatnio:ponad 6 lat
  • Postów:370
0

to niech do uruchomieina tego programu jest potrzebny CD - wtyedy sprawdzasz numer serujny płydki i odpalasz albo nie :)

A kopia zapasowa? Ta której utworzenia nie możemy (jako twórcy progsów) zabronić userowi...


Qyon
  • Rejestracja:około 21 lat
  • Ostatnio:około 14 lat
0

Zabronić nie możemy (M$ ma chyba inną wykładnię [diabel] ), ale nie musimy ułatwiać [diabel]


JKM czy HGW?
lofix
  • Rejestracja:około 23 lata
  • Ostatnio:21 dni
  • Lokalizacja:Wdzydze
0

najrozsadniej jest pobrac dane z systemu (dysk,precos etc etc), potem program moze to zapisac w postaci zaszyfrowanej w jakims pliku. Gdy sie zmieni jakis podzespol program robi nowy plik z lista urzadzen, wtedy uzytkownik musi wyslac Tobie te pliki, ty programem (dekodujacym) sprawdzasz ile sie zmienilo w tej konfiguracji, jezeli np dysk, lub sam procesor to jest ok (zalozmy), jezeli 3/4 kompa to juz szansa ze ktos to uzywa inny...niestety to w 100% nie wyeleminuje "piractwa".
Dobrym dodatkiem jest pobranie informacji o windowsie (user, system, ustawienia lokalne,zmienne srodowiskowe)


Pozdrawiam. Karol
NO
  • Rejestracja:ponad 22 lata
  • Ostatnio:ponad 6 lat
  • Postów:654
0

to najwyżej nie zrobi sobie tej kopi ;)

możesz zrobić generowanie numerka przy pierwszym uruchomieniu programu (na podstawie sprzętu) - wtedy klient kontaktuje się z Tobą Ty mu dajesz nr odblokowujący i działa... jak zmieni kompa,albo zacznie kombinować to i tak musi się z Tobą skontaktować.... :)

Adam.Pilorz
  • Rejestracja:prawie 22 lata
  • Ostatnio:ponad 14 lat
  • Postów:2998
0

Ech, kłócicie się o to, że ktoś nie będzie mógł sobie zrobić kopii, ale problem jest większy - istnieje kupa programów do kopiowania płytki bardzo dokładnie i takie zabezpieczenie nie pomoże.


Grunt to uziemienie...
Deti
  • Rejestracja:ponad 22 lata
  • Ostatnio:ponad 9 lat
0

Zdaje się, że nikt nie zrozumiał problemu - tak mi się wydaje. Program ma być do uruchomienia tylko na jednym komputerze! - i nie można go włączać na innych - przecież od razu można zrobić kopię i na dwóch komputerach będzie śmigać ( z waszymi zabezpieczeniami).

Jedynym wyjściem jest połączenie z Internetem, gdzie każdy egzemplarz pliku EXE ma swój własny kod .. - po skopiowaniu pliku ten kod się nie zmienia - i aktywacja przez Internet. Tu nie ma innej możliwości. Jeżeli dany kod został już aktywowany - więcej nie da rady włączyć.


DM
  • Rejestracja:prawie 21 lat
  • Ostatnio:prawie 19 lat
  • Postów:176
0

to niech do uruchomieina tego programu jest potrzebny CD - wtyedy sprawdzasz numer serujny płydki i odpalasz albo nie :)

A kopia zapasowa? Ta której utworzenia nie możemy (jako twórcy progsów) zabronić userowi...

Na jakim ty świecie żyjesz... Większść gier coś takiego ma i dzięki krakom tylko można mieć te jak to ładnie nazwałeś kopie( niekoniecznie zapasowe ;))

Ja bym sugerował wmieszać w to w net... mógłbyś zrobić serwer, musi się z nim połączyć by zarejestrować, a serwer nie pozwoli dwa razy użyć jednego kodu :)


programowanie to sztuka bardzo życiowa... Wciąż trzeba kombinować..
mitring
  • Rejestracja:ponad 21 lat
  • Ostatnio:około 6 lat
  • Postów:796
0

Wiem ze zaraz poleca smiechy na to co napisze ale co mi tam :P

Zrob moze tak:
Wygrzeb z rejestru np. konto e-mail [adres] alebo haslo zakodowane ofkoz [diabel] i zrob w programie ze bedzie porownywal jak sie nie zgadza to Application.ProcessMessages; :) malo kto bedzie mial twoje konto e-mail na kompie :> albo porownanie UserName konta do Win$


30.03.2011 :) na świat przyszły Ala i Natalka :*
Adamo
  • Rejestracja:około 21 lat
  • Ostatnio:prawie 13 lat
0

Ja proponuję rozwiązanie na chama, każdy żeby włączyć program będzie musiał mieć chwilowe połączenie z internetem i poczekać na autoryzacje.
I wyobrażam sobie to tak:

program jeżeli nie ma na komputerze zapisanego swojego klucza (np w rejestrze) to łączy się z serwerem i podaje mu swój numer seryjny dysku, np MAC karty sieciowej i wszystko co się da, skrypcik na serwerze zapisuje dane do bazy danych i idzie zapytanie do admina (ciebie) czy się zgadzasz na takiego usera, ty albo zatwierdzasz albo nie, jeśli zatwierdzisz to user dostaje wygenerowany przez serwer klucz który jest generowany unikalnym algorytmem umieszczonym w jakimś skrypcie na podstawie podanych numerów seryjnych dysku etc., program ten klucz sobie zapisuje gdzieś i już nie chce połączenia z netem ale przy każdym uruchomieniu programu sobie sprawdza lokalnie wygenerowany klucz w/g tych seriali z tym co się pobrało z netu - jeśli się zgadza to uruchamia program, jeżeli nie to trzeba znowu mieć połączenie z netem i czekać na autoryzacje

// dop.

jak sie nie zgadza to Application.ProcessMessages; :)

a czy to nie zbyt brutalne rozwiązanie ? :D


Dwie zasady gwarantujące sukces:
1. Nigdy nie mów nikomu wszystkiego<span style="color: white">
B-A-D
  • Rejestracja:ponad 20 lat
  • Ostatnio:prawie 18 lat
0

No mam kodzik który odczytuje SN dysku, zapisuje go do exeka, potem go koduje, a przy próbie modyfikacji exeka - jest już bezużyteczny :)
Wszystko to działa na 1 kompie.


mitring
  • Rejestracja:ponad 21 lat
  • Ostatnio:około 6 lat
  • Postów:796
0

No mam kodzik który odczytuje SN dysku, zapisuje go do exeka, potem go (...)

Mozna prosic o SOURCE [diabel] nawet na prv ;)


30.03.2011 :) na świat przyszły Ala i Natalka :*
Qyon
  • Rejestracja:około 21 lat
  • Ostatnio:około 14 lat
0

Ewentualnie możesz pomyśleć o kluczu sprzętowym [diabel]


JKM czy HGW?
angel2953
  • Rejestracja:około 22 lata
  • Ostatnio:ponad 6 lat
  • Postów:750
0

a ja mam takie pytanie: co z adresem MAC karty sieciowej. Przecież jest on unikalny dla każdej karty...

Adam.Pilorz
  • Rejestracja:prawie 22 lata
  • Ostatnio:ponad 14 lat
  • Postów:2998
0

a ja mam takie pytanie: co z adresem MAC karty sieciowej. Przecież jest on unikalny dla każdej karty...

No jest, ale po pierwsze akurat MAC'a jest prosto oszukać (jest mnóstwo progsów, które "symulują" inny MAC karty sieciowej), a po drugie ktoś może sobie wymienić kartę i lipa.


Grunt to uziemienie...
EX
  • Rejestracja:prawie 21 lat
  • Ostatnio:około 20 lat
0

a ja mam takie pytanie: co z adresem MAC karty sieciowej. Przecież jest on unikalny dla każdej karty...

No jest, ale po pierwsze akurat MAC'a jest prosto oszukać (jest mnóstwo progsów, które "symulują" inny MAC karty sieciowej), a po drugie ktoś może sobie wymienić kartę i lipa.

Poza tym nie każdy ma kartę sieciową :)

Chyba jedynym w miare skutecznym rozwiązaniem jest jednak polaczenie z Internetem, niestety niektorzy nie maja mozliwoci polaczenia...

AO
  • Rejestracja:około 21 lat
  • Ostatnio:prawie 19 lat
0

Ja kiedyś rozwiązałem ten problem... robiłem takie zabezpieczenie... ale wiązało się to tylko z numerem seryjnym dysku twardego...

Deti
  • Rejestracja:ponad 22 lata
  • Ostatnio:ponad 9 lat
0

Ja kiedyś rozwiązałem ten problem... robiłem takie zabezpieczenie... ale wiązało się to tylko z numerem seryjnym dysku twardego...

ehh.. przecież te zabezpieczenia typu dysk, karta sieciowa, adres MAC są bezużyteczne - czytajcie treść postu.


puchi
  • Rejestracja:ponad 19 lat
  • Ostatnio:około 3 lata
  • Postów:411
0

Sam sie kiedys nad tym zastanawialem i doszedlem do wniosku ze co bym nie wymyslil to i tak mozna takie zabezpieczenie zlamac. Pozostaje nam tylko wymyslic sposob ktory zajmie jak najwiecej czasu i wysilku ludziom ktorzy beda chcieli go crackowac. Ja pokombinowal bym z jakims kluczem sprzetowym wydaje mi sie to najlepszym rozwiazaniem. Powiedzmy ze wraz z programem dajemy klientowi jakis pendrive. jednak zanim klient go dostanie w naszym programie umieszczamy numer seryjny tego pendriva. Klient dostaje program i pendrive poczym przy starcie program sprawdza czy jest on wpiety i czy numer seryjny sie zgadza jesli tak to uruchamiamy jesli nie to application.terminate. Im czesciej program bedzie sprawdzal poprawnosc seriala tym ciezej bedzie go zcrackowac. Program moze puscic w neta ale pendrieva chyba nie odda komus za darmo bo sam programu nie uruchomi. Wedlug mnie to jest calkiem niezle zabezpieczenie.

deus
  • Rejestracja:prawie 21 lat
  • Ostatnio:około 12 lat
0

[rotfl] Dwie sprawy:
-stary temat...
-a o emulacji to słyszałeś?


I nie udawaj, że rozumiesz.
Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)