Ответы пользователя по тегу C++
  • Можно ли как-то при компиляции ехе файла "внутрь" него добавить еще exe файл?

    MvcBox
    @MvcBox
    Software Developer [C/C++/JS(for Node.js)/etc]
    Вариантов реализации много.
    Как вариант - делаете свою dll библиотеку, которую добавляете в таблицу импорта вашего exe (например при помощи CFF Explorer).
    В DllMain этой либы делаете вызов окна, в котором вводится пароль. При вводе правильно пароля DllMain возвращает TRUE и приложение успешно запускается. В противно случает прибиваете процесс.
    Все это собираете в один бинарник при помощи, к примеру, Enigma Virtual Box.
    Дешево и быстро, но не очень надежно (даже не очень опытный реверсер распакует это за 1-2 минуты).

    P. S.
    Это лишь один из многочисленных вариантов. Все ограничено лишь Вашей фантазией и скиллом.
    Если это нужно чисто "для галочки", то хватит и этого варианта.
    Если нужно относительно надежное решение, то с таким лучше сразу на фриланс.
    Ответ написан
  • Почему не работает функция?

    MvcBox
    @MvcBox
    Software Developer [C/C++/JS(for Node.js)/etc]
    Имплементация шаблонных функций должна находиться в заголовочном файле
    Ответ написан
    1 комментарий
  • Как правильно получить из параметра argv[] строку "название файла"? Как вывести в консоль определенное количество строк?

    MvcBox
    @MvcBox
    Software Developer [C/C++/JS(for Node.js)/etc]
    int argv[2];
    string argv[3];
    
    ofstream fout (argv[3].c_str() , ios::app);

    1) Оно даже не скомпилится, как минимум словите conflicting declaration
    2) Классическая ошибка - затенение переменных. Вы хотели скастовать это в string, но в итоге написали полный бред. Даже если бы не было conflicting declaration, у вас там еще out of range: argv[3].c_str()

    while (N < argv[2]) { // вывод указанного числа из параметра [N]

    Вы сравниваете адрес с N, очередная бессмыслица.

    Дальше искать ошибки не стал, так как не имеет смысла. Все надо переделывать.
    Ответ написан
    Комментировать
  • Как зашифровать алгоритм внутри программы?

    MvcBox
    @MvcBox
    Software Developer [C/C++/JS(for Node.js)/etc]
    Если ценность Вашего алгоритма превышает 200 евро и существенное замедление работы алгоритма не очень критично, то можете воспользоваться готовым коммерческим продуктом - https://oreans.com/Themida.php
    В данный момент у продуктов Oreans самые "сильные" виртуальные машины.
    Но стоит помнить, что это не защищает Ваше приложение на 100%, а лишь значительно усложняет его реверс.
    Ответ написан
    Комментировать
  • Как Исправить код?

    MvcBox
    @MvcBox
    Software Developer [C/C++/JS(for Node.js)/etc]
    Вы не тем способом пытаетесь решить проблему.
    Подсказка:
    Q2K4YwETvJexBA.jpg
    Ответ написан
    3 комментария
  • Жив ли самомодифицирующийся код?

    MvcBox
    @MvcBox
    Software Developer [C/C++/JS(for Node.js)/etc]
    и по идее, это одно из направлений анти реверсинга.

    Направление "защиты от реверсинга" достаточно давно ушло в сторону виртуализации кода.
    Такие инструменты как Themida, VMProtect, Enigma, etc при минимальных затратах времени и (самое главное) умении пользоваться этими инструментами - позволяют достаточно надежно защитить критические части приложения.
    На данный момент лучшими инструментами (сугубо личное мнение, сформированные на основе опыта использования различных протекторов, а также на отзывах самих реверсеров) являются продукты Oreans Technologies (WinLicense, Themida, Code Virtualizer).
    Сильные виртуальные машины (которых более десятка) + широкие возможности кастомизации позволяют доставить немало проблем реверсерам.
    Ответ написан
    Комментировать