Domyślne ustawienia UAC w Windows 7 (a także Windows 8) nie zapewniają nam niestety pełnego bezpieczeństwa. Istnieje kilka znanych sposobów ‘ataku’ na UAC, które pozwalają na wykonanie kodu z podniesionymi uprawnieniami bez konieczności potwierdzania komunikatów UAC. Spróbuję opisać jeden z nich, który wydaje mi się szczególnie interesujący ze względu na wykorzystane mechanizmy. Konfiguracja UAC Po instalacji systemu domyślnie mamy ustawiony poziom 3 (Rys 1), który jest o jeden szczebelek niżej od najw...
Strona głównaUżytkownik
macko | użytkownik
Dalsze rozważania na temat nullanle.
Sztuka programowania 4109 dni, 6 godzin, 57 minut temu 183 źrodło rozwiń
Niedawno napotkałem w Gicie dziwny problem… tak naprawdę jeden z dwóch poważnych, które utrzymywały się przez długi czas (drugi to line-endings które do dziś potrafią mnie w zad uszczypnąć). Mianowicie mój kochany, uwielbiany Git pokazywał mi podczas merge konflikty w każdym jednym pliku, niezależnie od tego czy coś było w nim faktycznie zmieniane czy też nie. Po otwarciu mergetool okazywało się, że nawet jeśli jakieś zmiany nastąp...
Po dłuższej urlopowej przerwie w blogowaniu zacznę od zagadki z serii co zostanie wypisane na ekran, którą podsunął mi kolega Przemek: decimal d = 2; Console.WriteLine("d == 2 = {0}", d == 2); Console.WriteLine("d == (decimal)2 = {0}", d == (decimal)2); Console.WriteLine("d.Equals(2) = {0}", d.Equals(2)); Console.WriteLine("d.Equals((decimal)2) = {0}", d.Equals((decimal)2)); Tutaj jeszcze nie ma haczyka i odpowiedź to 4XTrue. Zmieńmy jednak jedną liniję: decimal? d = 2; Tym razem odpowiedź jes...
Sztuka programowania 4109 dni, 6 godzin, 57 minut temu 167 źrodło rozwiń
autor: Ponownie wrócę do tematyki kompilowania C# w locie. Pisałem wcześniej, że potrzebowałem takiej funkcji aby użytkownicy mojej aplikacji mogli w dowolnym momencie zdefiniować własny algorytm obliczania odległości między dwoma wektorami. Po kilku próbach już wiedziałem jak to zrobić, a chwilę później miałem już zaimplementowaną pierwszą wersję rozwiązania. Przyszła pora wypróbowania nowej zabawki na prawdziwych danych. Uruchomiłem więc aplikację, napisałem krótki skrypt i wystartowałem ...
autor: Dzisiaj wrócę do tematu użycia języka C# jako języka skryptowego przy pomocy Mono.CSharp.dll i opiszę w jaki sposób przekazać parametry do takiego skryptu. Pominę podejście opierające się o wklejanie do skryptu string'owej reprezentacji takich parametrów i od razu przejdę do bardziej eleganckiego rozwiązania. Bazuje ono na tym co przeczytałem w tym poście. Zaczynamy od utworzenia statycznej klasy ScriptContext, która posłuży nam do wymiany danych pomiędzy skryptem, a naszym programem...
autor: Od jakiegoś czasu pracuję nad aplikacją do generowania i analizowania wykresów rekurencyjnych. Temat sam w sobie jest bardzo ciekawy, więc może do niego wrócę w przyszłości, ale dzisiejszy post będzie o czymś innym. Moja aplikacja między innymi wykonuje obliczenia na wektorach np.: oblicza różne odległości (euklidesową, Manhattan czy normę maksimum) między nimi. Dodawanie kolejnych algorytmów wymagało jednak każdorazowej rekompilacji aplikacji. Zacząłem więc szukać sposobu aby umożl...
Ostatnio przyszło mi nieco więcej niż zwykle bawić się zrzutami pamięci różnych procesów, generowanych przez procdumpa, tudzież myszkowo z Process Explorera lub Process Hackera. Czasem po prostu wygodniej jest zrobić zrzut i potem bawić się takim 'zamrożonym procesem' na spokojnie, w innym miejscu i o innym czasie. Szczególnie, gdy bawimy się w analizę jakiegoś ciekawego malware'u (;)) i po prostu maszyna wirtualna nie jest najlepszym miejscem do zabawy debuggerem, a pliki .dmp zarażonych procesów można ...
autor: Jak kilkukrotnie pisałem - od prawie kwartału nie jestem już samotnym homo-jeźdźcem na zerojedynkowej dev-pustyni. Teraz oprócz kodowania mam sporo innych "zawodowych" spraw na głowie... i o tym sprawach będę czasem refleksje puszczał. Wcześniejszy cykl Zawód-programista wyewoluował sobie w Zawód-team leader. Życie. Oficjalnie moje stanowisko to "dev lead", ale "team leader" jest moim zdaniem bardziej pasujące do nowych obowiązków. Zacznę od rzeczy absolutnie podstawowej, czyli jak zorganizowałe...
autor: Na początek trochę kodu. Zacznijmy od klasy testowej: public class TestClass : MarshalByRefObject { static TestClass() { Console.WriteLine(String.Format("I'm in the static constructor in the domain '{0}'.", AppDomain.CurrentDomain.FriendlyName)); } public void Hello() { Console.WriteLine(String.Format("Hello from the domain '{0}'.", AppDomain.CurrentDomain.FriendlyName)); } } Teraz kod testujący: AppDomain domain = AppDomain.Cr...
autor: Trafiłem dzisiaj na ciekawy artykuł, którego autor testuje szybkość wykonania różnych metod mających na celu zwrócenie ilości linii zawartych w zmiennej typu string.
Analiza logów to nieodłączna część poprawiania, naprawiania, optymalizacji… W IIS również gromadzone są logi operacji. Zapisywane są w katalogu, którego ścieżkę – jak i wiele opcji dotyczących logowania – można sprawdzić we właściwościach sekcji „Logging”. Każda aplikacja stworzona na serwerze www posiada identyfikator. Domyślnie pliki loga tworzone są w trybie „jeden plik dziennika na witrynę dziennie” i zapisywane w katalogu: %SystemDrive%\inetpub\logs\LogFiles. Microsoft udostępnia sprytne narzędz...
autor: Od bardzo dawna VS służył mi do jednego-li tylko celu: programowania. Wraz z objęciem stanowiska DevLeada trochę się w tej kwestii zmieniło. Teraz wiżuala używam do trzech bardzo odmiennych celów. I każdy z nich potrzebuje trochę innej konfiguracji VS
AppDomain.AssemblyResolve - zdarzenie to pozwala załadować assembly jeśli standardowy mechanizm platformy .NET nie poradzi sobie z tym zadaniem. Aplikacja działała poprawnie aż do migracji na platformę .NET 4.0 Czemu? O tym właśnie będzie post. Zwrócę w nim uwagę na dość istotną różnicę pomiędzy platformą .NET 4.0, a jej wcześniejszymi wersjami jeśli chodzi o wspomniane zdarzenie. Różnica ta, w określonych warunkach, może napsuć krwi.
autor: W ostatnim poście wspominałem, że napisze jeszcze o ustawieniach debuggera VS w rejestrze. Okazuje się, że nie wszystko da się ustawić w Visual Studio czy ustawieniach systemowych. Częścią funkcjonalności trzeba sterować za pomocą ustawień w rejestrze - na szczęście są to marginalne przypadki. Czasami jednak zdarza się, że dodając jakieś wyrażenie do okienka Watch dostajemy niemiły komunikat - Function evaluation timed out. Buu... :/ Okazuje się, że możemy choć trochę wpłynąć na VS po jakim cza...
Autor (Paweł Łukasik): Kilka dni temu miałem okazję wygłosić kolejną prelekcję na Wrocławskiej Grupie .NET. Tym razem jako temat wybrałem debugger, który jest dostępny w Visual Studio. Jest to na prawdę kawałek narzędzia, który możemy wykorzystać dość sprawnie na naszą korzyść jeśli tylko wiemy gdzie szukać. Prezentacja to tak na prawdę zbiór tego co publikowałem w ostatnich czasach na blogu jak również na devPytania tak więc jeśli ktoś regularnie czyta bloga - zapewne nie znajdzie zbyt wiele nowości. ...
autor: Jak da się zauważyć - mam teraz na tapecie TFSa. I jeśli z całego tego zamieszania wyniknie choć jedna skonwertowana na gita osoba - z radości urządzę sobie kąpiel w kozim mleku i szampanie. Kilkukrotnie już wspominałem, że życie z TFS wcale nie musi oznaczać życia bez Gita. Wręcz przeciwnie - życie z TFS powinno "implicitly" kojarzyć się z wykorzystaniem Gita w celu obejścia największej porażki TFSa, czyli komponentu zajmującego się kontrolą wersji. Można to zrobić bardzo prosto. A co najlepsze...
autor: W drugim poście poświęconym Raven DB opiszę jak wykonywać podstawowe operacje (zapisz/usuń/zmień) na dokumentach. Ale czym jest dokument? Nie wiem jaka jest formalna definicja ale ja na dokumenty patrzę po prostu jak na obiekty zapisane (zserializowane) w formacie JSON. Poniżej przykład takiego dokumentu z mojego pet project, który odpowiada obiektowi klasy reprezentującej wyrażenie i jego tłumaczenia. { "Category": "Geografia", "Expression": "wioska", "Translations": [ {...
Bazy danych i XML 4707 dni, 18 godzin, 46 minut temu 188 źrodło rozwiń
Począwszy od Visty Microsoft wprowadził do systemu mechanizm 'Protected Processes', który w założeniach miał chronić niektóre procesy przed innymi wścibskimi procesami. Rozwiązanie to znalazło zastosowanie w DRM oraz WER... i właściwie nigdzie więcej. O tym, dlaczego PP to nie jest dobry pomysł pisał swego czasu Alex Ionescu, który udostępnił (niedostępne już) do pobrania narzędzie D-Pin Purr. Prosty przykład Zanim przejdziemy dalej, zobaczmy o czym mowa. Rozpocznijmy od uruchomienia Windows Media Player...
Po zapoznaniu ze zmianami jakie na nas czekają przy budowie Content Type’ów przy pomocy Visual Studio 2011 zobaczmy jakich zmian możemy się spodziewać jeśli chodzi o tworzenie list. Zacznijmy zatem od dodania nowego elementu do projektu: Pierwszą zmianę widzimy już na tym etapie, a mianowicie nie dostajemy już wyboru, czy chcemy utworzyć List Definition czy List Instance. Miejsce tych dwóch elementów zastąpił...