自由Pascal执行字节数组作为函数

时间:2018-03-08 22:50:34

标签: assembly freepascal

我有一个小函数做一些小的计算(没有外部调用或字符串),我已经将函数从内存转储到字节数组。 现在我试图调用字节数组中指向的地址,但是我遇到了访问冲突,我认为问题是我使用的方法:

type TFunc = function (input: Pointer): Integer;
...
procedure execute;
const
  Buffer: array[0..287] of Byte = ($55, $48, ...)
var
  Callable: TFunc;
  output: Integer;
begin
  Callable := TFunc(@Buffer);
  i := Callable(somePointer);
  ...
end;

我在将其转换为字节数组之前测试了该函数并且它正常工作。我也不能直接指向" Callable"。 访问冲突仅在呼叫时发生。 是否有可能只使用免费的pascal或者我需要一个asm来进行通话?如果是这样,我如何传递参数并获得结果? 我还需要为另一个函数传递一个数组吗? 感谢

0 个答案:

没有答案