• 167 Posts
  • 235 Comments
Joined 3 years ago
cake
Cake day: November 29th, 2022

help-circle





  • Nie uważam siebie za jakiś autorytet, ale coś skrótowo mogę napisać.

    Zależy co chcesz wyciągnąć. Jeżeli pliki graficzne, to punktem zaczepienia jest poznanie jakich bibliotek używa dana gra. Jeżeli jest to SDL, to mniej więcej możesz ustalić jakie funkcje są używane do ładowania tekstur. Po załadowaniu do debuggera robisz na takiej breakpoint na funkcji SDL i wiesz, że “gdzieś pomiędzy tą funkcją i startem aplikacji jest ładowanie pliku tekstur, jego rozpakowanie/dekodowanie/parsowanie”. Dalej możesz zawęzić poszukiwania szukając syscalla otwierającego pliki itd. Gorzej jeżeli aplikacja ma np statycznie zlinkowanego SDL (jeżeli dobrze pamiętam, to jego licencja pozwala na coś takiego). Wtedy masz więcej roboty, żeby ustalić w którym miejscu jest kod gry, a gdzie jest SDL.

    Dużo pomaga jeżeli gra działa na jakimś gotowym silniku, a jeżeli ten silnik jest open source to już całkiem bajka (nawet jeżeli sama gra nie ma otwartych źródeł). Miałem tak z jedną grą zrobioną na Adventure Game Studio. Potrzebowałem sobie dodać do ekwipunku postaci jakiś przedmiot. Pogrzebałem w źródłach silnika jak obsługiwany jest tam ekwipunek i wiedziałem już czego mniej więcej szukać. Pomógł też fakt, że plik wykonywalny nie był do końca wystripowany. Nie było pełnych symboli debuggowych, ale były nazwy funkcji z silnika AGS. To co musiałem zrobić to ustalić w pamięci adres struktury zawierającej informacje o postaci. Popatrzyłem jakie funkcje silnika korzystają z tej struktury i była tam funkcja odpowiedzialna za przemieszczanie. Dałem na niej breakpoint, sprowokowałem przemieszczenie i miałem z GDB informację gdzie jest interesująca mnie struktura. Ponieważ AGS był open source, to mogłem ręcznie stworzyć sobie symbole debuggowe do interesujących mnie struktur i edytować je w GDB jak człowiek, a nie jak to zwierze ręcznie liczyć offsety ;-). Potem ręcznie z debuggera wołałem funkcję silnika odpowiedzialną do dodanie przedmiotu. Jako argument potrzebne były właśnie ta struktura, której szukałem i ID przedmiotu. Identyfikator ustaliłem już metodą prób i błędów, ale nie zajęło to jeż jakoś długo, bo wiedziałem czego szukam.

    Ilość użytych przez autorów zewnętrznych bibliotek mocno potrafi ułatwić RE. Nawet jeżeli wystripują wydanie gry z wszelkich symboli debuggowych, to muszą pozostać nazwy funkcji importowanych z tych zewnętrznych bibliotek. Te biblioteki często lubią udostępniać jakieś tutoriale, przykładowe kody źródłowe itp. Czasami patrzysz w taki przykład i w dekompilację gry i widzisz, że w tym miejscu było kopiuj-wklej przykładu z dokumentacji. Podobna była akcja u tego gościa co analizował silnik gry Trespasser, ale tam źródłem wiedzy była jakaś stara książka o grafice komputerowej. Widać było, że niektóre fragmenty silnika to było takie kopiuj-wklej z tej książki.

    Próbowałem kiedyś bawić w RE jakieś gry na DOS, ale pamiętam, że jakoś mi nie szło i temat porzuciłem. Może warto do niego wrócić, bo wtedy chyba robiłem to mocno po partyzancku. Być może teraz by mi poszło lepiej. Tamta gra używała jakiegoś extendera i miałem z nim jakiś problem, ale już nie pamiętam o co dokładnie poszło. Z tamtych czasów zrobiłem sobie kopię dokumentacji formatu LX (Linear eXecutable), której używał ten extender, a musiałem się naszukać, żeby ją znaleźć. Co prawda nie gra, ale natrafiłem kiedyś na stary elektrozłom, którego firmware działał na systemie operacyjnym “bytebos” (https://web.archive.org/web/19990208011926/http://www.bytebos.com/). Co się naszukałem jakieś konkretnej dokumentacji do tego wynalazku to moje (też zrobiłem sobie kopię na przyszłość ;-) ).












  • Czyli jak rozumiem droniarstwo zbliżyło się do miejsca, gdzie obecnie jest lockpicking. Obecnie są przepisy, że jak chcesz posiadać legalnie wytrychy, to musisz mieć odpowiednie papiery i pracować w zawodzie. W teorii jak policja znajdzie u ciebie wytrychy, to możesz mieć problemy. W założeniu miało to chyba utrudnić życie włamywaczom. Finalnie z tego co wiem praktyka jest taka:

    • Legalni ślusarze muszą pilnować tych pozwoleń, żeby móc wykonywać zawód
    • Osoby, które chcą zarejestrować swoją działalność jako ślusarz muszą wcześniej muszą wyrobić odpowiedni papier. To niekoniecznie musi być pełnoprawny ślusarz. Osoby, które zajmują się fizycznym bezpieczeństwem obiektów muszą mieć odpowiedni papier, żeby nikt się do nich nie przyczepił, że używają w pracy narzędzi do których nie mają uprawnień. Jest to też furtka dla hobbystów, którzy do niczego nie potrzebują w pracy wytrychów, ale sztucznie rozszerzyli sobie profil działalności.
    • Hobbyści, który dla sportu bawią się w otwieranie zamków i nie chcą bawić się w fikcję zatrudnienia po prostu siedzą cicho i nie chwalą się szeroko swoimi zainteresowaniami (a przynajmniej nie pod swoim imieniem i nazwiskiem)
    • Prawdziwi włamywacze mają na to wszystko wywalone i jak chcą to i sami zmajstrują sobie narzędzia do włamu w garażu
















  • LackytoSoftwareCalendar.txt
    link
    fedilink
    arrow-up
    1
    ·
    5 months ago

    O ograniczeniach JS kojarzę, ale to był zwykły HTML z tekstem i grafikami. Wiem, że mogłem te przerobić choćby na PDF, ale wg mnie coś poszło mocno nie tak, że mając w kieszeni komputer wielokrotnie szybszy niż mój PC z Windows 98 muszę walczyć z takimi ograniczeniami.



  • LackytoSoftwareCalendar.txt
    link
    fedilink
    arrow-up
    1
    ·
    edit-2
    5 months ago

    Ostatnio miałem potrzebę odczytać na telefonie materiały w formie kilku plików HTML zapisanych w pamięci mojego telefonu (coś jak kiedyś ziny w CD Action). Okazało się, że ładowanie grafik podlinkowanych w HTML załadowanym z pamięci telefonu jest zablokowane z powodu paranoi deweloperów Androida. Rozwiązanie? Zainstaluj na swoim telefonie prosty serwer WWW i hostuj sam sobie te materiały. Doszliśmy już do momentu, gdzie odczytywanie plików HTML z grafikami z telefonu (podobno) stwarza ryzyko bezpieczeństwa, ale instalowanie serwera WWW ze sklepu Androida jest już całkiem legitne. Pan Google twierdzi, że aplikacja serwera przeszła audyt i jest bezpieczna, ale w razie gdyby okazał się to być jakiś malware, to oni za nic nie odpowiadają i “widziały gały co instalowały”.


  • LackytoSoftwareCalendar.txt
    link
    fedilink
    arrow-up
    1
    ·
    5 months ago

    Edytor tekstu? Żeby ludzie mogli sami elastycznie zapisywać co chcą? Zwariowałeś czy ostatnie 15 lat leżałeś w śpiączce? ;-)

    Dedykowana aplikacja na smartfony (która tak naprawdę jest obudowanym Chrome, ale ciiii…), zapis możliwy tylko w chmurze producenta, brak możliwości eksportu do lokalnego pliku. W darmowej wersji możesz zapisać tylko jedno wydarzenie na dzień, a jak chcesz zapisywać więcej wydarzeń albo informacji to kup konto premium (pomimo zakupu premium i tak będziemy mogli sprzedawać twoje dane osobowe i wyświetlać reklamy, ale ciii…).


  • "And maybe, once in a while, European governments should have the guts to actually attempt to buy something else. Innovation doesn’t just happen without the promise of revenues. Spending just a few percent on alternatives would mean billions of euros.

    That’s a very small price to pay for a society that isn’t 100% dependent on “MAGA”, Donald Trump and Elon Musk. The world is far too dangerous for that."

    Jest taka mądrość ludowa: W dzisiejszym świecie prawdziwym motorem do rozwoju innowacji w poszczególnych państwach są sankcje USA. Niby heheszki, ale coś w tym jest. Odcięcie od jakiegoś rodzaju usług i towarów wymusza wytworzenie krajowych alternatyw, które uodpornią państwo na tego typu problemy w przyszłości.

    • Chiny jak dostały bana na Androida, to rozkręciły prace nad Harmony OS. Na podobnej zasadzie pchają do przodu swoje projekty procesorów, samolotów itp,
    • Ze w względu na sankcje Iran rozkręcił swoją zbrojeniówkę,
    • Pakistan w obawie przed ograniczeniem dostępu do broni, wiele lat temu zaczął prace nad swoim czołgiem. Dzisiaj są w stanie produkować swój czołg, a zdecydowaną większość jego komponentów może dostarczyć ich lokalny przemysł.
    • Rosjanie mają swoje Google: Yandex. Odcięcie od usług chmurowych z zachodu nie zaboli ich tak bardzo, bo mają swoje alternatywy.

    I tak, z jednej strony alternatywy tych państw nie są tak super zaawansowane jak produkty z USA, ale okazuje się, że często są wystarczające na lokalne potrzeby, nie zostaną od nich odcięci decyzją innego państwa, a przy okazji są motorem napędowym dla lokalnych poddostawców. Można się śmiać z Pakistanu, ale potem zadajmy sobie pytanie: Czy przemysł w takiej Polsce (albo wielu innych krajach UE) jest obecnie w stanie zrobić swoimi siłami jakikolwiek czołg?

    Jeżeli ostatnie wydarzenia nie były dla UE jakimś “plaskaczem korygującym”, to kolejnym przystankiem będzie dzień, gdy odetną jakieś państwo UE od usług, podobnie jak kiedyś Wenezuelę jako kara za nieposłuszeństwo.



  • W założeniu te liczniki mają same przesyłać odczyt do centralnego systemu.

    Problem z odczytem (zwłaszcza dla starszych osób) jest już przy obecnych “nie-smart” licznikach. Ktoś wpadł na pomysł, że jak chcesz zobaczyć ilość pobranych kWh, to musisz się przeklikać przez różne parametry. Żeby jeszcze te parametry były po ludzku nazwane, ale oni to ponazywali kodami OBIS. I teraz tłumacz starszej osobie, że ma klikać aż pojawi się parametr 15.8.1 i jego spisać.



Moderates