Giter VIP home page Giter VIP logo

Comments (7)

radare avatar radare commented on May 18, 2024

As a note: udis86 shows repne scasw in both cases:

capstone

pair:~ pancake$ rasm2 -a x86.cs -d 66f2af
scasd eax, dword es:[edi]
pair:~ pancake$ rasm2 -a x86.cs -d f266af
repne scasw ax, word es:[edi]

udis86

pair:~ pancake$ rasm2 -a x86 -d f266af
repne scasw
pair:~ pancake$ rasm2 -a x86 -d 66f2af
repne scasw

olly disasm:

pair:~ pancake$ rasm2 -a x86.olly -d f266af
repne scas word ptr es:[edi]
pair:~ pancake$ rasm2 -a x86.olly -d 66f2af
repne scas word ptr es:[edi]

And I guess gnu would do something completely different here too :P

Who’s right?

On 18 Mar 2014, at 17:32, lintile [email protected] wrote:

I have found an issue with prefix ordering that causes the disassembler to ignore both the osz and the repe/repne prefixes:

% ./quickcs 66 f2 af
scasd eax, dword ptr es:[edi]
% ./quickcs f2 66 af
repne scasw ax, word ptr es:[edi]

This is currently a problem in LLVM ToT, but the prefix handling in this base is much closer to reality. Thanks!


Reply to this email directly or view it on GitHub.

from capstone.

lintile avatar lintile commented on May 18, 2024

Well, I can tell you that there are at least 3 different compilers on different platforms which generate this instruction, and when executed on the processor, they are equivalent.

from capstone.

aquynh avatar aquynh commented on May 18, 2024

thanks for the report! we will work on these cases & get back to you soon.

usually when there are differences, we would trust IDAPro more than others.
so it is a good idea for you to try these with IDA, too.

best!

On Wed, Mar 19, 2014 at 12:40 AM, radare [email protected] wrote:

As a note: udis86 shows repne scasw in both cases:

capstone

pair:~ pancake$ rasm2 -a x86.cs -d 66f2af
scasd eax, dword es:[edi]
pair:~ pancake$ rasm2 -a x86.cs -d f266af
repne scasw ax, word es:[edi]

udis86

pair:~ pancake$ rasm2 -a x86 -d f266af
repne scasw
pair:~ pancake$ rasm2 -a x86 -d 66f2af
repne scasw

olly disasm:

pair:~ pancake$ rasm2 -a x86.olly -d f266af
repne scas word ptr es:[edi]
pair:~ pancake$ rasm2 -a x86.olly -d 66f2af
repne scas word ptr es:[edi]

And I guess gnu would do something completely different here too :P

Who's right?

On 18 Mar 2014, at 17:32, lintile [email protected] wrote:

I have found an issue with prefix ordering that causes the disassembler
to ignore both the osz and the repe/repne prefixes:

% ./quickcs 66 f2 af
scasd eax, dword ptr es:[edi]
% ./quickcs f2 66 af
repne scasw ax, word ptr es:[edi]

This is currently a problem in LLVM ToT, but the prefix handling in this
base is much closer to reality. Thanks!

Reply to this email directly or view it on GitHub.

Reply to this email directly or view it on GitHubhttps://github.com//issues/82#issuecomment-37955778
.

from capstone.

lintile avatar lintile commented on May 18, 2024

IDA agrees:

seg000:00000004 66 F2 AF repne scasw
seg000:00000007 F2 66 AF repne scasw

from capstone.

radare avatar radare commented on May 18, 2024

udis wins

On 18 Mar 2014, at 17:58, lintile [email protected] wrote:

IDA agrees:

seg000:00000004 66 F2 AF repne scasw
seg000:00000007 F2 66 AF repne scasw


Reply to this email directly or view it on GitHub.

from capstone.

aquynh avatar aquynh commented on May 18, 2024

Lintile, this problem has been fixed in the "next" branch. can you confirm?

thanks.

from capstone.

aquynh avatar aquynh commented on May 18, 2024

this has been fixed in the "next" branch. if you still have this issue with some input, please reopen it.

thanks.

from capstone.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.