Code Monkey home page Code Monkey logo

unicorn-net's People

Contributors

71 avatar ficture7 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

unicorn-net's Issues

Consider migrating to .NET standard

Migrating to .NET Standard would easily make the project available on more platforms, and is the recommended way to do things now. Please consider doing it.

If needed, I can help doing the migration.

Provide raw bindings

Provide raw bindings, so you don't need to go through the wrapper to do stuff.

Failing to start

Afternoon, thank you for creating this enhanced wrapper. I have a feeling I might be answering the question myself but just in case I am wrong I thought i would ask the following.

I loaded the project and build the class library and have then included this into my own person project such that I can use it.

I try and execute the line:
using (var emulator = new X86Emulator(X86Mode.b32)) I get the following issue after executing the first line.

'System.DllNotFound Exception 'Unable to load DLL 'unicorn' or one of its dependencies.....

I haven't build unicorn and I only have the .dll, im guessing I need to have built the unicorn project also and put it next to the .dll?

Thank you so much,

GetFunctionPointerForDelegate is UNSAFE and may be GCed

HookContainers call AddInternal to bind .NET delegate and unicorn hook callbacks.
but these AddInternals , just simply new a delegate and use Marshal.GetFunctionPointerForDelegate to bind native pointers.
But there is a problem that .NET RT may GC these delegate and cause Execption like this
image

"CallbackOnCollectedDelegate": "A callback was made to a garbage collection delegate of type "Unicorn.Net!Unicorn.Internal.uc_cb_hookcode::Invoke". This could cause application crashes, corruption, and data loss. When passing a delegate to unmanaged code The managed application must keep these delegates active until they are sure they will not be called again."

I suggest create a List<object> field to save all delegates in order to avoid GC

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.