草庐IT

指令集与架构

全部标签

windows - 如何在不使用 GUI 的情况下在 windbg 中的暂停指令后获取堆栈跟踪?

通常我在我的C++代码中插入一个assert(0);,启动Windbg,按F5,输入k然后我得到一个堆栈跟踪。然后我必须通过鼠标复制粘贴它并退出。但我想将其自动化。有什么方法可以检索堆栈跟踪并将其写入文本文件而无需手动使用GUI? 最佳答案 首先,您可以像这样使用.logopen将gui的输出写入文本文件.logopenc:\dump\myLog.txt这会将所有内容转储到此位置,调用.logclose以在一行中关闭日志:.logopenc:\dump\myLog.txt;k;.logclose其次,如果你真的不想使用gui,还有命

windows - 获取 Windows 架构(32/64 位版本)

我遇到了一个小问题:我想了解操作系统的架构,问题是我的编程语言不支持此类功能。因此,我需要从Windowsdll(如kernel32.dll)中读取此信息我确实尝试使用函数GetNativeSystemInfo/GetVersionEx/GetSystemInfo获取信息。不幸的是我无法获得架构:/在任何windowsdll中是否有一些其他的函数来读取架构?(它不需要是kernel32它可以是任何dll但它必须存在于winxp+中)作为信息:我正在使用Gupta(SQLWindows/Teamdevoloper)编辑1:typedefstruct_SYSTEM_INFO{union{D

windows - 多种架构,winusb 和 wix

我正在为包含WinUSB设备驱动程序的应用程序创建安装程序。我正在使用带有difx扩展名的WiX3.5。根据WinUSBhow-to我可以创建适用于x86、ia64和amd架构的单个inf文件。但是,对于WiXdifx扩展,我需要链接到特定于体系结构的.wixlib。那么,有没有一种方法可以创建适用于所有体系结构的安装程序,或者我是否需要3个单独的安装程序,在这种情况下不需要单个inf文件? 最佳答案 据我所知,您不能在单个安装程序中使用不同的架构difxapp合并模块或wixlib。唯一的其他选择是跳过difxapp并编写您自己的

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

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

ruby - 如何判断哪个架构是 ruby​​ 版本?

感谢Jekyll,我是ruby​​开发的新手,并且想为现有的Ruby安装安装RubyDevKit。我使用的机器有以下版本:ruby2.1.6p336(2015-04-13修订版50298)[x64-mingw32]这个是用chocolateypackagemanager安装的,但是,从名字上看,这个ruby版本是支持x64还是x86架构,我不言自明。ruby版本是x64还是x86?提前致谢。 最佳答案 这是64位版本。x64-mingw32是arch-platform格式。x64架构在mingw32平台上。(平台在这种情况下有点令人

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

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

.net - 处理数据库架构中的更改

我正处于构建一个应用程序的初级阶段,该应用程序有望以1000个的形式出售-更有可能是数百个,但无论哪种方式都足以引起数据库架构更改的严重头痛。我相当局限于windows/.net/sqlserver环境,因为我们的许多客户将自行托管我在他们的网络服务器上构建的应用程序,而安装在他们服务器上的额外位永远不会顺利,而且有结果总是有很多投诉/失去业务。所以sqlalchemy出局了,因为它在python中运行。我所追求的是一种可以让我轻松地在应用程序版本之间迁移的工具。我找到了migrator.net并且我以前使用过它,但从未在生产中使用过,因为开发团队似乎每年只在它上工作,而不是一个活跃的

windows - 闪存驱动器上的批处理文件 - 如何检查操作系统架构?

我正在设置一个可移植的开发环境。我正在尝试从批处理文件中获取我的闪存驱动器插入的当前系统的位数(32位或64位),以便我可以使用正确版本的IDE。这篇文章是一个开始:http://support.microsoft.com/kb/556009但它使用相对地址,当然我的闪存驱动器没有操作系统,所以代码每次都默认为i586。执行此操作所需的LOC是什么? 最佳答案 TobiasSchlegel的解决方案有一个警告:PROCESSOR_ARCHITECTURE环境变量仅返回当前进程的位数。由于WoW64仿真,在64位机器上,PROCESS

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