Forcing a process to execute code?

Started by
2 comments, last by 21st Century Moose 12 years, 4 months ago
What methods are available where i can have my application FORCE an external process to execute code in the targets address space? ( besides using createremotethread() ) -thanks!

Advertisement
Use the facilities provided by the external process.Modify the external process to provide said facilities.
Everything else involves exploiting vulnerabilities in the external process (hacking).

What methods are available where i can have my application FORCE an external process to execute code in the targets address space? ( besides using createremotethread() ) -thanks!

I immediately question: Why?

If you own the source program you can simply load the library and run it.

The OS has very strict permissions restrictions about who can load what code. Most PCs (except some old decade-old PCs) help the OS to enforce those restrictions by marking only certain pages of memory as executable. Further, there are many rules enforced for memory management.

If you don't own the target application, you can use the debugger api to attempt to open it. Again, this is subject to proper permissions on the app and digital signatures.


If you don't own the app and you don't have debugger permissions and an unsigned executable (or signed executable and also have the key), then I really question the reason of why you want to do this.

Obviously there are hacks and back-doors and undocumented methods to do it. But attempting to do so voids the guarantees of your API: Microsoft can (and does) change that behavior all the time with updates and patches and hotfixes. There is a very good chance that whatever method you use will end up vanishing underneath you with each Tuesday Patch Day.


What are you attempting to accomplish? What (legitimate) problem are you trying to solve?

I immediately question: Why?
.
.
.

What are you attempting to accomplish? What (legitimate) problem are you trying to solve?


I second this. It sounds to me as though you have some kind of problem elsewhere and you've decided that this is the way to solve it, but you haven't yet done a full analysis of the cause. If you use something like this to solve such a problem you may very well succeed, but the underlying bug that caused the problem in the first place will still be there.

Direct3D has need of instancing, but we do not. We have plenty of glVertexAttrib calls.

This topic is closed to new replies.

Advertisement