GithubHelp home page GithubHelp logo

Comments (3)

0x410c avatar 0x410c commented on May 23, 2024 1

i was wrong, there was an ambiguity in opcodes i found, as the opcode handlers of 2 opcodes are exactly same and oldrod assumes end of function when opcode is recieved. thanks, devirtualisation works great! thanks for the aweosme work!

from oldrod.

Washi1337 avatar Washi1337 commented on May 23, 2024

Modifications of KoiVM will always result in problems with either the disassembly or recompilation process.

This error stems from a few instructions not being decoded properly. Specifically, it is trying to emulate a CALL instruction. For binaries protected by vanilla KoiVM this should never happen (see InstructionEmulator).

This is indicative of either:

  • The config.json is not correctly filled in, causing some instructions to be incorrectly decoded as CALL instructions.
  • There are more modifications applied to this KoiVM than simply some opcode remappings, causing CALL instructions to appear as arguments to e.g., indirect jumps.

Double check your cross-references with the opcode handlers and your config.json. I also added some simple safety guards in the latest commit (56fc436, build should appear on AppVeyor soon), that should at least produce some results, and should enable you to use --salvage and --dump-il and/or --dump-cfg to help debugging which of the two hypotheses is the case.

from oldrod.

0x410c avatar 0x410c commented on May 23, 2024

im mostly sure that the call opcode is correct, i also rechecked, i am sure later is the case as if i even skip the first function there are more changes which deter devirtualisation

from oldrod.

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.