delphi 用VMP加密,加入asm,64位报错,32位没问题,有解决办法吗?

m0_37875118 2019-03-31 10:00:52
加VMP的壳,我代码里面加密!
Delphi 中的标记模式:
asm
db $EB,$10,'VMProtect begin',0 //标记开始处.
end;
//想保护的程序代码
asm
db $EB,$0E,'VMProtect end',0 //标记结束处.
end;

64位不支持 汇编asm的标记是吗?
有什么办法去解决这个问题?

上面64位报错,32位编译通过,希望大神能有解决的办法?再次感谢!!
...全文
278 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
m0_37875118 2019-07-19
  • 打赏
  • 举报
回复
谢谢您的回复,我用他提供的demo来做了。
  • 打赏
  • 举报
回复
64位编译器只是不允许随处插入asm块,但是可以写独立的汇编过程:
procedure VMPBegin;
asm
db $EB,$10,'VMProtect begin',0 //标记开始处.
end;

procedure VMPEnd; forward;

//想保护的程序代码
procedure SecureCode;
begin
if integer(@VMPBegin) < integer(@VMPEnd) then begin end; // 防止没用到的代码被Delphi的smartlink链接器删除掉
// ...
end;

procedure VMPEnd;
asm
db $EB,$0E,'VMProtect end',0 //标记结束处.
end;

5,386

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧