Makes SYSENTER hookable again on x86 (#996)

Adds SYSENTER to the whitelist of supported hookable instructions in unicorn
as well as fixes up the existing sysenter_hook_x86 regression test which was
previously failing

Fixes unicorn-engine/unicorn#995
This commit is contained in:
toshiMSFT 2018-08-09 08:32:31 -07:00 committed by Nguyen Anh Quynh
parent 84220d8360
commit 0f14c47344
2 changed files with 3 additions and 2 deletions

View File

@ -1341,7 +1341,8 @@ static bool x86_insn_hook_validate(uint32_t insn_enum)
//for x86 we can only hook IN, OUT, and SYSCALL
if (insn_enum != UC_X86_INS_IN
&& insn_enum != UC_X86_INS_OUT
&& insn_enum != UC_X86_INS_SYSCALL) {
&& insn_enum != UC_X86_INS_SYSCALL
&& insn_enum != UC_X86_INS_SYSENTER) {
return false;
}
return true;

View File

@ -36,7 +36,7 @@ int main(int argc, char **argv, char **envp)
}
// Hook the SYSENTER instructions
if (uc_hook_add (uc, &sysenterHook, UC_HOOK_INSN, sysenter, NULL, UC_X86_INS_SYSENTER, 1, 0) != UC_ERR_OK) {
if (uc_hook_add (uc, &sysenterHook, UC_HOOK_INSN, sysenter, NULL, 1, 0, UC_X86_INS_SYSENTER) != UC_ERR_OK) {
printf ("Cannot hook SYSENTER instruction\n.");
return -1;
}