Giter Site home page Giter Site logo

webstorage119 / usvfs Goto Github PK

View Code? Open in Web Editor NEW

This project forked from tanninone/usvfs

0.0 0.0 0.0 829 KB

library using api hooking to implement process-local filesystem-independent file links.

License: Other

CMake 32.75% Batchfile 0.27% C++ 63.48% C 3.40% Assembly 0.09%

usvfs's Introduction

usvfs

License Build status Coverity Scan Build Status

USVFS (short for User Space Virtual File System) aims to allow windows applications to create file or directory links that are visible to only a select set of processes. It does so by using api hooking to fool file access functions into discovering/opening files that are in fact somewhere else

Comparison to symbolic links

The following is based on the final goal for usvfs and doesn't necessary reflect the current development state.

Unlike symbolic file links provided by NTFS

  • links aren't visible to all applications but only to those the caller chooses
  • links disappear when the "session ends"
  • doesn't require write access to the link destination
  • doesn't require administrator rights (neither for installation nor for use)
  • links are filesystem independent so you can create links on fat32 drives, read-only media and network drives
  • can link multiple directories on top of a single destination (overlaying)
  • can also "virtually" unlink files, thus make them invisible to processes or replace existing files

There are of course drawbacks

  • will always impose a memory and cpu overhead though hopefully those will be marginal
  • becomes active only during the initialization phase of each process so it may not be active at the time dependent dlls are loaded
  • introduces a new source of bugs that can cause hard to diagnose problems in affected processes
  • may rub antivirus software the wrong way as the used techniques are similar to what some malware does.

Current state

usvfs is work in progress and should be considered in alpha state. It is a core component of Mod Organizer v2 https://github.com/TanninOne/modorganizer and thus receives serious real world testing

License

usvfs is currently licensed under the GPLv3 but this may change in the future.

Contributing

Contributions are very welcome but please notice that since I'm still undecided on licensing I have to ask all contributors to agree to future licensing changes.

usvfs's People

Contributors

lepresidente avatar tanninone 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.