c++ в машинный код

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by iskorpitix, 15 May 2020.

  1. iskorpitix

    iskorpitix New Member

    Joined:
    15 May 2020
    Messages:
    1
    Likes Received:
    0
    Reputations:
    0
    здравствуйте. код который написан в с++, его можно конвертировать в машинный код?.
    потом этот же кот который конвертировали обратно конвертировать в с++ и компилировать получит .exe файл. такое вазможо сделать?
     
  2. altblitz

    altblitz Elder - Старейшина

    Joined:
    5 Jun 2009
    Messages:
    3,694
    Likes Received:
    3,149
    Reputations:
    236
    Borland TurboDebugger - для изучения кода настоящих хакеров и кракеров.
    Удивительно, но работает до сей поры XXI века, написанное в 2000 годах.

    Или, есть одно программное в мире нашем , что покажет и код и структуру программы.
     
  3. #colorblind

    #colorblind Moderator

    Joined:
    31 Jan 2014
    Messages:
    634
    Likes Received:
    246
    Reputations:
    42
    нельзя
     
  4. DFService

    DFService New Member

    Joined:
    21 May 2020
    Messages:
    5
    Likes Received:
    2
    Reputations:
    0
    Попытки есть, но что-то я не слышал об особых успехах)
     
  5. mankurt13

    mankurt13 Well-Known Member

    Joined:
    18 Oct 2019
    Messages:
    378
    Likes Received:
    1,531
    Reputations:
    3
    Если изначально конпелируется под ту же архитектуру, шаги "обратно конвертировать в с++" и "компилировать получит .exe файл" можно заменить на "дизассемблировать" и "ассемблировать". Это называется риппинг.
     
    CKAP likes this.
  6. sn0w

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

    Joined:
    26 Jul 2005
    Messages:
    1,023
    Likes Received:
    1,296
    Reputations:
    327
    да, просто добавь ключ компилятору /FAs, например:
    cl /c /FAs /Od /Oy- /Ob1 /std:c++17 /GR- /GS- myprog.cpp

    это сгенерирует ассемблерный листинг.
    ну а проще всего заюзать https://godbolt.org/
    там можно и разные компиляторы заюзать и разные платформы типа арм и мипс
     
    Flisk likes this.
  7. altblitz

    altblitz Elder - Старейшина

    Joined:
    5 Jun 2009
    Messages:
    3,694
    Likes Received:
    3,149
    Reputations:
    236
    Ключ этот, документирован?
    И куда его вводить ключик тот волшебный, в передницу или в задницу программисткам?

    [​IMG]

    Что же выбрать на обед гусарам?
    Или сразу 4 гамбургеров с сыром или говяжий язык в соусе испанском Мадейра?
     
  8. sn0w

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

    Joined:
    26 Jul 2005
    Messages:
    1,023
    Likes Received:
    1,296
    Reputations:
    327
    вводить надо в командную строку, запущенную с окружением. медленно, предварительно смазав. и да, наступило твоё время, блиц - даже бмв акк перекрасил. впрочем похуй, pull a trigger - kill a nigger, then kill a gay.
    а сабж по теме прекрасно расписан вот тут: https://docs.microsoft.com/en-us/cp...piler-options-listed-by-category?view=vs-2019

    это если конпильрщик использует мегкомягкий конпилер, ежели гну gcc -
    то - хуй знает где, ищите сами, но гдето в дебрях C++ Standards Support in GCC - GNU Project - Free Software Foundation (FSF)
     
    #8 sn0w, 30 Jun 2020
    Last edited: 30 Jun 2020
  9. VY_CMa

    VY_CMa Green member

    Joined:
    6 Jan 2012
    Messages:
    917
    Likes Received:
    492
    Reputations:
    724
    CPPtoCarCodeConverter64.exe
     
    _________________________
    #colorblind and fandor9 like this.
  10. slesh

    slesh Elder - Старейшина

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    Чтобы в бинарника получить исходни нужен декомпилятор, но качество будет отвратительное. Без отладочных символом тем более нехрена не понятно будет. Для С++ подойдет HexRay из комплекта IDA. Но всё это для мелких прог, большие даже с отладочными символами получится бред и придется долго допиливать вручную. Другое дело C# - там можно гонять всё в любую сторону и получать код который можно снова компилировать.

    Опять же как выше писали, при компиляции можно задать флаг, чтобы компилятор создавал ассемблерные файлы для каждого файла исходника.

    Но что-то мне подсказывает человеку нужно было просто у готовой проги что-то изменить.
     
    4Fun likes this.