有一些处理器没有商业发布的文档来解释它的指令集是什么。如果您有权访问处理器,有没有办法通过篡改或外部设备找到指令集?先谢谢!
答案 0 :(得分:1)
一般来说不,只是看一下比特并不会让你走得太远。想象一下这些混乱的谜题之一,但你有超过26个字符(字母表)。您可以对位模式进行一些分析,但这会给您带来什么,不知道可能是无条件分支或其他流行指令的架构,没有任何知识您不知道流行指令是什么。以一个混乱的拼图假设英语例如你有内部知识,什么字母和单词是常见的,可以尝试从那里开始,你没有内容知识的指令宽度等。
如果碰巧类似于已知的指令集,你仍然会遇到同样的问题,请修改指令,如果已经取消定义并使它们成为新的指令,那么你可能无法在没有芯片可见性的情况下告诉它们是什么(jtag不会真正给你这个级别,因为jtag提供的信息也需要内部信息)。
答案 1 :(得分:1)
"通过篡改"?当然。将盖子从芯片上撬下。拍摄芯片布局的快照(您可以使用各种扫描电子显微镜)。推断数字电路(一些特殊的设备会告诉你芯片元件运行时的状态; Schlumberger的ATE设备是这样做的)。解码它的功能。拥有源代码会有所帮助。
您可能很难猜测操作码的作用;想象一个指令,用于执行用于计算超越的部分多项式计算,或者更糟糕的是在快速傅里叶变换中执行蝶式步骤。
答案 2 :(得分:0)
您可以查看JTAG。它是用于调试CPU的协议。
另一个选择是检查架构是否基于另一个公共架构,并尝试进行比较以找到差异。
编辑:此外,该架构还没有调试器?一个C编译器?这是非常罕见的。如果您有调试器和/或C编译器,则可以检查汇编并与生成的二进制文件进行比较。调试器还应该允许您反汇编已经存在的二进制文件。