Code Monkey home page Code Monkey logo

Comments (1)

JanWichelmann avatar JanWichelmann commented on June 1, 2024

I apologize for the delay in answering - I wanted to get to the bottom of the issue first. I've now pushed a number of commits that solve some of the problems causing the aforementioned warnings, and generally improve compatibility to C++ programs.

Pin tool log: Error ...

That message is a bit misleading, and it can be safely ignored. This is caused by Intel Pin executing portions of libc before it tells Microwalk that the library is loaded, and the message is mostly a sanity check. I've changed the wording appropriately.

Free of address ...

This was caused due to a tail call in calloc, which the compiler converted into a jmp and thus led Microwalk to miss the allocation. I've made some updates to the Pin tool to catch such cases, so the warning should no longer appear (well, there may still be a handful instances, but you can safely ignore those).

Could not resolve target ...

Many of those were caused by the missing heap allocations above, but not all. I've done some more testing with Botan, and it seems that the C++ runtime uses a memory region that is neither part of the heap nor the stack. I'm still investigating this.


Apart from the concrete issues, I noticed that you are using Microwalk for analyzing Botan's blinded EC point multiplication. Blinded implementations use randomness, which is not supported by Microwalk at the moment (i.e., it only yields reliable results for deterministic code).

A workaround is forcing use of processor-based randomness and then setting the return value of rdrand to a constant through the corresponding configuration option, but this may yield lots of false positives by exposing leakage which is normally hidden by blinding.

Instead, you may want to wait until I have added an analysis module that supports randomness, which is something I definitely plan to do in the near future.

from microwalk.

Related Issues (12)

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.