Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Assembly 有没有办法找到未经证明的处理器的指令集?_Assembly_Reverse Engineering_Cpu Architecture_Instruction Set - Fatal编程技术网

Assembly 有没有办法找到未经证明的处理器的指令集?

Assembly 有没有办法找到未经证明的处理器的指令集?,assembly,reverse-engineering,cpu-architecture,instruction-set,Assembly,Reverse Engineering,Cpu Architecture,Instruction Set,有一些处理器没有商业发布的文档来解释它的指令集是什么。如果您可以访问处理器,有没有办法通过篡改或外部设备来查找指令集?您可以检查一下。它是用来调试CPU的协议 另一个选择是检查架构是否基于另一个公共架构,并尝试进行比较以找出差异 编辑:此外,该体系结构没有调试器?C编译器?这是非常罕见的。如果您有一个调试器和/或C编译器,您可以检查程序集并与生成的二进制文件进行比较。调试器还应该允许您反汇编已经存在的二进制文件。一般来说,不,仅仅查看位并不能让您走得很远。想象一下,一个混乱的拼图,但你有26个以

有一些处理器没有商业发布的文档来解释它的指令集是什么。如果您可以访问处理器,有没有办法通过篡改或外部设备来查找指令集?

您可以检查一下。它是用来调试CPU的协议

另一个选择是检查架构是否基于另一个公共架构,并尝试进行比较以找出差异


编辑:此外,该体系结构没有调试器?C编译器?这是非常罕见的。如果您有一个调试器和/或C编译器,您可以检查程序集并与生成的二进制文件进行比较。调试器还应该允许您反汇编已经存在的二进制文件。

一般来说,不,仅仅查看位并不能让您走得很远。想象一下,一个混乱的拼图,但你有26个以上的字符(字母表)。您可以对位模式进行一些分析,但如果不知道可能是无条件分支或其他流行指令的体系结构,而不知道流行指令是什么,那么这会给您带来什么呢。举个例子,假设你有一个拼图游戏,你知道什么字母和单词是常见的,你可以试着从那里开始,你没有关于教学宽度的内部知识,等等

如果它恰好与已知的指令集相似,那么您仍然有相同的问题,请修改指令,如果使用了未定义的指令并使其成为新指令,那么如果没有芯片内部的可见性,您可能无法分辨它们是什么(jtag在这个层次上不会真正提供给你什么,因为jtag提供的信息也需要内部信息)。

“通过篡改”?当然。撬开芯片的盖子。拍摄芯片布局的快照(你可以用各种扫描电子显微镜来完成)。推断数字电路(一些特殊的设备会告诉你芯片元件在运行时的状态;斯伦贝谢的ATE设备就是这样做的)。解码它的功能。拥有源代码会有所帮助


您可能很难猜测操作码的功能;想象一下,一条指令执行用于计算超验数的部分多项式求值,或者更糟糕的是执行快速傅里叶变换中的蝶形步。

我猜您也没有相应的工具链?已经完成了。这是一项巨大的工作。您有二进制吗该设备是什么?对二进制的统计分析可能会揭示很多。有很多贴有OEM标签的商业产品,你有多确定它不是这些产品之一?最近,古老的6502通过对蚀刻层的图像分析被推翻。这似乎为自动化过程提供了极好的机会。问知道的人最容易:-}理解JTAG告诉你的是一个小问题,前提是你已经知道芯片的功能。我不相信这是一个有用的答案。你是对的,我添加了另一个可能的解决方案。编辑:只需阅读dbrank0注释…那么,我们如何找到指令集,say、 氙气处理器(没有商业记录的指令集).有什么想法或想法吗?wii使用的是百老汇PPC处理器,也没有文档记录,但他们不知何故能够找到指令集,不是吗?这并不总是盲目的,有一些信息,或者有人泄露了文档,或者有人访问了编译器,或者知道它是类似的或基于其他过程或者你从那里逆向工程。盲目地盯着一盒比特是在浪费时间,你想用社会工程和其他任何你能想到的工具或信息来破解一些东西。巨大的飞跃来自一切,但不是盯着比特。最后的润色来自盯着比特。你回答了一个问题在你自己身上,百老汇ppc,它是一个powerpc,这是一个巨大的信息块,如果你能够访问修改程序,你可以整理出任何未记录的指令,等等。输入氙气的三秒钟也是基于ppc的,向前迈出了一大步。没有理由孤立地盯着二进制中的位。基本上你的示例不会回答你的问题,你的问题是如果没有发布的文档,这两个文档都发布了包含处理器信息的文档。如果你还不知道,打几个电话就会告诉你ppc处理器是如何销售的,以了解它是否作为ip销售的。如果是,指令集可以修改吗?如果不是,除了periphera还有什么可以修改的ls等?您从销售中获得的所有信息也被视为商业上可获得的信息或文档,这些信息或文档不属于您的问题所述的范围。