草庐IT

x86-emulation

全部标签

c++ - 如何更改 Qt 中的工具包以针对 x86 机器?

我目前正在QtCreator中进行一个项目。我使用的是基于x86的库,但我当前的项目针对的是x64架构。显而易见的解决方案是更改我的项目以针对x86架构。但是,我不知道该怎么做。我已经进入相应的窗口来配置新的Qt工具包。该套件使用MVCCx86编译器。然后我选择它作为我的默认项目。运行新的qmake后,我尝试构建项目,但在64位项目中使用32位库时遇到相同的错误。所以我的问题是:如何在Qt中应用新工具包?我想我应该能够单击“打开构建并运行工具包选择器”并选择工具包,但是,这只为我提供了选择x64工具包的选项。有什么想法吗? 最佳答案

windows - x86 汇编 - Windows 下的非法操作码 0xff/7

我目前正在开发一个x86反汇编器,我开始反汇编一个win32PE文件。大多数反汇编代码看起来不错,但是有一些非法的0xff/7操作码(/7表示reg=111,0xff是操作码组inc/dec/call/callf/jmp/jmpf/push/操作数r/m16/32的非法)。第一个猜测是,/7是pop指令,但它是用0x8f/0编码的。我已经对照官方英特尔架构软件开发人员手册第2卷:指令集引用进行了检查-所以我不仅仅是被误导了。反汇编示例:(S0000O0040683a是被另一条指令跳转到的标签)S0000O0040683a:incedi;0000:0040683affc7testdwor

c++ - Windows 开发 : x86 to x64 transition

有没有关于如何以尽可能少的痛苦过渡到x64的指南?假设,我有一个用C++编写的Windowsnativex86可执行文件。EXE本身运行良好,但也有由前EXE和外部x64进程托管的DLL。使用这样的设置,我需要重写哪些部分?我希望能有一个更笼统的答案,或者提供指向提供了一些理论背景的引用资料的链接。谢谢 最佳答案 一般来说,我推荐的方法是对它进行单元测试。构建您的测试,以便它们全部通过32位实现,然后开始在64位上构建和测试。值得特别注意执行以下任何操作的代码的任何部分:通过网络流式传输数据(尤其是像size_t这样的类型,它现在将

c# - Registry.SetValue 不适用于 x86

我想在注册表中为x64和x86编辑特定值(类型REG_SZ),但SetValue方法不会更改x86的值。x64工作正常。这是我的代码:RegistryKeyregKeySpecific=RegistryKey.OpenBaseKey(RegistryHive.LocalMachine,RegistryView.Registry32);RegistryKeyregistryKey=regKeySpecific.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\FolderDescriptions\\{B

windows - 如何修复 Windows 10 中的 Java rxtxSerial.dll 或 jSSC-2.7_x86_64.dll 串口错误?

更新:我找到了使用jSerialComm库的解决方案。(见底部代码)我有一个程序,我们已经在Windows7机器上运行了很长一段时间,但现在开始引入装有Windows10的机器,程序崩溃了。所以我需要找到解决方案。错误是EXCEPTION_ACCESS_VIOLATION错误。(见下文)下面的第一段代码是我自己的代码,它使用了rxtxSerial.dll库。它会打开并设置端口参数,但一旦从端口接收到数据就会崩溃。我也尝试过jssc.jar库,但出现相同的EXCEPTION_ACCESS_VIOLATION错误。第二个代码块直接来自JSSC示例WIKI。它在尝试打开端口时立即崩溃。我正在

java - Android Emulator(调试器不能绑定(bind)本地8601)

我有Windows8、JDK7(7u9)和所有适用于Android的SDK。当我尝试启动Android模拟器时,DDMS控制台上显示以下消息:[2012-11-1712:34:32-ddms]Can'tbindtolocal8601fordebugger[2012-11-1712:34:39-ddms]Can'tbindtolocal8606fordebugger[2012-11-1712:34:40-ddms]Can'tbindtolocal8613fordebugger[2012-11-1712:34:40-ddms]Can'tbindtolocal8619fordebugger[

windows - 为什么一些为 x86 编译的程序不能在 x64 下运行,而有些可以

我看到一些由我编写并使用ml.exe为x86组装的程序在我的Win7x64上运行良好。我相信这是因为Wow技术。但是,有些程序(不是我写的)不能运行。他们给出的错误是:此文件的版本与您运行的Windows版本不兼容。检查您的计算机系统信息,了解您是否需要x86(32位)或x64(64位)版本的程序,然后联系软件发行商有什么方法可以修改这些程序的EXE以使其在Win7x64上运行。这些程序与其他透明运行的程序有什么根本区别。 最佳答案 它们实际上是8位或16位程序。Windowsx64在长模式下运行,不支持此类程序所需的虚拟8086模

windows - x86 逆向挑战中的打包和加密部分,没有触发熵启发式

任务:我正在构建一组x86汇编逆向工程挑战,其中我已经完成了大约20个。它们只是为了娱乐/教育。当前的挑战是更高级的挑战之一,涉及一些技巧,使EP看起来像是在正常程序中,但实际上被打包在另一个PE部分中。基本流程如下:开始时就像一个普通的MSVC++应用程序。向一堆反调试器技巧中注入(inject)偷偷摸摸的调用。如果通过,内存中的DWORD值将设置为1。稍后在程序流程中,它会检查该值是否为1,如果有效,它会解密一个小的调用表。如果它失败了,它会让他们疯狂地追逐虚假的反调试技巧,最终只会崩溃。调用表指向解密实际程序代码段的真实解密例程。调用解密例程,它们使用基本的循环异或(C^k^n,

c++ - Windows 中是否有用于 C++ 的简单 Program Files/Program Files (x86) 指令?

我目前正在硬编码我的应用程序的路径,如下所示:constchar*OriginCopyFile="C:\\ProgramFiles(x86)\\i-cut\\i-cut\\Origin_copy.txt";此应用程序将在32位和64位系统中运行。我如何检测没有文件名的路径,以便将其与多个文件一起重用并使其在体系结构之间可移植。 最佳答案 您可以使用GetModuleFileName获取可执行文件的路径,无论它安装在何处,甚至以后移动到哪里。然后你可以PathRemoveFileSpec删除可执行文件名称(或strchr()和frie

windows - 将 x86/64 Windows 程序移植到 Windows 8 ARM

Thisarticle(来自Windows工程团队)说:WOA[WindowsOnARM]willnotsupportanytypeofvirtualizationoremulationapproach,andwillnotenableexistingx86/64applicationstobeportedorrun.这是否意味着我什至无法从源代码为ARM重新编译x86/64应用程序?如果是,究竟是什么阻止我这样做?我的理解是theWin32APIispresentonWindows8ARM.如果不是,那么不能将x86/64应用程序移植到ARM是什么意思?