ASM 32/64 markers
ASM 32/64 markers
Есть ли нормальные маркеры для заинлайненого в fpc ассемблера?
PS: И когда будет введена поддержка мапов от fpc?
PS: И когда будет введена поддержка мапов от fpc?
Re: ASM 32/64 markers
А чем не устраивает использование маркеров из SDK?
Re: ASM 32/64 markers
invoke VMProtectBegin,SADD("Test marker") в FPC? Попробуйте слинковать свои coff/omf с FPC. Получите незабываемые ощущения
Молчу про синтаксис не TASM'a.
Да, хоть в дельфи в процедурах типа "assembler" как вставлять сии маркеры?

Да, хоть в дельфи в процедурах типа "assembler" как вставлять сии маркеры?
Re: ASM 32/64 markers
А зачем вам нужно линковать coff/omf с FPC? Я не уверен что он их вообще поймет, т.к. для паскаля они не нужны - это чисто сишная кухня. Для паскаля достаточно добавить в uses VMProtectSDK.pas:
Code: Select all
uses VMProtectSDK;
asm
push 0
call VMProtectBegin;
...
call VMProtectEnd;
end;
Re: ASM 32/64 markers
P.S. Пример с именами маркеров:
Code: Select all
asm
push offset(@marker_name)
call VMProtectBegin
...
call VMProtectEnd
jmp @end
@marker_name:
db 'Test marker',0
@end:
end;
Re: ASM 32/64 markers
asm
push 0
call VMProtectBegin;
end;
Похоже на правду.
asm
push offset(@marker_name)
call VMProtectBegin
...
call VMProtectEnd
jmp @end
@marker_name:
db 'Test marker',0
@end:
end;
Попробуйте линкануть с FPC 64, чтобы заработало
push 0
call VMProtectBegin;
end;
Похоже на правду.
asm
push offset(@marker_name)
call VMProtectBegin
...
call VMProtectEnd
jmp @end
@marker_name:
db 'Test marker',0
@end:
end;
Попробуйте линкануть с FPC 64, чтобы заработало

Re: ASM 32/64 markers
FPC поддерживает ассемблер для х64? 

Re: ASM 32/64 markers
Хм. Действительно поддерживает:
Code: Select all
asm
mov rcx, offset @marker_name
call VMProtectBegin
...
call VMProtectEnd
jmp @end
@marker_name:
db 'Test marker',0
@end:
end;
Re: ASM 32/64 markers
P.S. Для x64 Calling Conventions отличаются от х32, т.е. для всех типов вызовов (включая stdcall) 4 первых параметра передаются через регистры RCX, RDX, R8, R9, а остальные передаются через стек.
ASM 32/64 markers
Как бы я до этого писал на асме64Admin wrote:P.S. Для x64 Calling Conventions отличаются от х32

asm
xor rcx, rcx
call VMProtectBegin
...
call VMProtectEnd
end;
или лучше эта?
asm
jmp @F
db 'VMProtect begin',0
@F:
jmp @F2
db 'VMProtect end',0
@F2:
end;
Re: ASM 32/64 markers
Можно использовать оба варианта.