casualx / lde Goto Github PK
View Code? Open in Web Editor NEWLength disassembler for x86 and x86_64 in Rust.
License: MIT License
Length disassembler for x86 and x86_64 in Rust.
License: MIT License
Great lib! Thanks!!
I've been testing your library on a Windows binary (PE) and I noticed that depending where I start the iteration in the buffer I don't have the same number of iterations.
I would have expected that if I start at 0x600 (where the opcodes seem to start) I would iterate until the end of the file (size=67MB) but I got less iterations than if I start at some other places that was of interest for me.
I have the feeling the iteration stops when it encounters something it doesn't understand OR maybe there is something I don't understand about the use of this library itself. Am I correct to think that the point of the iter function is to read the buffer to the end and provide an opcode for every iteration? Or am I wrong? (might sounds like a stupid question but I'm a beginner on this)
I don't mind writing some small code to help to debug. I'm not blocked by this issue but I'm interested to know more and participate on the development.
log
BUG -> bytes: [0F, 0E] -> must have len: 2 -> have len: 0 -> mnemonic: femms
BUG -> bytes: [0F, C9] -> must have len: 2 -> have len: 0 -> mnemonic: bswap ecx
BUG -> bytes: [0F, CA] -> must have len: 2 -> have len: 0 -> mnemonic: bswap edx
BUG -> bytes: [0F, CB] -> must have len: 2 -> have len: 0 -> mnemonic: bswap ebx
BUG -> bytes: [0F, CC] -> must have len: 2 -> have len: 0 -> mnemonic: bswap esp
BUG -> bytes: [0F, CD] -> must have len: 2 -> have len: 0 -> mnemonic: bswap ebp
BUG -> bytes: [0F, CE] -> must have len: 2 -> have len: 0 -> mnemonic: bswap esi
BUG -> bytes: [0F, CF] -> must have len: 2 -> have len: 0 -> mnemonic: bswap edi
objdump:
49 b8 00 00 00 00 01 00 00 00
movabs $0x100000000,%r8
lde stops the instruction at 49 b8 00 00 00 00
.
Probably the same issue with 48 b8 4a ba e2 b9 29 ab b9 bf
.
It would be nice to see a version of this go up on crates.io. Github pages documentation via travis-cargo would be useful too, as it's so nicely documented!
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.