Chcę by program działał daną ilość dni

0

Witajcie potrzebuje pomocy , a dokładnie w tym że chcę robić program który będzie działał daną ilość dni moze to byc z czasem wewnetrznym (w windowsie) choć wolałbym nie. Fajnie by było jakby ktoś pomógł mi zrobić coś by program działał tylko na 1 IP.

0

To się trial nazywa – jedno słowo, a zastępuje Twoje dwa zdania.

Michał Tak napisał(a):

Fajnie by było jakby ktoś pomógł mi zrobić coś by program działał tylko na 1 IP.

Słaby pomysł – IP w dowolnym momencie można sobie zmienić.

0

Myślę że do tego IP wystarczy , tylko problem bo znam praktycznie tylko podstawy c++
Pomoże mi ktoś z tym czasem?

0

O numerze IP zapomnij, bo zbyt łatwo będzie ominąć blokadę. A nawet nie trzeba będzie nic robić – DHCP.

0

Potrzebuje czegoś co będzie proste i z moimi podstawami sobie poradzę , bo za mnie chyba nikt mi tego nie napisze choć jakby ktoś częśc napisał lub wskazał mi w jaką strone mam iśc jakby to ująć to byłoby naprawdę fajnie.

furious programming napisał(a):

O numerze IP zapomnij, bo zbyt łatwo będzie ominąć blokadę. A nawet nie trzeba będzie nic robić – DHCP.

Z tego co wiem do DHCP trzeba będzie zrobić serwer a ja chcę zrobić to jak najprościej

0

Pobierz numerki z podzespołów, np. procesora, karty sieciowej. Przykład w C++ znajdziesz np. tutaj: How to obtain (almost) unique system identifier in a cross platform way?. Jest to bardzo słabe rozwiązanie, ale przynajmniej ”samo” się nie zepsuje.

0

A jeśli chodzi o czas to nie ma być zrobiony program najprosciej jak się da moze byc nawet z czasem w windowsie
Słyszałem też że jest coś takiego jak protector czy jakoś tak i mozna w nim ustawic blokade że cheat będzie działał na danym IP

0

Zapisuj sobie datę pierwszego uruchomienia w rejestrze systemowym. Zaszyfruj ją jakoś, żeby ktoś grzebiący w rejestrze musiał dojść do tego jak tą datę zaszyfrowałeś. Jak Twój program nie będzie potrafił odszyfrować daty z rejestru, to po prostu nie przepuści użytkownika dalej (będzie wiedział, że ktoś przy tym grzebał). Problematyczne może być usunięcie wpisu z rejestru przez użytkownika. Bo wtedy Twój program będzie tworzył nowy wpis i dalej będzie działał daną ilość dni... Więc jakoś przed tym też by się przydało zabezpieczyć, zależy jak głęboko chcesz wchodzić. Jeśli nie musi to być aż tak bezpieczne - bo przecież formatowanie dysku i przeinstalowanie systemu też pozwoli na ponowne uruchomienie programu na x dni - to pomysł z rejestrem wydaje się dość łatwy.

Crackerowi pewnie i tak łatwiej będzie w pliku exe wywalić ifa sprawdzającego, czy odszyfrowana data nie została przekroczona. Ale w kodzie aplikacji możesz wokół właściwego sprawdzania dopisać dużo bełkotu, który utrudni znalezienie winowajcy.

0

A jakis inny sposób?

0

Inne sposoby masz na górze... No dobra.

Możesz tworzyć plik w katalogu użytkownika (C:\Users\USERNAME\AppData\LocalLow) i w nim zapisać datę pierwszego uruchomienia, żeby ją potem odczytywać i na jej podstawie ocenić, czy program może być uruchomiony.

4

@Michał Tak: jeśli chodzi o zabezpieczenia, to nie robi ich najprościej jak się da.

Żeby dobrze zabezpieczyć program, trzeba się napocić lub wykosztować. Przy czym każdą blokadę da się złamać, a im mniej czasu jej poświęcisz, tym łatwiej i szybciej. To co wcześniej podaliśmy to żart nie blokada, ale skoro jesteś początkującym, to nic innego Ci nie pozostaje.

1

Mógłbyś jeszcze zrobić gdzieś swój serwer i komunikować się z aplikacją. Każda instalacja mogłaby generować unikalne ID na bazie podzespołów jak furious wspomniał. Następnie ten ID wysyłany byłby do serwera i tam dostawał 30 dni ważności. Wtedy nie da się oszukiwać systemowego timera ani grzebać po rejestrach. Dodatkowo przy każdym uruchomieniu synchronizowałbyś czas pozostały do końca wersji trial i wyświetlał sobie go gdzieś.
Takie zabezpieczenie na pliki czy rejestr jak ktoś będzie chciał to rozwali szybko. Przy instalacji zgarnąć zmiany, które zaszły w katalogach i rejestrze i połowa roboty z głowy. Druga połowa to odpowiednio zmienić odpowiednie pliki. Jak zapiszesz to w txt bez haszowania czy w rejestrze to pokonanie takiego zabezpieczenia dla kogoś kto się tym bawi - kilka minut.
Zmień podejście jeśli faktycznie chcesz coś zabezpieczyć porządnie, a nie jak najprościej ;-)

1

Jak zapiszesz to w txt bez haszowania czy w rejestrze to pokonanie takiego zabezpieczenia dla kogoś kto się tym bawi - kilka minut.

Ominięcie zabezpieczenia z serwerem jest równie proste - wystarczy odpalić aplikcję pod debuggerem, namierzyć if (applicationIsActivated()) i podmienić na if (true) - nie trzeba łamać nic więcej ;-)

2
Patryk27 napisał(a):

Jak zapiszesz to w txt bez haszowania czy w rejestrze to pokonanie takiego zabezpieczenia dla kogoś kto się tym bawi - kilka minut.

Ominięcie zabezpieczenia z serwerem jest równie proste - wystarczy odpalić aplikcję pod debuggerem, namierzyć if (applicationIsActivated()) i podmienić na if (true) - nie trzeba łamać nic więcej ;-)

Właśnie coś takiego chciałem napisać ;)

Dopóki dajemy użytkownikowi pełną aplikację, to obojętnie jakbyśmy uwierzytelniali jej lokalny dostęp, złamanie takich zabezpieczeń sprowadza się do tej samej czynności.

Jak chcesz naprawdę zabezpieczyć apkę przed nieautoryzowanym dostępem, to musi ona stać na serwerze i wymagać rejestracji.
A i tak wystawiając triala, nie zabezpieczysz go przed użytkownikami masowo robiącymi konta, kiedy tylko będą potrzebowali użyć Twojej aplikacji...

1

No ale program może sprawdzać dodatkowo w losowych momentach a wtedy już nie wyświetlać info o tym, że zakończył się okres próbny tylko albo się wykrzaczać albo zwyczajnie zamykać. Pewnie, że też do ominięcia ale zawsze to już trudniej.

1

@Spine:

ale co z tego, że 0.1% userów da radę złamać zabezpieczenie, gdy 99.9% nie? a wgranie patcha jest szybsze niż rozdystrybuowanie cracka.

No chyba, że zablokują auto update :D

0

Dobra dzięki za pomoc może jakoś dam radę to zrobić, jakby ktoś miał jeszcze jakies pomysły to chętnie je przeczytam

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