как на Visual C++ делать билдеры *.exe файлов ?

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by dllWizard, 1 Apr 2011.

  1. dllWizard

    dllWizard New Member

    Joined:
    29 Mar 2011
    Messages:
    22
    Likes Received:
    0
    Reputations:
    0
    как на Visual C++ патчить *.exe файлы ?

    Вообщем давно задавался таким вопросом: Каким таким образом генераторы вирусов (да и не только вирусов) например Кузя 1.6 создают exe'шники с заданными параметрами в генераторе?

    Помогите кодом если не в падлу :( ... Я в Си новичёк поэтому со слов вряд ли пойму ...
     
    #1 dllWizard, 1 Apr 2011
    Last edited: 1 Apr 2011
  2. slesh

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

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    Вообще пишется прога в готовом виде. Весь функционал включается/выключается значениями переменных. затем ищутся адреса этих переменных и запоминаются.
    Билдер только правит нужные части УЖЕ ГОТОВОГО файла, который он таскает как угодно, можно в ресурсах
     
  3. dllWizard

    dllWizard New Member

    Joined:
    29 Mar 2011
    Messages:
    22
    Likes Received:
    0
    Reputations:
    0
    slesh, А как это кодом реализовать?
     
  4. Sams

    Sams Member

    Joined:
    18 Apr 2009
    Messages:
    247
    Likes Received:
    70
    Reputations:
    17
    Поверьте, код вам вообще ни о чем не скажет. Не факт, что если бы вы знали С на среднем уровне, то смогли бы реализовать свой билдер.

    По мимо синтаксиса языка нужно еще знать как устроена память; что значить "пропатчить" и прочие вопросы, не имеющие толком отношения к С.

    Вам же приблизительно slesh сказал. Пишется готовый экзешник, который будет выдавать генератор. Но не просто екзешник, а универсальный, т.е. он должен вмещаться в себе все возможные варианты функционала при генерации. Каждая отдельная функция управляется переменной, для простоты скажем boolean - 1 (активировать определенную функцию) и 0 (деактивировать). Такая программа является грубо говоря шаблоном.
    Пишется второй экзешник - сам генератор. Он хранит в себе первый экзешник - шаблон в скомпилированном виде. Одним из местом хранения, как сказал slash, может быть секция ресурсов. Так же генератор имеет список адресов boolean переменных первого экзешника, при помощи которых он патчит значения этих адресов, таким образом генерируя заданный пользователем функционал. И сохраняет готовый, т.е. скомпилированный и уже пропатченый с определенным функционалом экзешник отдельно.
    Не, конечно это только всё образно, вариантом может быть много, и в реальной ситуации по мимо указания какие функции будут работать, а какие нет, еще и патчатся дополнительные переменные, которые являются настройками функции, например IP адрес, пароль какой-нибудь и так далее.