#hack

wszystkie notatki oznaczone etykietą "hack"

Hackowanie książki - PIW Cover CrackMe

Ciąg dalszy hackowania książek. Po udanym złamaniu (rozpakowaniu) okładki “Zrozumieć programowanie” przyszła pora na drugą książkę Gynvaela Coldwinda (przy współpracy Mateusza Jurczyka1), czyli “Praktyczna inżynieria wsteczna”. Po plotkach i niusach krążących w Internecie spodziewam się jeszcze lepszej zabawy ;) Tej książki też (jeszcze) nie posiadam, to znów musiałem zdobyć z sieci okładkę w przyzwoitej jakości2. Z okładki aż promieniuje kawałek jakiegoś kodu w asemblerze i bliżej nieokreślone dane, pewnie jakaś binarka zrzucona w 16-stkach.

Czytaj dalej

Hackowanie książki - ZP Cover UnZipMe

Na filmach, gdy widoczny jest monitor z kodem, to raczej spodziewamy się tam losowych danych lub wyciętych fragmentów kodu. Podobnie zresztą w różnych materiałach i ilustracjach niebędących ściśle merytoryczną częścią zawartości publikacji, a bardziej jakimś dodatkowym ozdobnikiem lub częścią designu. Czy Gynvael na okładki swoich książek też tak po prostu wrzucił jakieś losowo wygenerowane i ładnie wyglądające dane? Nie sądzę! Kiedyś natrafiłem na info, że znajdujący się tam kod to coś więcej niż spójna z treścią książki stylizacja okładki, to jakieś ukryte małe zadanie do rozwiązania.

Czytaj dalej

SSTV w 16 misji Gynvaela

Nie tak dawno, po powrocie Gynvaela (@gynvael) do regularnych livestreamów technicznych, jeden z widzów zaproponował, aby autor dorzucał jakieś ciekawe zadania do rozwiązania. Gyn podchwycił pomysł, od tego czasu na końcu każdego filmiku, na polskim i angielskim kanale, pojawia się ciekawe zadanie lub ćwiczenie z pogranicza crack-me/CFT zwane misją. Osobiście rzadko udaje mi się trafić na transmisję ‘live’, ale często sobie oglądam materiały, już po publikacji. Sam też myślałem o tym, aby zainteresować się misjami, zawsze można się czegoś nowego dowiedzieć i nauczyć, a i może z tego wyniknąć całkiem fajna zabawa.

Czytaj dalej

Shellcode: moje eksperymenty

Nigdy nie zajmowałem się szczególnie tematyką security, nie interesowało mnie pisanie czy zabawa z shellcode-ami czy exploit-ami. Za to często zdarzają mi się różne eksperymenty, które w wielu przypadkach są dobrym sposobem na poznanie nowych rzeczy. A także pomagają ugruntować swoją wiedzę i przekonania. Bo pomimo, że wiem co i jak w teorii oraz praktyce, to często nie miałem jeszcze okazji tego dotknąć i poczuć. Dotyczy to nie tylko programowania, inżynierii wstecznej czy elektroniki, ale szeroko pojętej techniki (i w zasadzie nie tylko)…

Czytaj dalej

Własny zamiennik baterii do smartphone

Bateria w nowoczesnym telefonie trzyma krótko, nikogo to za bardzo nie dziwi. Postęp w tej części techniki jest powolny, acz widoczny, chociaż na pewno powolna jest miniaturyzacja i gęstość upakowania “prądu”. Jak to mowa fizyki nie przeskoczysz. Nowoczesne urządzenia przenośne do poprawnej i wygodnej pracy jednak trochę tej energii wymagają. Tudzież wi-fi, gprs, lte, 2 karty sim, … i prąd znika, bo telefon szybko łyka. A baterii szybko lubi się wyczerpywać.

Czytaj dalej

x86/x64 Platform Independent Code

Znalazłem ciekawe tricki związane ze zmianami w opcodach instrukcji między x86 a x64. Odpowiednie wykorzystanie ich pozwala na łatwe wykrycie typu architektury i tworzenie wspólnej implementacji funkcji lub kodu dla obu tych platform. Co szczególnie może być użyteczne przy różnego rodzaju shellcodach i innych takich zabawkach. Nad takimi konstrukcjami w syringe zacząłem się zastanawiać, po tym, jak w minionym tygodniu zmieniłem pewien hack, związany z określeniem długości kodu wstrzykiwanego przy ładowaniu dll-ki do procesu.

Czytaj dalej

SaeLog #9: Outro

Niniejsza notatka jest podsumowującą całą serię edukacyjnych wpisów SaeLog, jakie w tym roku na przestrzeni kilku miesięcy pojawiały się na blogu. Seria dotyczyła hackowania modyfikacji kodu firmware oraz aplikacji analizatora logicznego firmy Saleae, aby ten działa również z nieoficjalnymi wersjami (klonami) urządzenia, gdzie używane są różne typy pamięci EEPROM. Problem ostatecznie został rozwiązany, więc nie będzie kontynuacji tematu. Poniżej lista wszystkich odcinków jakie ukazały się na blogu w ramach #SaeLog:

Czytaj dalej

SaeLog #8: Aplikowanie zmian do kodu programu

W wolnych chwilach pracowałem nad funkcjonalnością patchowania plików w moim projekcie strzykawki - syringe. Funkcja ta ukazała się pod postacią komendy patch. Nie tylko potrafi ona nakładać IDA-owe pliki diff na standardowe binarki, ale także, co było dla mnie ważne, bezpośrednio na dane zapisane w formacie IntelHex. Takiej możliwości potrzebowałem, aby móc dokończyć całą zabawę z analizatorem logicznym Saleae Logic i finalnie zaaplikować wszystko do programu. A ostatecznie rownież wygenerować łatkę rozwiązującą problem.

Czytaj dalej

SaeLog #7: Firmware z detekcją typu EEPROM

Nawiązując do moich hacków firmware’u analizatora przedstawionych w poprzednim poście z serii SaeLog, zastanawiałem się czy dokonana modyfikacja kodu jest dobra. Oczywiście jest, dla kogoś kto posiada płytkę z pamięcią adresowaną 2-bajtowo. Mimo to czuję jakiś niesmak, bo wielokrotnie wspominałem o dodaniu obsługi większych kostek, to finalnie moje modyfikacje firmware-u ograniczyły się do sztywnej “zamiany” obsługi 1-bajtowo adresowanych EEPROM-ów na 2-bajtowe. Nie mogłem spać po nocach, a po głowie ciągle chodziła mi myśl, aby spróbować dostosować kod do obsługi obu typów pamięci.

Czytaj dalej

SaeLog #6: Hacki w firmware w obsłudze EEPROM

Zabrałem się za zabawy z firmwarem, którego celem jest dodanie wsparcia pamięci EEPROM adresowanych wordem a nie bajtem. Odkąd mogę testować swoje hacki bezpośrednio na urządzeniu, całą uwagę mogę poświecić na tych zadaniu, skupiając się na analizach i eksperymentach. Moje urządzenie, jak i oryginalna wersja posiada pamięć EEPROM, która FX2 używa do różnych celów, między innymi do bootowania. Jest to pamięć szeregowa z serii AT24Cxx z komunikacją po magistrali I2C. A istotnymi różnicami między oryginałem a klonem (lub płytka developerską) jest wersja użytej kostki.

Czytaj dalej