Tag: 代码注入

如何在运行时将文件注入EXE并在程序运行期间引用该文件?

我希望用户从我的网站下载exe,其中(同步下载时)将一个XML文件注入到该应用程序中。 此XML文件包含公钥和签名。 如何在下载之前注入文件并在执行期间稍后引用它? 理想情况下,我不会使用shell来注入文件,而是使用本机.NET API。

我可以从C#在远程应用程序域中注入一个线程吗?

我想知道是否有可能将一个线程注入到一个单独进程中运行的远程应用程序域中。 我的猜测是我可以使用调试接口(ICorDebug)来做到这一点,但我想知道是否还有其他方法?

C#:将CSS注入MSHTML实例的最佳方法是什么?

我正在尝试将一些其他HTML附带的CSS注入到C#托管的WebBrowser控件中。 我试图通过底层的MSHTML(DomDocument属性)控件来执行此操作,因为此代码用作完整IE8 BHO的各​​种原型。 问题是,虽然我可以注入HTML(通过mydomdocument.body.insertAdjacentHTML)和Javascript(通过mydomdocument.parentWindow.execScript),但它完全拒绝我的CSS代码。 如果我在注入后将包含我要插入的HTML的字符串与目标页面源进行比较,那么MSHTML的源代码将包含除 元素及其基础源之外的所有内容。 CSS通过了CSS 2.1的W3Cvalidation。 它没有做任何太棘手的事情,除了一些背景图像属性将图像直接嵌入到CSS中(例如background-image: url(“data:image/png;base64 …)”,并注释掉这些行不会改变结果。 更奇怪的是(而且我不确定这是否相关),是我上周没有遇到任何问题。 本周我又回到了它,在切换了一些在实际注入之前处理要注入的HTML的代码之后,它不再起作用了。 当然,我认为我的某个更改可能会出现问题,但在对所有逻辑进行评论并将其直接输入后,HTML仍然显示为未格式化。 目前我正在注入标签,虽然我试图注入并且遇到了类似的结果。 在此先感谢您的帮助! 汤姆

通过PublicKeyToken防止外部程序集注入

我正在使用以下代码: AppDomain.CurrentDomain.AssemblyLoad += (sender, args) => { var token = args.LoadedAssembly.GetName().GetPublicKeyToken(); if (!IsValidToken(token)) { Process.GetCurrentProcess().Kill(); } }; IsValidToken()将正在加载的程序集的公钥标记与我的应用程序中硬编码的授权公钥标记列表作为字节数组进行比较。 这是防止代码注入攻击的良好安全措施吗? 此外,鉴于我稍后将使用NetReactor对我的应用程序进行模糊处理,这是否必要? 我试图阻止任何“窥探”我的应用程序,不仅来自Snoop工具,而且来自任何外部不受欢迎的来源。

AppDomain.CreateInstanceFromAndUnwrap – 无法转换透明代理

我正在编写一个.NET库,将托管DLL注入外部进程。 我目前的做法是: 使用CreateRemoteThread强制目标进程在非托管引导DLL上调用LoadLibrary 。 从这一点开始,我们在目标进程中执行代码。 我的引导DLL然后创建一个CLR实例并在其上调用ExecuteInDefaultAppDomain ,它执行托管助手DLL中的方法。 此方法创建一个新的AppDomain并调用AppDomain.CreateInstanceFromAndUnwrap将执行传递到我的有效负载DLL,并将结果转换为IInjectionPayload 。 我的想法是我的有效负载DLL公开了一个实现IInjectionPayload的类,因此助手DLL可以简单地调用payload.Run() 。 我这样做是为了通过简单地调用AppDomain.Unload (在发信号通知清理之后)完全卸载有效负载代码。 这种方法有效 – 我的有效负载DLL中的类正在目标进程中实例化,因此可以执行代码 – 但是我无法将CreateInstanceFromAndUnwrap返回的对象IInjectionPayload转换为IInjectionPayload ; 它抛出以下exception: 无法转换透明代理以键入’blah.Blah.IInjectionPayload’。 我尝试使用CreateInstanceAndUnwrap和Activator.CreateInstanceFrom后跟Object.Unwrap ,但这两种方法也会导致抛出相同的exception。 我的有效载荷类的签名是: public class Program : MarshalByRefObject, IInjectionPayload 我很难过,因为有效负载DLL肯定会被加载,并且正在按照预期实例化类。 任何帮助将非常感激。

修改C#编译的exe中的Emdeded String

我有一个问题,我需要能够有一个编译的exe(.net 3.5 c#),我将复制分发,例如在发送exe之前需要更改密钥。 每次需要新的exe时我都无法编译。 这是一个瘦客户端,将用作注册过程的一部分。 是否可以向具有空值的资源文件添加条目然后当请求进入时,另一个应用程序获取空白的默认瘦客户端,复制它,用所需数据填充空白值。 如果有,怎么样? 如果没有,你有什么想法吗? 我现在已经摸不着头几天了,这个限制是由于我需要工作的边界。 我的另一个想法是将值注入一个方法,我不知道我怎么会尝试这个。 谢谢。

C#代码注入

你可以使用Windows钩子或其他方法用c#进行代码注入吗? 我已经看到很多关于代码注入的事情,但所有这些都是用C / C ++完成的。 我不知道这些语言中的任何一种,并且很难翻译。 有没有人对如何做到这一点有任何想法?