MadMike99 Napisano Styczeń 18, 2016 Zgłoś Share Napisano Styczeń 18, 2016 Witam.Mój problem polega na tym, że nie wiem jak pobrać wartość zmiennej z klasy pierwszej do klasy drugiej zaznaczając, że ta zmienna zmienia się co jakiś czas w klasie pierwszej. Korzystałem na razie z:Klasa 1public static int c = DateTime.Now.Minute;Klasa 2:private int minuta = Form2.c;Wydaje mi się, że z tego powodu wpisu "static" wartość zmiennej w klasie 2 jest ciągle taka sama, a musi zmieniać się wraz ze skokiem minutowym. Link do komentarza Udostępnij na innych stronach More sharing options...
wies.niak Napisano Styczeń 18, 2016 Zgłoś Share Napisano Styczeń 18, 2016 Udostępnij wartość zmiennej poprzez właściwość. Np:public int C{ get { return c; }}Jeśli chcesz zmieniać wartość c co minutę, użyj klasy Timer. Gotowy kawałek kodu np tu: KLIK[edit]Dodałem get - pamiętałem i się zgapiłem. Dzięki, webtom.Nie proponowałem innego podejścia, bo nie wiem, co dokładnie autor zamierza. Z tego powodu też zalinkowałem do stackoverflow. Link do komentarza Udostępnij na innych stronach More sharing options...
webtom Napisano Styczeń 18, 2016 Zgłoś Share Napisano Styczeń 18, 2016 Udostępnij wartość zmiennej poprzez właściwość. Np:public int C{ { return c; }}Brakuje słówka kluczowego get, no i tak czy siak będzie za każdym razem zwracać tę samą wartość. Coś takiego powinno działać:public /*static*/ int C { get { return DateTime.Now.Minute; } } Link do komentarza Udostępnij na innych stronach More sharing options...
MadMike99 Napisano Styczeń 18, 2016 Autor Zgłoś Share Napisano Styczeń 18, 2016 Dzięki. O to chodziło! W skrócie wyjaśnię, że robię zegarek który czyta godzinę z krokiem ustawionym przez użytkownika (wybierany w comboboxie). Wcześniej odczytywał ten sam czas od momentu zapisania ustawień, jednak po poprawieniu dwóch linijek tak jak napisaliście wszystko działa jak należy. Program prosty, dwie formy, w pierwszej sam zegar cyfrowy, w drugiej ustawienie kroku z przyciskiem do zapisania ustawień. Żadnego wpisywania danych przez użytkownika. Zadam jeszcze jedno pytanie, macie pomysł na jakieś zabezpieczenia do tego programu (oprócz modyfikatorów dostępu)? Link do komentarza Udostępnij na innych stronach More sharing options...
wies.niak Napisano Styczeń 18, 2016 Zgłoś Share Napisano Styczeń 18, 2016 Zabezpieczenia przed czym? Link do komentarza Udostępnij na innych stronach More sharing options...
[Ekspert] Hakken Napisano Styczeń 19, 2016 Zgłoś Share Napisano Styczeń 19, 2016 W sensie chcesz ograniczyć dostęp do programu (żeby wymagał uwierzytelniania przez powiedzmy hasło), czy żeby ktoś nie wpłynął na przebieg działania (żeby haksor nie zmienił godziny)? Link do komentarza Udostępnij na innych stronach More sharing options...
MadMike99 Napisano Styczeń 19, 2016 Autor Zgłoś Share Napisano Styczeń 19, 2016 Chodzi o to, aby haksor ingerował w przebieg działania programu. Ograniczenie dostępu do moim zdaniem nie ma sensu, niby po co logować się i szyfrować hasło do zwykłego zegarka? Rozumiem, gdyby zawierał jakieś prywatne informacje użytkownika. Link do komentarza Udostępnij na innych stronach More sharing options...
wies.niak Napisano Styczeń 19, 2016 Zgłoś Share Napisano Styczeń 19, 2016 Trochę trudny temat, bo istotą .NETa jest kod pośredni, więc dekompilacja aplikacji jest dziecinne prosta. W zasadzie jedyna sensowna opcja to komercyjne obfuskatory, które porządnie zaszumią kod i utrudnią jego analizę. W sumie to jest zabawna sprawa, bo istnieje w .NET atrybut, który można nadać assembly by był "niedekompilowalny" i np .NET Reflector go respektuje. Natomiast wystarczy wziąć darmowego IL Spy i te pseudo zabezpieczenie jest całkowicie ignorowane ;] Parę razy spotkałem się z bibliotekami, które miały metody nazwane znakami unicode'owymi, nieczytelnymi dla człowieka, przy których niektóre aplikacje do deasemblacji się wywalały.Napisałem o komercyjnych obfuskatorach ponieważ istnieje pokaźny zbór aplikacji, które ogarniają wiele aplikacji obfuskujących i potrafią w pewnej mierze odwrócić ich działanie.I na koniec dodam, że Twoja własna aplikacja robi Ci pod górkę w tym temacie, ponieważ jest bardzo prosta, więc nie ważne jakby ją zaszumić, analiza tych kilku linijek kodu nie sprawi nikomu problemu.Podsumowując: skupiłbym się na funkcjonalności, a nie na zabezpieczeniach. W (prawie) końcu w każdej licencji stoi jak byk "nie modyfikuj aplikacji, nie ponosimy odpowiedzialności za nic, co aplikacja może wybuchnąć - instalujesz na własną odpowiedzialność" ;] Link do komentarza Udostępnij na innych stronach More sharing options...
[Ekspert] Hakken Napisano Styczeń 19, 2016 Zgłoś Share Napisano Styczeń 19, 2016 @wies.niakChyba nie chodzi o obfuskację tylko ochronę przed atakami w stylu buffer overflow, SQLi itd. (oczywiście w tym kodzie SQLa się nie spodziewam ale wiesz o co chodzi).@OPOczywiście nie widząc kodu nie można ocenić jego bezpieczeństwa, możesz go tutaj wrzucić i razem go przeczytamy, chociaż jeśli chodzi o naukę tego typu rzeczy to C# jest słabym wyborem, dużo lepiej być dużo bliżej pamięci i widzieć co się dzieje (czyli pewnie okolice C czy asm).Ogólnie jeżeli chcesz zabezpieczyć swoją aplikację to trzeba wymyślić sposób w jaki adwersarz może coś napsuć i mu to uniemożliwić.niby po co logować się i szyfrować hasło do zwykłego zegarka?A po co haksor ma zmieniać wyświetlaną godzinę? Link do komentarza Udostępnij na innych stronach More sharing options...
Polecane posty
Zarchiwizowany
Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.