как на Visual C++ патчить *.exe файлы ? Вообщем давно задавался таким вопросом: Каким таким образом генераторы вирусов (да и не только вирусов) например Кузя 1.6 создают exe'шники с заданными параметрами в генераторе? Помогите кодом если не в падлу ... Я в Си новичёк поэтому со слов вряд ли пойму ...
Вообще пишется прога в готовом виде. Весь функционал включается/выключается значениями переменных. затем ищутся адреса этих переменных и запоминаются. Билдер только правит нужные части УЖЕ ГОТОВОГО файла, который он таскает как угодно, можно в ресурсах
Поверьте, код вам вообще ни о чем не скажет. Не факт, что если бы вы знали С на среднем уровне, то смогли бы реализовать свой билдер. По мимо синтаксиса языка нужно еще знать как устроена память; что значить "пропатчить" и прочие вопросы, не имеющие толком отношения к С. Вам же приблизительно slesh сказал. Пишется готовый экзешник, который будет выдавать генератор. Но не просто екзешник, а универсальный, т.е. он должен вмещаться в себе все возможные варианты функционала при генерации. Каждая отдельная функция управляется переменной, для простоты скажем boolean - 1 (активировать определенную функцию) и 0 (деактивировать). Такая программа является грубо говоря шаблоном. Пишется второй экзешник - сам генератор. Он хранит в себе первый экзешник - шаблон в скомпилированном виде. Одним из местом хранения, как сказал slash, может быть секция ресурсов. Так же генератор имеет список адресов boolean переменных первого экзешника, при помощи которых он патчит значения этих адресов, таким образом генерируя заданный пользователем функционал. И сохраняет готовый, т.е. скомпилированный и уже пропатченый с определенным функционалом экзешник отдельно. Не, конечно это только всё образно, вариантом может быть много, и в реальной ситуации по мимо указания какие функции будут работать, а какие нет, еще и патчатся дополнительные переменные, которые являются настройками функции, например IP адрес, пароль какой-нибудь и так далее.