Repository navigation
Possible to mark byte ranges as data, not code? #2829
Replies: 1 comment
|
1 clicking a byte never starts a new disassembly 2 the disassembler view has no data ranges it decodes the whole region you give it import hex.type.instruction;
using Code = hex::type::InstructionIntel<"x86;16bit", 0x00, 0x100>;
Code entry[while($ < 0x40)] @ 0x00;
u8 table[0x20] @ 0x40;
Code next[while($ < 0x200)] @ 0x60;0x100 is the load address of a .com so jump targets match what DOS sees |
Uh oh!
There was an error while loading. Please reload this page.
I'm just starting out with ImHex and working with 16 bit DOS era x86 binaries. My primary use for ImHex is to understand what the executables are doing and that usually means disassembly. I've had good results so far with pattern files and disassembly but I have a couple of problems:
When clicking on a bookmark or any byte in the hex view pane, I don't always see the disassembly resync and start disassembly from that point. Sometimes it does, and I wonder if it's when the last disassembly operation actually had already disassembled that point.
Many of the executables I expect to inspect are .com files or drivers, and so have no defined .text and .data segments. This being so it's quite likely that data can be intermixed with code, particularly when it's been hand written in assembly. The problem comes when data blocks occur say between functions, and so it means the disassembler can be confused by trying to disassemble data and continue onto the code offset from the instruction start. I think I'd really like to be able to mark a range of bytes as data so that the disassembler could just skip over it and continue disassembling at the correct point afterwards?
Thanks!
All reactions