简洁明了:DIA(调试接口(interface)访问)和DBGHELP库之间的实际区别是什么?我知道DIA是基于COM的并且似乎非常强大(并且能够与托管和非托管进程一起使用),而DBGHELP似乎使用起来非常方便但提供的可能性较少。任何人都可以解释这两者的区别在哪里,以及一个可以做什么,而另一个不能做什么?我真的很难在互联网上找到一些完整的结论性信息:(抱歉,如果这看起来是一个乏味的问题,感谢您为我提供的任何答案!:)问候普尔诺克提斯 最佳答案 DIA具有一致的基于COM的接口(interface)。DbgHelp由一组标准C函数组
我在window764位上使用键盘钩子(Hook)时遇到问题。我做这些事情:1.创建一个32位的dll2.加载到应用程序并设置WindowHookEx我已经成功连接到32位应用程序(Y!M、Skype...),但是当我连接到我的桌面或任何64位应用程序(记事本)时,该应用程序会卡住,直到我停止我的连接应用程序。我创建64位dll,在上面做同样的事情,并在32位进程中遇到同样的问题。所以,我认为问题出在我的32位dll中,无法注入(inject)到64位进程中。但是我不知道如何在窗口关注它时注入(inject)64位dll来处理。我想知道有什么方法可以做到,以及如何去做。或者我可以只Ho
我正在努力保护我的程序免遭破解和逆向工程。我用C++(VisualStudio2010)编写程序,还用汇编程序编写简单的加密算法。算法被添加到EXE文件中,使其更难破解,因为它是在主程序之前加载的。这不是一项艰巨的工作。但是……现在,我在virustotal.com上有很多大约50%的误报。当我尝试仅使用upxpacker时,我也遇到了同样的问题:(...每次。我多次修改算法但没有成功。你能帮帮我吗?谢谢。 最佳答案 正在开发一个名为Taggant的新项目(现已完成)。这会将一个签名标记嵌入到文件中,以标识加壳器的被许可人以及加壳器
我能够使用rundll32.exe运行一个dll。现在我想将它作为Windows服务运行,但它似乎没有启动并且超时。我不确定如何传递参数。尝试一些类似..sc.execreateservicebinPath="c:\windows\system32\rundll32.exe-test.dll-Main"尝试来自的建议creatingaservicewithsc.exe;howtopassincontextparameters但它似乎不起作用。有什么建议吗?谢谢,卡尔提克 最佳答案 rundll32.exe不能充当服务!你需要像srv
我正在编写一个Java程序来检查我网站的一些统计信息。如果站点存在某些问题,程序应该会发出警报。因为我使用的是WindowsVista机器,所以我认为最简单的事情是从WindowsScheduler创建一个每n分钟触发一次的任务。奇怪的是,TaskScheduler无法显示JavaGUI。该程序只是停止(使用java或javaw运行)并且不显示任何内容。这是一个最小的例子:importjavax.swing.JOptionPane;publicclassTest{publicstaticvoidmain(String[]args){try{JOptionPane.showMessage
我创建了一个VBScript来显示我的系统日志内容。如果存在,我还想包括InsertionString。但是,我似乎无法确定是否存在InsertionString。这是我的脚本的开头:SetobjWMIService=GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")Setrs=objWMIService.ExecQuery("Select*fromWin32_NTLogEventWhereLogfile='System'andSourceName='mysource'")ForEachobjEve
我有一个助手DLL,我使用了很长时间,其签名没有任何变化,我将它复制到system32以便在我的所有产品中使用它,现在我添加了一个函数到它的导出列表并编译它,一切看起来都很好,我有一个包含指定函数的新DLL。我的问题是,当我将它复制到system32时,指定的函数丢失了,看起来它将以某种方式从缓存中复制并加载它的一些旧版本,因此依赖于新函数的程序将失败了!有谁知道问题出在哪里? 最佳答案 很可能您使用的是64位系统。您将文件复制到64位系统目录system32。但是,由于文件系统重定向器,您的32位应用程序会从32位系统目录SysW
关闭。这个问题需要更多focused.它目前不接受答案。想改进这个问题吗?更新问题,使其只关注一个问题editingthispost.关闭8年前。Improvethisquestion我知道你们中的一些人会认为这很愚蠢,但我想在Win95上编译一个Windows程序,该程序将在Win95/98/98SE/2K/ME/XP/VD/7/8上运行,但不一定在WinCE/3.1上运行/RT因为它们本身不实现Win32API。我意识到Win32API自其Win95规范以来已经发展,但它应该向后兼容,因为据我所知,这是人们使用Windows的主要原因。必须进行什么级别的API模拟才能实现这一点?W
我的测试代码是:#!/usr/bin/envpythonimportwin32com.clientdefGetFolderSizeQuick(target_folder):fso=win32com.client.Dispatch("Scripting.FileSystemObject")fobj=fso.GetFolder(target_folder)returnfobj.sizeprint(GetFolderSizeQuick("d:/pytools"))print(GetFolderSizeQuick("d:/cygwin"))结果是:D:\>pythona.py160659697
有什么方法可以确定哪个进程调用了Win32函数。其实我需要hook几个函数,另外我还需要确定是哪个进程调用了这个函数。我使用MSDetours完成了Hook函数,例如FindNextFile()和winsock函数send()和receive()但问题出在后面部分即确定调用者进程。请帮助。 最佳答案 你的钩子(Hook)将在调用进程的上下文中运行,所以它可能只是调用GetCurrentProcessId或返回您需要了解的有关流程的信息的类似函数。 关于windows-确定Win32函数的