new Function()
может использоваться для передачи тела функции в строку. И, следовательно, это можно использовать для создания динамических функций. Также передайте скрипт без выполнения скрипта.
var func = new Function("x", "y", "return x*y;");
function secondFunction(){
var result;
result = func(10,20);
console.log ( result );
}
secondFunction()
Нет инструкции push imm64
. В качестве обходного пути вы можете выполнить одно из следующих действий:
mov rax, 0xACEACEACACEACEAC; push rax
push qword [rel foo]
push dword low32; mov dword [rsp+4], high32
или sub rsp,8; mov dword [rsp], low32; mov dword [rsp+4], high32
push
с 32-разрядным размером операнда. (Даже с источником регистра). В инструкциях Intel insn ref указано, что вы можете использоватьREX.W
, но он не работает с NASM / YASM / GNU as или на реальном CPU (путем прикрепленияdb 0x40
(REX.W = 0) илиdb 0x48
(REX.W = 1) передpush rdx
). Протестировано на Intel SnB, а одношаговое с GDB. – Peter Cordes 22 December 2015 в 12:07push m32
( 2 ) декодирует до 2 uops на Intel и AMD, а загрузка может отсутствовать в кеше. (Предполагая, что 4 неприменим.) – Peter Cordes 22 December 2015 в 12:33