Выделяю буфер Код (Text): VirtualAlloc( 0, sz, MEM_COMMIT, PAGE_EXECUTE_READWRITE ) далее Код (Text): mov edi, eax lea esi.. mov ecx... rep movsb Первый байт буфера постоянно 0xCC. Знакомая какая-то ошибка, но выловить не могу. Суть: пишется упаковщик. Загрузчик помещаю в секцию, которая до упаковки имела точку входа. Данные этой секции записываю в новую добавленную секцию. При старте упаковщик должен скопировать себя в буфер, записать на свое место прежние данные, распаковать, настроить и т.д. Вот скопировать себя в буфер и не получается
psu Уберите breakpoint'ы. 0xCC - это опкод int3. Отладчик заменяет первый байт инструкции на int3, чтобы прерваться на нем.
А ты не прогоняй под отладчиком. Не будет "странных" цеце появляться, ибо отладчик, Как было сказано, использует этот опкод (INT3) для софтварных бряков. Либо как вариант - используй только аппаратные бряки