小编Iva*_*kov的帖子

终止受保护的防病毒进程

我正在使用ESet防病毒软件,最近它的GUI前端egui.exe挂起并占用了50%的CPU(即100%的一个核心).令人惊讶的是,即使启用了调试权限,我也发现无法杀死它.

现在我很好奇:他们如何实现这样的防御,有没有办法在没有编写内核驱动程序的情况下杀掉它?

egui.exe进程在常规用户(非管理员)下运行,我尝试使用管理帐户以各种方式终止它.这是我尝试过的.

  • 你无法从任务管理器中删除它
  • 你不能用pskill杀死它
  • 你不能使用进程资源管理器杀死它,也不能将调试器附加到它

然后我开始编程并发现:

  • 在非特权用户下,您可以使用PROSESS_TERMINATE访问权限打开它,但实际调用TerminateProcess()失败,错误为5.

  • 在管理员帐户下,您可以使用您想要的任何访问权限打开它(当然,在启用调试权限之后),但随后调用TerminateProcess(),GetKernelObjectSecurity(),SetKernelObjectSecurity()都会失败并显示错误5.

除了设置进程DACL之外,这肯定指向某种方式,因为如果Terminate不在DACL中,您将无法首先使用PROCESS_TERMINATE打开进程.它们实际上拦截了Win32 API调用吗?如果是,那怎么样?我做了低级系统编程已经有一段时间了,所以请原谅我的无知.

c++ security winapi kernel driver

18
推荐指数
1
解决办法
6260
查看次数

在非托管代码中,System.Diagnostics.Debugger.Launch()的等价物是什么?

我需要在满足某些条件时从我的本机C++程序启动调试器.在C#中我只需要调用System.Diagnostics.Debugger.Launch().我认为Win32 DebugBreak()调用将执行我想要的操作,但如果没有调试器,它只会终止应用程序.

如何从本机代码启动调试器的新实例(着名的"可能的调试器"对话框)?它甚至可能吗?我可以尝试使用COM来创建Visual Studio的新实例,但它有点复杂,并且还会将我锁定到特定版本的VS.

c# c++ debugging

11
推荐指数
2
解决办法
8635
查看次数

如何使用ASP.NET向Web用户显示本地化的日期和时间信息

我在服务器上有一个ASP.NET应用程序和一个UTC时间戳.我想在正确的时区显示用户的时间戳,并使用本地日期/时间格式.

例如,Jan 2, 2012 14:00:00 UTC 应该显示1/2/2012 9:00 AM纽约,美国(UTC -0500)02/01/2012 14:00的用户以及英国伦敦的用户.

这个看似简单的任务被证明是非常困难的.MSDN有一篇标题相同的文章,但它讨论的是解析用户输入而不是显示服务器端数据,因此它并不完全适用.

通过JavaScript可以在客户端轻松确定时区偏移量

offset = new Date().getTimezoneOffset();,

但JavaScript对日期/时间格式提供的支持很少.所有你得到的是toLocaleString()方法,这导致丑陋的长字符串,如Monday, January 02, 2012 9:00:00 AM.没有提供更短的格式,因此在客户端我们遇到了良好的时区信息和糟糕的日期/时间格式功能.

服务器上的情况正好相反.我们可以利用Accept-Language HTTP标头获取用户区域设置(不是最佳选择,但可能已经足够好),然后使用已知区域设置的.NET数据库,因此我们的代码沿着

CultureInfo userCulture = new CultureInfo(Request.UserLanguages[0]); 加上一些错误处理.

但后来我们陷入了时区问题.是的,可以通过JavaScript获取它,然后作为cookie或回发数据传回,但是如果我们需要在应用程序的第一页上显示日期呢?有人可能会争辩说,第一页始终是登录页面,但在会话之间持久保存用户登录信息时却不是这样("记住我"选项).解决方案可能是将时区偏移量保存为用户配置文件的一部分,但随后可能很容易变得陈旧(在会话之间开启和关闭夏令时).

是否有一个全面的解决方案,这个问题表现良好,不需要编写大量的代码?我很好奇,请指教.

javascript asp.net globalization

8
推荐指数
1
解决办法
1889
查看次数

使用T4的WPF和Silverlight统一XAML?

我正在编写WPF和Silverlight中使用的代码.在C#中我可以"#if SILVERLIGHT"用于条件编译,它可以工作.

但是,在XAML中,我必须使用完全不同的XAML文件,因为某些属性只是不兼容.XAML文件是99%的类似,并保持同步是一个麻烦.

我想将它们转换为T4模板,所以我可以做以下事情:

<SomeControl <#=ClipsToBounds()#> />
Run Code Online (Sandbox Code Playgroud)

哪里ClipsToBounds()为WPF和Silverlight生成不同的文本.要求是:

  • 在处理XAML时智能感知
  • 在构建时生成的模板
  • 该项目必须是自包含的,并在Visual Studio的库存版本上工作:不接受安装各种SDK和第三方编辑器
  • 模板运行的结果不应该在源代码管理中. -

我发现我可以更改custom toolXAML文件MSBuild:Compile to TextTemplatingFileGenerator,但我不会丢失Intellisense.但是,生成的模板是在设计时生成的.然后在构建时生成似乎是一个巨大的痛苦.

有没有人有这种设置的成功经验?

silverlight wpf t4 xaml

6
推荐指数
1
解决办法
302
查看次数

Rxjs:如何观察对上次发出的 Ajax 请求的 HTTP 响应

我有一个“快速搜索”框的用例,其中用户键入搜索条件的前几个字母,系统会实时显示结果列表。例如,如果您在国家名称框中键入“J” ,它会显示“牙买加,日本,约旦”。当你继续输入“Ja”时,它会只显示牙买加和日本,而将约旦排除在外。

每个搜索请求都是一个 AJAX 调用。AJAX 调用的问题在于响应的顺序可能与请求的顺序不同。例如,以下事件序列是可能的:

  1. 请求“J”的搜索结果。
  2. 请求“Ja”的搜索结果。
  3. 接收对请求 #2 的响应:[日本牙买加]
  4. 接收对请求 #1 的响应:[牙买加、日本、约旦]

如果系统盲目地显示最后一个响应,它最终会处于不一致的状态,当搜索框包含“Ja”时,但“Jordan”在建议列表中。该系统应该是智能的并丢弃响应 #4,因为它不再相关。

RxJS 是否提供了一种干净的方法来丢弃对最后发出的请求以外的任何响应?

请记住,随着新请求的产生,“最后一个请求”会随着时间的推移而变化。我搜索了文档,并没有找到太多。大多数教程简单地忽略了这个问题。

ajax rxjs

2
推荐指数
1
解决办法
919
查看次数

HTML:<sup> <a> ...... </a> </ sup>合法吗?

早在2009年,我写了一个页面(http://www.ikriv.com/dev/dotnet/JavaClone/index.html),其中包含很多这样的片段:

<sup><a href="#ref14">[14]</a></sup>

我认为它在Firefox和IE中看起来都不错.令我惊讶的是,我今天发现Firefox 14.0.1按预期显示了其中一些,而其他一些显示为没有sup标记.

更有趣的部分是IE8在与Firefox完全相同的地方遇到麻烦,只是忽略了上标而是插入额外的换行符.

Chrome与Firefox的功能相同:某些上标可以正常使用,而其他上标则被忽略.

我找不到任何规律性,但有三件事是肯定的:

  • 一些片段按预期显示,有些则不显示
  • 所有主流浏览器似乎在完全相同的地方都有问题
  • 如果我删除<a>标签,一切都恢复正常
  • 是什么赋予了?是<a>>内的<a>非法还是什么?

    html firefox internet-explorer google-chrome

    1
    推荐指数
    1
    解决办法
    280
    查看次数