- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi, I am new to SDE and trying to understand how it works. I am trying to run a binary that I'll unfortunately have to keep private due to its sensitivity. I am running SDE version 9.33.0 on Ubuntu 22.04 (in VMware).
When I try to run the binary natively on my machine, SIGILL is raised and the program dies. If I peak at what's happening in GDB, the offending instruction is bextr $0x408,%eax,%edx. I don't know much about this instruction, but a quick search showed it was part of the BMI extensions.
When I try to use SDE to run this binary, I simply apply the bmi1 flag:
sde64 -bmi1 -- <binary>
However, I am met with the following error:
TID 0 SDE-ERROR: Executed instruction not valid for host's cpuid: 0x7fcad9a82056: bextr edx, eax, 0x408
Notice: No chip or cpuid.def file were given, so host's cpuid was used for chip check. Image: <REDACTED> (in multi-region image, region# 1)
Function: <REDACTED>
Instruction bytes are: 8f ea 78 10 d0 08 04 00 00
I've also tried other flags like bmi2, avx, etc., basically as hail mary attempts, but I always get the same error. I imagine the fix is straightforward, so if anyone can point me in the right direction, I'd appreciate it. Thanks!
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
The encoding in your message is for AMD version of the BEXTR instruction.
There are instructions in AMD XOP family were Intel and AMD has similar instructions but with different encoding.
Intel SDE does not emulate AMD instructions, and you must run on AMD CPU to execute them (or rebuild the binary with Intel target).

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page