nektra / Deviare-InProc

Deviare In Process Instrumentation Engine
http://nektra.com/products/deviare-api-hook-windows/deviare-in-process/
Other
330 stars 84 forks source link

a question #5

Closed gitlsl closed 8 years ago

gitlsl commented 8 years ago

sorry for my english i can not clear understand what difference between Deviare2 and Deviare-InProc? i am a c# develper and want to hook managed and unmanaged dll , which one I should Use? just they both can do it

mxmauro commented 8 years ago

Hi, if you are planning to hook .net methods, then InProc is the only capable of do that.

Also depends on the approach you want to take. In Deviare you have a "controller" application and you hook other apps. With InProc, it is the classic approach where you are inside the app being hooked.

Deviare is easier for C# devs. InProc is faster and usually requires C skills.

Give me some background about what do you want to achieve to give better assistance.

Regards, Mauro.

mxmauro commented 8 years ago

To clarify. Both libraries can be used in C# and can hook any win32 api but only Deviare InProc is able to hook .NET methods.

gitlsl commented 8 years ago

thank you for your answer 1:i have a little c/c++ skills (use mfc 1 year) and c# developer 4 years In Deviare you have a "controller" application is that mean if I write a.exe a.dll I can inject a.dll to b.exe then a.exe can Communicate with b.exe by a.dll ?

2:usualy I want to control other programe's behavior like auto buy,auto sell, update userinfo real time or call somemethond or hook somemethond or get something not show on ui , the other programe may be managed or unmanaged,so I Think I should use Deviare-InProc

scnale commented 8 years ago

Hi gitlsl, About 1: Indeed, that is the essence of it. The difference is that Deviare offers several objects which abstract you from handling a dll if you don't think you need it. And of course, you are able to handle several hooked processes at once from a single application each with its own set of hooks. It is possible to inject your own dll using Deviare; it's called a plugin in that case. Otherwise the hook handling routines are called in the context of the controller process.

About 2: I'm not sure about this one, maybe mxmauro can give you better insight. All I can say though is that hooking another application makes it possible to alter behavior or receive information about it, but having it "take action" on behalf of a user might not be easy to do if I understood your intent correctly.

mxmauro commented 8 years ago

I recommend you to use Deviare, because it is easier to setup and use, and create a custom plugin for speed purposes if the buy/sell/update actions are very frequent. If you buy/sell/update, let's say, 2 times per second, you may avoid creating the custom plugin.

gitlsl commented 8 years ago

thank you @mxmauro @scnale for your answer

13013a commented 8 years ago

Hello. Couldn't write, please, you some instruction - as it is correct to set and build libraries and examples. I already long time try, and in some examples I have errors, and in the different moments. I thank for your help.

scnale commented 8 years ago

@13013a If you still have issues please write about them in detail in a new issue.