GithubHelp home page GithubHelp logo

eminsight / vmpattack Goto Github PK

View Code? Open in Web Editor NEW

This project forked from 0xnobody/vmpattack

0.0 0.0 0.0 205 KB

A VMP to VTIL lifter.

License: GNU General Public License v3.0

C++ 99.37% Assembly 0.06% CMake 0.57%

vmpattack's Introduction

VMPAttack

alt text A Work-In-Progress VMP to VTIL lifter. Works for VMProtect 3.X x64.

Usage

Literally drag + drop the unpacked victim file onto VMPAttack.exe. Lifted VTIL routines will appear in a folder named "VMPAttack-Output".

Advanced Usage

All lifting functionality depends on the vmpattack root class object. This object can easily be constructed using a byte vector of the target image. You can lift any routine manually by passing the VMEntry RVA and entry stub value in a lifting_job structure to the vmpattack::lift function.

alt text

lifting_jobs can be automatically generated by providing the RVA of the entry stub (see above) to the vmpattack::analyze_entry_stub function.

Example usage:

   std::vector<uint8_t> buffer = read_file( file_path );

   vmpattack instance( buffer );

   if ( auto result = instance.analyze_entry_stub( my_rva ) )
   {
       if ( auto routine = instance.lift( result->job ) )
       {
           vtil::optimizer::apply_all_profiled( *routine );
           vtil::save_routine( *routine, "C:\\my_routine.vtil" );
       }
   }

Building

Building in VS is as simple as replacing the include/library directories to VTIL/Keystone/Capstone in the vcxproj.

The project now also universally supports CMake and platforms other than Windows.

The project requires C++20.

Issues

Stability is the main issue. Sometimes the lifter or optimizer can hang unexpectedly, or fail to lift certain branches. The lifter also does not currently handle switch tables.

Licence

Licensed under the GPL-3.0 License. No warranty is provided of any kind.

vmpattack's People

Contributors

0xnobody avatar meme avatar

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.