有没有办法找到无证处理器的指令集?

时间:2012-06-19 14:42:54

标签: assembly instruction-set

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

3 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:1)

"通过篡改"?当然。将盖子从芯片上撬下。拍摄芯片布局的快照(您可以使用各种扫描电子显微镜)。推断数字电路(一些特殊的设备会告诉你芯片元件运行时的状态; Schlumberger的ATE设备是这样做的)。解码它的功能。拥有源代码会有所帮助。

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

答案 2 :(得分:0)

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

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

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