草庐IT

恶意指令

全部标签

windows - 假设 GetDC(hWnd) 作为 WM_CREATE 上的第一条指令被调用,对于窗口 hWnd,GetDC() 是否有可能返回 NULL?

假设GetDC(hWnd)作为WM_CREATE上的第一条指令被调用,对于窗口hWnd,GetDC()是否可能返回NULL?我担心GetDC()可能因资源不足而失败。当发生这种情况时,我应该检查错误吗?调用失败怎么办?Win32API函数会引发异常还是我应该引发异常? 最佳答案 GetDC()确实会失败,无论您何时何地调用它。在处理API时,您应该采取相当悲观的观点,并为任何API函数失败做好准备。正如您所建议的,失败的一个可能原因是系统资源耗尽,例如内核句柄、GDI对象等。所以你应该经常检查错误。不仅是GetDC(),对API函数

c# - 是否可以在不使用编译指令的情况下检测主应用程序线程是否作为 Windows 服务运行?

我需要检查包含在共享库中的方法,该库被Windows窗体应用程序和Windows服务引用。当我们在控制台模式下进行检查时,我必须允许潜在的对话。如果是Windows服务,我将改为在事件日志中写入消息。我找到了很多使用编译指令来做到这一点的方法。是否有其他更优雅的方法?谢谢 最佳答案 可以查看Environment.UserInteractive如果您的应用程序作为Windows服务运行,该属性将返回false。 关于c#-是否可以在不使用编译指令的情况下检测主应用程序线程是否作为Wind

windows - 如何在 DLL 中查找特定指令的内存地址

如何找到特定指令的内存地址(用于编写漏洞利用程序)?具体来说,我正在寻找user32.dll中的callebp指令,在没有ServicePack的WindowsXP上,我可以指向其地址EIP到。我有两个ImmunityDebugger和OllyDBG安装在目标上。 最佳答案 要找到一条指令,您需要找出代码、.text、部分的开始和结束位置,然后加载DLL并进行线性搜索,直到找到该指令。这里我们有一个测试DLL,它有两条callebp指令://test.c//gcc-Wall-sharedtest.c-otest.dll#includ

网络系统运维中级(华为1+X)简单指令。

1)pingIP:向该IP的PC端发送命令。2)displayinterface端口号:查看当前端口的速率和双工。3)interface端口:设置端口的速率和双攻模式。4)displaymac-address:查看连接交换机PC端的MAC地址。5)mac-addressstatic+PC端MAC地址+端口+vlan号:添加静态条目。6)displaymac-addressaging-time:查看MAC地址的老化时间。7)mac-addressaging-timeN:把MAC地址老化时间修改为N。8)vlanN:创建一个vlanN。9)vlanbatchNM:创建多个vlanNM。10)int

Windows 在安全更新后认为已签名的安装程序是恶意软件 (KB3124605)

2年前@DejanMaksimovic问了一个关于InternetExplorershowsvalidcertificateas“corruptorinvalidsignature”的问题.迄今为止,我在需要提升权限的安装程序中遇到了类似的问题。问题似乎是同源的,但是对于KB3124605.安装程序使用signtool签名,证书有效期至2016年8月。当我安装包含此补丁的累积更新时,WindowsSmartScreen告诉我发布者未知,但当我卸载安全更新时,Windows似乎能够区分发布者(证书信息中实际提到的发布者).更新于1月12日发布。有同样问题的人吗?正在运行SignToolv

windows - 崩溃转储意味着在顺序指令之间更改了寄存器值

我目前正在分析一位客户因蓝屏死机而产生的故障转储。出于保密原因,我无法提供故障转储,但我已经走到了死胡同。崩溃发生在DDK中的RtlSetBit函数中。这是上下文记录:rax=0000000000000000rbx=fffff8800282da00rcx=fffffa8007c10340rdx=0000000000000000rsi=0000000000000001rdi=fffffa8007c102e0rip=fffff8000168d0b4rsp=fffff880057478e8rbp=0000000000000000r8=0000000000000000r9=0000000000

c# - Reflection.Emit.ILGenerator异常处理 "Leave"指令

首先,一些背景信息:我正在为学校项目制作编译器。它已经在工作了,我正在花费大量精力来修复错误和/或优化它。我最近遇到了一个问题,我发现当您调用以下任何成员方法时,ILGenerator对象会生成一个额外的leave指令:BeginCatchBlock()BeginExceptFilterBlock()BeginFaultBlock()BeginFinallyBlock()EndExceptionBlock()因此,您通过调用BeginExceptionBlock()开始一个try语句,使用BeginCatchBlock()添加几个catch子句,可能添加一个带有的finally子句co

c# - 如何从 C# 调用 CPU 指令?

我的处理器(Inteli7)支持POPCNT指令,我想从我的C#应用程序中调用它。这可能吗?我相信我在某处读到它不是,但是如果JIT发现它可用,它会调用它,但是我必须调用什么函数可以用这样的指令代替?Popcount在一个循环中被调用了数百万次,所以如果可能的话,我希望能够进行这种CPU优化。 最佳答案 你想玩火,我们这里喜欢玩火...classProgram{constuintPAGE_EXECUTE_READWRITE=0x40;constuintMEM_COMMIT=0x1000;[DllImport("kernel32.dl

c# - C# 中跨不同文件的预处理器指令

我知道我可以在C#中使用预处理器指令来启用/禁用部分代码的编译。如果我在同一个文件中定义一个指令,它工作正常:#defineLINQ_ENABLEDusingSystem;usingSystem.Collections.Generic;#ifLINQ_ENABLEDusingSystem.Linq;#endif现在,我习惯于在C++中将所有这些配置指令放在一个头文件中,并将其包含在我需要此类指令的所有文件中。如果我在C#中做同样的事情,有些东西不起作用://Config.cs#defineLINQ_ENABLED//MyClass.cs#defineLINQ_ENABLEDusingS

c# - 序列化对象时省略 XML 处理指令

我在C#VS2003/.Net1.1应用程序中序列化一个对象。但是,我需要在没有处理指令的情况下对其进行序列化。XmlSerializer类输出如下内容:DataMoreData有没有办法得到类似下面的东西,而不用处理结果文本来删除标签?DataMoreData对于那些好奇的人,我的代码看起来像这样......XmlSerializerserializer=newXmlSerializer(typeof(MyObject));StringBuilderbuilder=newStringBuilder();using(TextWriterstringWriter=newStringWri