Programista 4/2023 (109) – wrzesień/październik 2023 – Debugowanie niskopoziomowe z Pwndbg – SPIS TREŚCI

programistamag.pl 1 rok temu

Zapraszamy do zamówienia magazynu w >>prenumeracie<<. Miesięcznik jest dostępny w formie papierowej, PDF, EPUB i MOBI oraz AZW3. Do prenumeraty papierowej zawsze dołączamy wydania elektroniczne.

BIBLIOTEKI I NARZĘDZIA

Debugowanie niskopoziomowe z Pwndbg

GDB, czyli GNU Debugger, to potężne narzędzie do debugowania aplikacji. Pozwala ono na dynamiczną analizę kodu źródłowego i natywnego; procesów użytkownika, jak i jądra systemów. GDB jest jednak nieco „toporny”: niektóre z jego komend są niewygodne w użyciu, a tekstowy interfejs (TUI) mógłby wyświetlać więcej informacji. Sytuację tę poprawia tytułowe Pwndbg – plugin do GDB, z którym zapoznamy się w tym artykule.

Dominik 'Disconnect3d' Czarnota

Własny asystent AI

„AI zastąpi programistów". „Sztuczna inteligencja zwolni programistów". Takie i podobne tytuły artykułów i wpisów blogowych mogliśmy przeczytać, gdy ChatGPT zyskiwał popularność i po raz pierwszy zobaczyliśmy jego możliwości w dziedzinie tworzenia kodu i stron internetowych. I choć w tej chwili głosy wyrażające podobne tezy są już trochę bardziej stonowane (w tytułach wpisów dodano słowo „Czy"), a także pojawiają się coraz głośniejsze opinie krytyczne, nadszedł czas na zmierzenie się z tematem pracy z takim asystentem AI. Czy faktycznie jest się czego obawiać?

Paweł Łukasik

JĘZYKI PROGRAMOWANIA

Co przyniesie C++ 23?

W chwili pisania tego artykułu jest niemal pewne, iż C++23 będzie czwartym wydaniem C++ z rzędu, które zostanie opublikowane bez opóźnień. Wedle przewidywań będzie to grudzień br. C++23 ma w tej chwili status feature freeze, co oznacza, iż jego obecna wersja będzie zasadniczo tożsama z ostateczną. W tym artykule opiszę co ciekawsze nowości z nadchodzącego standardu.

Paweł "Krzaq" Zakrzewski

Co nowego w Java 21

Przed nami premiera Javy LTS 21, której stabilna wersja ukaże się 19 września br. Planowanych jest 15 nowych zmian, choć część z nich możemy już znać z poprzednich wersji. W tym artykule przyjrzyjmy się ośmiu najważniejszym moim zdaniem funkcjonalnościom.

Juliusz Marciniak

PROGRAMOWANIE SYSTEMÓW OSADZONYCH

FreeRTOS od środka

Od ponad dekady Electronic Engineering Times publikuje „Embedded Market Study” [1] – prawdopodobnie największą i najbardziej miarodajną analizę rynku systemów wbudowanych. Od samego początku na pierwszym-drugim miejscu wśród używanych systemów operacyjnych jest FreeRTOS – twór praktycznie nieznany poza światkiem embedded. W tym artykule opiszę, czym jest FreeRTOS, jaką ma architekturę, jakie oferuje funkcjonalności i jak był rozwijany w ciągu 20 lat swojego istnienia.

Maciej Norberciak

PROGRAMOWANIE APLIKACJI WEBOWYCH

Cztery sposoby komunikacji międzymodułowej w monolicie

Monolit przez wiele osób utożsamiany jest z takimi określeniami, jak „nieuporządkowany”, „stary” czy „trudny w utrzymaniu”. Uważam, iż jest to błędne myślenie, ponieważ powinien on być rozpatrywany w kategorii wdrożeniowej, jako pojedyncza jednostka wdrożeniowa. Nie ma on nic wspólnego z bałaganem w kodzie czy użytą technologią.

Cezary Sanecki

TESTOWANIE I ZARZĄDZANIE JAKOŚCIĄ

Dwukierunkowe testy kontraktowe w praktyce

Nie ulega wątpliwości, iż testowanie interakcji między usługami odgrywa kluczową rolę z perspektywy procesów biznesowych. Jak jednak upewnić się, iż jesteśmy odporni na zmiany, które nie zależą od nas? W dynamicznie zmieniających się systemach, gdzie różne jego składowe są ciągle aktualizowane, ryzyko niezgodności staje się coraz większe. adekwatne strategie i narzędzia do testowania interakcji mogą stać się naszymi sprzymierzeńcami w dążeniu do ciągłości i niezawodności działania aplikacji.

Bartłomiej Krakowski

BEZPIECZEŃSTWO

Sekrety w środowisku programistycznym

Wymagania wobec wytwarzanego systemu stale ewoluują. Objętość kodu źródłowego zaczyna wzrastać, a mnogość funkcji powoduje, iż złożoność logiki, którą musi rozumieć programista, stale się powiększa. Do tego dochodzi komunikacja z usługami zewnętrznymi, takimi jak bazy danych czy też różnorodne API. Nie zawsze są to powszechnie dostępne funkcjonalności i mogą one wymagać od użytkownika uwierzytelnienia się przy pomocy różnego rodzaju poświadczeń. To z kolei zaczyna komplikować sytuację. Nieprawidłowe przechowywanie sekretów, które z definicji nie powinny być przecież jawne, prowadzić może do nadużyć, takich jak nieautoryzowany dostęp do systemów czy naruszenie poufności informacji.

Foxtrot_Charlie

Idź do oryginalnego materiału