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

Reklamy

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

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

Reverse Me! – inżynieria wsteczna dla początkujących

Cześć!

Nie pisałem już od dłuższego czasu, ale to się zmieni. Byłem pochłonięty pracą nad tym projektem – ale już jest!

Reverse Me! to pakiet 7 plików pracujących w środowisku Microsoft Windows, ale oczywiście powinny zadziałać też w środowisku Wine pod pingwinkiem. Wymagany jest .NET Framework 4.5, który możecie znaleźć tutaj.

Kontynuując – w paczce znajdziecie 7 plików .exe  Zostały one napisane w języku C#. Wszystkie wyglądają podobnie, poza siódmym – jako jedyny powinien być uruchomiony w konsoli (WIN+R > cmd.exe > [ścieżka pliku Reverse Me! 7.exe])  Pliki są całkowicie czyste, pozbawione wszelkiego złośliwego oprogramowania. Ewentualne wykrycia to tzw. False-Positive, czyli określenie czystego pliku przez antywirus jako szkodliwego.

Link do paczki: http://crackmes.de/users/camed/reverse_me/

Zachęcam do testowania i zmierzenia się z tym wyzwaniem – szczególnie początkujących i domowych inżynierów wstecznych!

Szybka przebieżka po bezpieczeństwie komputerowym

Zrobiłem tę prezentacje już kawałek czasu temu (w chwili publikowania tego postu około 5 miesięcy), więc jako pierwszy i właściwy wpis na moim blogu pojawi się ta oto prezentacja. Jest wykonana za pomocą Prezi. Miłego oglądania 😉

http://prezi.com/qfvfza8ypfug/?utm_campaign=share&utm_medium=copy&rc=ex0share