итак, начинаем реверсировать

Discussion in 'Реверсинг' started by sn0w, 1 Apr 2019.

  1. sn0w

    sn0w Статус пользователя:

    Joined:
    26 Jul 2005
    Messages:
    957
    Likes Received:
    945
    Reputations:
    325
    начнём с главного - как устроена программа? в современном исполнении - это практически всегда ООП. а значит - всегда есть и конструктор и деструктор и такжет куча методов класса. как их отследить? начнём с того что у обьекта есть хотябы виртуальный деструктор. это означает что во всей иерархии наследования будет таблица виртуальных методов, и устанавливается она в двух местах - в конструкторе и в деструкторе, иными словами алгоритм работы конструктора следующий: вызов родительского конструктора, установка указателя таблицы виртуальных методов, вызов тконструкторов и инициализаторов из constructor member initializer list и затем исполнение тела конструктора. отправная точка в реверсе - когда код конструктора начнёт записывать VFT указатель. в иерархии запись начнётся с базового класса, и рекурсивно вплоть до послещднего в цепи.
     
    #1 sn0w, 1 Apr 2019
    Last edited: 1 Apr 2019
    CKAP likes this.
  2. #colorblind

    #colorblind Elder - Старейшина

    Joined:
    31 Jan 2014
    Messages:
    561
    Likes Received:
    188
    Reputations:
    35
    Если часто реверсировать, ладони волосатые будут. А начинать нужно с PE формата, имхо.
     
    CKAP likes this.
  3. CKAP

    CKAP Well-Known Member

    Joined:
    9 Oct 2015
    Messages:
    585
    Likes Received:
    1,987
    Reputations:
    7
    Ок.. давай прояви скилл.. [​IMG]
    А вобче вопрос давно (ненавижу это слово) бог знает с каких пор поставлен.

     
    seostock likes this.