Мне нужна дыра, но выполнимая, вот что я имею под этим: Код (Text): procedure TForm1.FormCreate(Sender: TObject); begin asm jmp @L dd $FFFFFFFF,$FFFFFFFF,$FFFFFFFF,$FFFFFFFF dd $FFFFFFFF,$FFFFFFFF,$FFFFFFFF,$FFFFFFFF dd $FFFFFFFF,$FFFFFFFF,$FFFFFFFF,$FFFFFFFF dd $FFFFFFFF,$FFFFFFFF,$FFFFFFFF,$FFFFFFFF dd $FFFFFFFF,$FFFFFFFF,$FFFFFFFF,$FFFFFFFF @L: end; end; но это не удачное решение т.к. когда мне понадобится дыра поболе, к примеру на 10 килобайт, то этот исходник уже выростит возможно ли это решить другим способом? ЗЫ: дельфи не давно начал читать
Может включить файл с набором тех-же $FFFFFFF? Для этого есть директива {$I filename.inc} Хотелось бы знать, для чего она тебе вдруг понадобилась, может есть более прямые альтернативы.
Можно создать такую дырку в секции DATA: Код (Text): var hole : array [1..нужный_размер] of Byte; Потом вписать опкод JMP rel32: Код (Text): begin hole[1] := $E9; hole[2] := ((Length(hole) - 5) shr 0) and $FF; hole[3] := ((Length(hole) - 5) shr 8) and $FF; hole[4] := ((Length(hole) - 5) shr 16) and $FF; hole[5] := ((Length(hole) - 5) shr 24) and $FF; Только массив будет заполнен нулями, а не 0xFF. Если нужна дыра в функции, то можно скомпилировать обьектник в тасме (кажется, тасм поддерживает dup) и прилинковать к Delphi: Код (Text): {$L tasm_module.obj}
IceStudent " - А почему.. "Ы"? - Чтоб никто недогадался!" Quantum Спасибо, за мысли и доброжелательность,Но Код (Text): begin hole[1] := $E9; hole[2] := ((Length(hole) - 5) shr 0) and $FF; hole[3] := ((Length(hole) - 5) shr 8) and $FF; hole[4] := ((Length(hole) - 5) shr 16) and $FF; hole[5] := ((Length(hole) - 5) shr 24) and $FF; А вариант с тасмом интересен, но до тебя товарищ подсказал мне довольно хороший метод, за что ему спасибо.