日期:2014-05-19  浏览次数:21037 次

C#如何进行进程注入
在VC或者Delphi里面应该不算难事了,实例很多.
但是用C#不知道,这个是我的最高分了....还是希望大家能帮帮忙.

------解决方案--------------------
纯c#是不可能的事。混合编程,平台调用API才有可能。
然而使用平台调用又是个痛苦的事。
c#不是用来干这个的,还是使用vc吧,混合编程,写成DLL,c#也是能调用的。
------解决方案--------------------
不会,

想来,C# 应用程序运行在托管环境中,如果要与原生环境程序交互,只有通过平台 API,当然你可以用 VC 或者 Delphi 封装平台 API,然后提供给自己的 C# 应用程序
------解决方案--------------------
参照PEDIY上的一篇精华文章:
http://bbs.pediy.com/showthread.php?t=47860

需要注册才能看到。
------解决方案--------------------
vc写dll c#调用
------解决方案--------------------
昨天刚写的一个压缩文件的东西,不知道能不能符合你的
引入System.Diagnostics;
Process process = new Process();
process.StartInfo.FileName= "Winrar.exe "//你的应该写成explorer.exe吧
process.StartInfo.CreateNoWindow =true;

process.StartInfo.Arguments= "a -r " + path1 + " " + paths//你的改成 "www.sina.com.cn "随便

process.Start();
不知道是不是你想要的

------解决方案--------------------
写个COM,或者进一步封装成ACTIVE X

就可以了
------解决方案--------------------
楼上的在这搅和啊


楼主的 注入是谁注入谁呢?
我觉得VC注入.NET还是比较方便的
但是C#注入 其他比如VC必须依靠API或者核心操作.
这样一来 不但要操作非可靠资源 使用系统核心资源,而且还要考虑注入进去的代码和数据是否能给原进程接受,比如数据长度,内存位置,等等东西都需要特殊处理和转换.

我觉得 注入部分又回到了C++的范畴.
呵呵
------解决方案--------------------
C#要操作其他程序进程 我觉得也就是HOOK点东西出来或者修改个内存数据的比较现实
要注入代码段或者其他函数过程就太麻烦了.
------解决方案--------------------
我用c#写了一个远程注入,但是这里有一个问题就是我虽然把自已用C#写的DLL注入到其人用VC写的程序里,但是不知道这个DLL如果使用,注入的代码很简单,具体可调用API函数执行
过程是先在目标进程中用API的 VirtualAllocEx分配空间,然后用WriteProcessMemory写入DLL路径,再引发kernel32.dll的LoadLibrary 函数去远程CreateRemoteThread 执行LoadLibraryA调用进你要的DLL