delphi – 如何在编译时获取汇编指令的机器代码?
发布时间:2020-12-15 09:31:35 所属栏目:大数据 来源:网络整理
导读:我希望能够将单行ASM转换为 shellcode.即: CALL EBX 我该怎么做,并且能够正确转换这个shellcode,以便我可以将它存储在delphi应用程序的变量中.即: var ShellCodeArray: array[0..3] of Byte = ($55,$8B,$EC,$81); 解决方法 如果我说得对,你想使用Delphi内
我希望能够将单行ASM转换为
shellcode.即:
CALL EBX 我该怎么做,并且能够正确转换这个shellcode,以便我可以将它存储在delphi应用程序的变量中.即: var ShellCodeArray: array[0..3] of Byte = ($55,$8B,$EC,$81); 解决方法
如果我说得对,你想使用Delphi内置的汇编程序获得单个汇编程序指令CALL EBX的机器代码.
function CodeSize: Integer; asm lea EAX,@@end lea EDX,@@start sub EAX,EDX JMP @@end @@start: call EBX @@end: end; procedure Code; asm call EBX end; function CodeToBytes: TBytes; var I,N: Integer; P: PByte; begin N:= CodeSize; SetLength(Result,N); P:= @Code; for I:= 0 to N - 1 do begin Result[I]:= P^; Inc(P); end; end; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |