3

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

4

3 回答 3

1

一般来说,不,仅仅看比特不会让你走得太远。想象一下其中一个混乱的谜题,但你有超过 26 个字符(字母表)。您可以对位模式进行一些分析,但这会给您带来什么,不知道可能是无条件分支或其他一些流行指令的体系结构,而不知道您不知道流行指令是什么。例如,对于假设英语的混乱拼图,您了解哪些字母和单词是常见的,可以尝试从那里开始,您在指令宽度方面没有内部知识等。

如果它碰巧类似于一个已知的指令集,你仍然有同样的问题,修改指令,如果已经取消定义并使其成为新指令,你可能无法在没有芯片可见性的情况下判断它们是什么(哪个 jtag在这个级别上不会真正给你,因为 jtag 提供的信息也需要内部信息)。

于 2012-06-19T16:12:24.467 回答
1

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

您可能很难猜测操作码的作用;想象一个指令,它执行用于计算超越数的部分多项式求值,或者更糟糕的是,它在快速傅立叶变换中执行蝴蝶步骤。

于 2012-06-19T16:54:16.730 回答
0

您可以检查JTAG。它是一种用于调试 CPU 的协议。

另一种选择是检查架构是否基于另一个公共架构并尝试比较以发现差异。

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

于 2012-06-19T14:51:36.477 回答