Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

reverse-engineering w kontekscie malware

ifolskz 18 Gru 2017 11:03 561 6
  • #1 18 Gru 2017 11:03
    ifolskz
    Poziom 3  

    Hej, ostatnimi czasy bardzo zainteresowała mnie tematyka «inżynierii odwrotnej» oprogramowania, zwłaszcza w kontekscie wirusów komputerowych. Dorwałem, całkiem polecaną w kręgach książkę - Practical malware analysis autorstwa Michael-a Sikorskiego i Andrewa Honiga, jednakże podczas lektury odnoszę wrażenie, że jakoby brakowalo mi w niektórych miejscach wiedzy. Miewam trudności ze zrozumieniem koncepcji zwłaszcza kiedy ocierają się o wyjasnienia w assemblerze, czytanie wartości łancuchowych z pamięci RAM. Oprócz tego, przez wysokoabstrakcyjne języki z którymi głównie pracowałem do tej pory nie «widzę» dokładnie zależności między kodem maszynowym asm a kodem wysokopoziomowym, nie rozpoznaje przykładowo w którym momencie deklarowana jest zmienna bądź wywoływana funkcja etc. W kierunku lepszego zrozumienia na te chwilę zacząłem usprawniać wiedzę z zakresu wskaźników w C i uczyć się od podstaw assemblera. Byłbym bardzo wdzięczny jeśli ktoś miałby jakieś dodatkowe wskazówki odnośnie tematu, linki do darmowych materiałów, tytuły książek które mogłyby pomóc w znacznym stopniu w zrozumieniu.

    //po opublikowaniu tematu zauważyłem, że wrzuciło go do mikrokontrolerów, mógłby moderator przenieść do odpowiedniego działu? dzięki z góry

    0 6
  • #2 18 Gru 2017 14:24
    2675900
    Użytkownik usunął konto  
  • #3 18 Gru 2017 16:15
    ifolskz
    Poziom 3  

    Piotrus_999 napisał:
    Po prostu zabrałeś się za coś co przerasta znacząco poziom Twojej wiedzy. Nie ma RE bez głębokiej znajomości programowania. Tego po prostu nie przeskoczysz. Skup się na razie na nauce C i asemblera, dopiero później czytaj o czymś co wymaga tej wiedzy. Niestety odwrotnie się nie da.

    Myślę że masz rację, jednakże nie jestem do końca pewien na czym dokładnie powinienem się skupić zarówno w przypadku C i assemblera. Do tej pory, jeśli chodzi o C, skupiałem się przede wszystkim na wskaźnikach, działaniach na pamięci i najpowszechniejszych funkcjach windows api z których wirusy masowo korzystają pokroju readprocessmemory. Jeśli chodzi o assemblera to przyrównywałem jedynie proste programy C do outputu asm - niestety bez większego sukcesu. Miałbyś jakieś dokładniejsze wskazówki względem na co dokładniej powinienem położyć większy nacisk?

    0
  • #4 18 Gru 2017 16:18
    2675900
    Użytkownik usunął konto  
  • #5 18 Gru 2017 16:23
    JacekCz
    Poziom 36  

    ifolskz napisał:
    Piotrus_999 napisał:
    Po prostu zabrałeś się za coś co przerasta znacząco poziom Twojej wiedzy. Nie ma RE bez głębokiej znajomości programowania. Tego po prostu nie przeskoczysz. Skup się na razie na nauce C i asemblera, dopiero później czytaj o czymś co wymaga tej wiedzy. Niestety odwrotnie się nie da.

    Myślę że masz rację, jednakże nie jestem do końca pewien na czym dokładnie powinienem się skupić zarówno w przypadku C i assemblera. Do tej pory, jeśli chodzi o C, skupiałem się przede wszystkim na wskaźnikach, działaniach na pamięci i najpowszechniejszych funkcjach windows api z których wirusy masowo korzystają pokroju readprocessmemory. Jeśli chodzi o assemblera to przyrównywałem jedynie proste programy C do outputu asm - niestety bez większego sukcesu. Miałbyś jakieś dokładniejsze wskazówki względem na co dokładniej powinienem położyć większy nacisk?


    Nie wyobrażam sobie reverse engeeneringu bez PERFEKCYJNEJ znajomości C, wg mojej wizji na różniących się architekturach, łącznie z tą, na której nie planujesz RE.
    Ilustracja: jakiś czas temu inny kolega tutaj chciał potwierdzenia przydatności profesjonalnej, bo zna pętle i maski bitowe, a z tego składają się profesjonalne programy

    0
  • #6 18 Gru 2017 16:47
    ifolskz
    Poziom 3  

    JacekCz napisał:
    Nie wyobrażam sobie reverse engeeneringu bez PERFEKCYJNEJ znajomości C, wg mojej wizji na różniących się architekturach, łącznie z tą, na której nie planujesz RE.
    Ilustracja: jakiś czas temu inny kolega tutaj chciał potwierdzenia przydatności profesjonalnej, bo zna pętle i maski bitowe, a z tego składają się profesjonalne programy

    Chyba faktycznie zacznę od przyswojenia C w stopniu dużo lepszym niż naciągany średni, myślisz że kernel GNU/Linuxa byłby dobrym miejscem do tego celu?

    0
  • Pomocny post
    #7 18 Gru 2017 16:52
    2675900
    Użytkownik usunął konto