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

Coś prostego – udowadniamy niedokładność liczb zmiennoprzecinkowych

Zacznijmy od tego, czym są liczby zmiennoprzecinkowe. W programowaniu, jeżeli chcemy użyć liczb dziesiętnych, nie możemy zastosować typu int. Kod:

int a = 3; int b = 2;
return a/b;

nie zwróci nam jak oczekujemy wartości 1,5 tylko jeden. Nie działa tu zaokrąglanie, wynik 1.999999999999999999… zostanie zapisany w pamięci jako 1. Programiści by uniknąć tego typu trudności stosują inne zmienne: float (single precision – typ pojedynczej precyzji, dokładność do 7 cyfr po przecinku), double (double precision – typ podwójnej precyzji, dokładność do 15 cyfr po przecinku) 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

Confusio – czyli oprogramowanie do badania plików

Aktualna wersja: 0.0.1;

No dobra przyjaciele, ostatnio zająłem się właśnie tym projektem, w następnej wersji (nie ukrywając – wzorując się na ENT’ie (http://gynvael.coldwind.pl/?id=159)) postaram się dodać graficzny wykres entropii pliku (prawdopodobnie badając n-bajtowe kawałki programu, gdzie n=bajty_programu/128), i te 128 elementów będą dla mnie punktem wyjścia do tworzenia wykresu.

Ale do rzeczy: http://www81.zippyshare.com/v/e1XuIPUt/file.html

Jest to pierwsza wersja, jeśli macie pomysły co mógłbym dodać, ew. jakieś błędy – piszcie śmiało 🙂
Macie tam też sourcecode i wszystko co potrzebne :3