Reklama
Pokazuje wyniki od 1 do 11 z 11

Temat: Reverse engineering

  1. #1
    Avatar 2cztery7
    Data rejestracji
    2014
    Posty
    628
    Siła reputacji
    10

    Domyślny Reverse engineering

    czytam sobie tę książkę i dowiedziałem się, że wyciągnięcie kodu źródłowego z .jara, .apk czy dotnetowego ILa nie stanowi żadnego problemu dla przeciętnego 13-latka.
    drążąc temat dalej zacząłem się zastanawiać:
    czy to oznacza, że publikując jakąkolwiek grę/aplikację na androida, każdy może bez problemu dorwać się do mojego kodu?
    czy jest jakaś możliwość, żeby ktoś dorwał się do kodu strony internetowej napisanej np. w asp.net czy javie EE/spring? tu sprawa jest chyba trudniejsza, bo klient otrzymuje tylko wygenerowany kod, jeżeli się nie mylę. ale jak to jest?
    no i czy da się, oraz czy jest sens jakoś się przed takim czymś zabezpieczać? czytałem o programach, które zamieniają nazwy klas, zmiennych itp. na krzaczki typu OIl110OOlIl, ale nawet to wydaje się dość słabą zasłoną.

  2. #2
    Avatar Absherr
    Data rejestracji
    2008
    Położenie
    Kraków
    Posty
    578
    Siła reputacji
    16

    Domyślny

    Jeśli chodzi o Javę i Springa raczej nie będzie tak łatwo jak z jar/apk, bo war (webowe jarki) leżą na serwerze i tam są tylko dostępne. No chyba że ktoś zdobędzie kontrolę nad serwerem, ale to będziesz miał wtedy większe zmartwienia ;d
    A jeśli chodzi o obfuskację, to da się to tak zrobić, że kod jest w 100% nieczytelny (zobacz chociażby przykłady na wiki).
    Ostatnio zmieniony przez Absherr : 24-01-2015, 21:22

  3. Reklama
  4. #3
    Avatar Lord
    Data rejestracji
    2012
    Położenie
    benzyna po 5,19 mordo xDDDD
    Wiek
    29
    Posty
    10,446
    Siła reputacji
    18

    Domyślny

    czytałem o programach, które zamieniają nazwy klas, zmiennych itp. na krzaczki typu OIl110OOlIl, ale nawet to wydaje się dość słabą zasłoną.
    Zamienia nazwy klasy i rozwala strukture ILa ale na wszystko jest lekarstwo.
    Ogólnie, żeby zabezpieczyć .NETową appke trzeba się posłużyć natywnymi metodami oraz jakimś egzotycznym obfuscatorem.
    Dla przykladu taka appka jak fulcrum czy jakos tak ma natywny loader który dekompresuje kod msila, ladujego do pamieci, dodaje magiczne rzeczy i wstrzykuje w proces-słup.

    Nie wiem co za ksiazke czytasz, bo jestem za leniwy zeby kliknac, ale pamietaj, ze nic cie tak nie nauczy jak praktyka

  5. #4

    Data rejestracji
    2010
    Posty
    2,657
    Siła reputacji
    16

    Domyślny

    Cytuj LordCompi napisał Pokaż post
    Cytat został ukryty, ponieważ ignorujesz tego użytkownika. Pokaż cytat.
    Zamienia nazwy klasy i rozwala strukture ILa ale na wszystko jest lekarstwo.
    Ogólnie, żeby zabezpieczyć .NETową appke trzeba się posłużyć natywnymi metodami oraz jakimś egzotycznym obfuscatorem.
    Dla przykladu taka appka jak fulcrum czy jakos tak ma natywny loader który dekompresuje kod msila, ladujego do pamieci, dodaje magiczne rzeczy i wstrzykuje w proces-słup.

    Nie wiem co za ksiazke czytasz, bo jestem za leniwy zeby kliknac, ale pamietaj, ze nic cie tak nie nauczy jak praktyka
    to tez jest do cofnięcia

    Generalnie binarka to zlepek jakiegoś źródła. Tyle, że C++ kompiluje do Assemblera, który jest na tyle ,,skomplikowany" , że nie da się w nim za dużo *praktycznie* zrobić ( bo teoretycznie masz dostęp do czego chcesz jak uda Ci się zrozumieć każdą linijkę xd ), a C# / Java do ILa, kwestia tylko deobfuskacji.

  6. #5
    Avatar Lord
    Data rejestracji
    2012
    Położenie
    benzyna po 5,19 mordo xDDDD
    Wiek
    29
    Posty
    10,446
    Siła reputacji
    18

    Domyślny

    *praktycznie* to dla poczatkujacych. Btw, tak jak Alex napisal wszystko da sie zlamac, bo ten kod stworzyl czlowiek, kompilator stworzyl czlowiek, kompa stworzyl czlowiek, a wiadomo jak to z tym jest

  7. #6
    Avatar Kusterek
    Data rejestracji
    2013
    Położenie
    Warszawa
    Wiek
    31
    Posty
    1,710
    Siła reputacji
    13

    Domyślny

    dokładnie, kompilator zamienia kod zrozumiały dla człowieka na kod maszynowy, działa to jednak w 2 strony.

    Jednak widziałem na własne oczy, że np miałem w swoim kodzie warunki switch a zdekompilowało mi to za zbiór if else if xD

    irc: freenode.net in #torgdevs

  8. #7
    Avatar BBsrv
    Data rejestracji
    2013
    Położenie
    50cm od monitora
    Wiek
    31
    Posty
    4,489
    Siła reputacji
    13

    Domyślny

    Cytuj Kusterek napisał Pokaż post
    Cytat został ukryty, ponieważ ignorujesz tego użytkownika. Pokaż cytat.
    miałem w swoim kodzie warunki switch a zdekompilowało mi to za zbiór if else if xD
    bo od strony "technicznej" switch i if elseif działa tak samo, po prostu switch jest wygodniejszy w użyciu dla ciebie, ale przez komputer oba są zrozumiałe tak samo
    Kontakt ze mną:
    pw

  9. #8

    Data rejestracji
    2010
    Posty
    2,657
    Siła reputacji
    16

    Domyślny

    Cytuj BBsrv napisał Pokaż post
    Cytat został ukryty, ponieważ ignorujesz tego użytkownika. Pokaż cytat.
    bo od strony "technicznej" switch i if elseif działa tak samo, po prostu switch jest wygodniejszy w użyciu dla ciebie, ale przez komputer oba są zrozumiałe tak samo
    niekoniecznie

    istnieje struktura switch w kompilatorach C++, jakoś na podstawie integera i skoku na podstawie tablicy adresów.

  10. #9

    Data rejestracji
    2008
    Posty
    27
    Siła reputacji
    0

    Domyślny

    A nawet w pewnych przypadkach switcha jest używane wyszukiwanie binarne dla optymalizacji.

  11. #10
    Avatar Malpa of Hell
    Data rejestracji
    2006
    Położenie
    Stargard
    Wiek
    30
    Posty
    556
    Siła reputacji
    19

    Domyślny

    Czytam sobie nazwe tematu, wchodze z nadzieja ze ktos mi nasunie pomysl jak zrobic prywatny serwer pewnej gry a tu ksiazka i webservery



    Co do publikacji aplikacji na androida to pamietaj ze przecietny kowalski nie ma roota i nie skopiuje sobie jej z systemu. Ale to tak tylko o przecietnych.

  12. #11

    Data rejestracji
    2014
    Wiek
    31
    Posty
    318
    Siła reputacji
    11

    Domyślny

    Osobiście polecam Java2Exe. Szyfruję klasy i zmienia do postaci binarnej. Oczywiście tak jak mówi @Kusterek da się też to rozkompilować, ale nie zrobi Ci już to 13 latek, a trzeba się trochę namęczyć. W sumie to jak na to spojrzeć to wszystko da się dzisiaj rozkompilować. Rozwiązanie jest jedno - utrudnić jak to tylko się da :)

Reklama

Informacje o temacie

Użytkownicy przeglądający temat

Aktualnie 1 użytkowników przegląda ten temat. (0 użytkowników i 1 gości)

Podobne tematy

  1. Odpowiedzi: 158
    Ostatni post: 10-09-2023, 11:07

Zakładki

Zakładki

Zasady postowania

  • Nie możesz pisać nowych tematów
  • Nie możesz pisać postów
  • Nie możesz używać załączników
  • Nie możesz edytować swoich postów
  •