Как преобразовать вывод Keystone в исполняемый файл
Я пытаюсь настроить бинарную структуру перезаписи. Я использую Capstone, чтобы разобрать бинарный файл и затем собрать его с помощью Keystone. Keystone выведет закодированные данные, которые он называет скомпилированным кодом. Мне интересно, как я могу проверить этот процесс дизассемблирования / сборки, выполняя вывод Keystone. Но я понятия не имею, как преобразовать эти закодированные данные в исполняемый файл? Я работаю с 32-битной операционной системой X86 Fedora(linux). Другими словами, я думаю, что результатом Keystone является машинный код. Как я могу запустить это?
Это часть кода, который я использую для сборки кода сборки с использованием Keystone:
if (ks_asm(ks, CODE, 0, &encode, &size, &count) != KS_ERR_OK) {
printf("ERROR: ks_asm() failed & count = %lu, error = %u\n", count, ks_errno(ks));
} else {
size_t i;
printf("%s = ", CODE);
for (i = 0; i < size; i++) {
printf("%02x ", encode[i]);
}
printf("\n");
printf("Compiled: %lu bytes, statements: %lu\n", size, count);
}
И это ссылка для полного примера: витрина Keystone