Delegaty i wyrażenia Lambda w C#

W tym poście postaram się wytłumaczyć czym są delegaty, anonimowe delegaty (równoważne z wyrażeniem lambda, które jest bardzo przydatne w wielu wypadkach.)

1. Delegaty

Delegaty są podobne do wskaźników i funkcji w C czy C++. Z definicji – delegat to zmienna będąca odniesieniem do innej, przy czym „odniesienie” można zmieniać. Czytaj dalej

Wielowątkowość w C# – Threading, Locki + SpinLocki

Często zdarza się, że mamy potrzebę wykonania kilku rzeczy w tym samym czasie. Przykładowo, pijąc herbatę możemy równocześnie oglądać telewizję czy czytać książkę. Podobnie w programowaniu – podczas (przykładowo) wykonywania jakiejś dłuższej pętli nie chcemy zawieszać programu (na czas jej wykonania), tylko wykonać w tym samym czasie inne operacje.

W tym poście omówię pewną klasę i strukturę. Pierwsza z nich to Thread zawierający się w System.Threading; Pozwala on na wykonanie innej funkcji równolegle, nie naruszając działania kodu. Przykładowo: Czytaj dalej

Tworzenie nowego procesu (programowo). C#, C++, Python

Najpopularniejszym dziś sposobem tworzenia nowego procesu jest odwołanie się do odpowiedniej funkcji, gdzie deklarujemy podstawowe informacje o procesie.  Funkcja zwraca nam potem uchwyt do tego procesu (ang. handle) za pomocą którego możemy na nim operować.

Spróbujmy więc napisać w każdym z trzech wcześniej zadeklarowanych języków (C#, C++, Python) utworzyć małe aplikacje, które będą podstawą do dalszej pracy na procesach. Czytaj dalej

Pwn2Own 2016 – podsumowanie

Wczoraj zaczęła się kolejna edycja znanego w środowisku IT konkursu – Pwn2Own. Główna idea jest prosta – znaleźć błąd w oprogramowaniu, który może przyczynić się do zdalnego wykonania kodu, ucieczki z sandbox’a czy nawet wirutalnej maszyny.

Dziś, po dwóch dniach zmagań, jak informuje jeden z cofunderów tegorocznych nagród – firma TrendMicro – konkurs się zakończył. Brało w nim udział 5 drużyn, a za każde znalezione podatności drużyny zyskiwały dodatkowe punkty oraz powiększały swoją nagrodę pieniężną. Czytaj dalej

Antywirus – Ochrona, czy potencjalny punkt zapalny?

Antywirus, jak sama nazwa wskazuje, ma chronić nasz komputer przed działaniem szkodliwego oprogramowania. Ma nie pozwalać, by wirusy, robaki, spyware, rootkity etc. etc. panoszyły się po naszym komputerze, wykradały prywatne dane, szyfrowały je lub niszczyły. Jak jednak powszechnie wiadomo żaden antywirus nie ma pełnej skuteczności. Zawsze znajdzie się jakiś 0day, którego nasz strażnik nie ma w bazach, albo jego osłona behawioralna nie uznaje za szkodliwego. Czytaj dalej