Camera 如何破解/反编译摄像头固件?(带反编译切线)

Camera 如何破解/反编译摄像头固件?(带反编译切线),camera,firmware,Camera,Firmware,我想知道需要采取什么步骤来“破解”相机固件以添加/更改功能,特别是佳能或奥林巴斯的相机 我可以理解这是一个复杂的话题,但如果能提供一个步骤的概要以及我应该注意的问题,我将不胜感激 我认为第一步是获取固件,将其加载到反编译器(有什么建议吗?)并检查内容。我承认我以前从未反编译过代码,所以这对我来说是一个很好的挑战,有什么建议吗?书?教程?我应该期待什么 一如既往地感谢stack 注:我知道神奇灯笼和CHDK,我想获得关于它们是如何开始和形成的技术建议 我想知道一个人需要采取什么步骤来“破

我想知道需要采取什么步骤来“破解”相机固件以添加/更改功能,特别是佳能或奥林巴斯的相机

我可以理解这是一个复杂的话题,但如果能提供一个步骤的概要以及我应该注意的问题,我将不胜感激

我认为第一步是获取固件,将其加载到反编译器(有什么建议吗?)并检查内容。我承认我以前从未反编译过代码,所以这对我来说是一个很好的挑战,有什么建议吗?书?教程?我应该期待什么

一如既往地感谢stack

注:我知道神奇灯笼和CHDK,我想获得关于它们是如何开始和形成的技术建议

我想知道一个人需要采取什么步骤来“破解”一个问题 摄像头固件,用于添加/更改功能,特别是 佳能或奥林巴斯制造

此黑客攻击/逆向工程的一般步骤:

  • 收集有关相机系统的信息(主CPU、图像协处理器、RAM/Flash芯片…)。挑战:相机系统制造商往往隐藏此类敏感信息。此外,专有芯片的数据表/文档根本不会向公众发布

  • 获取固件:通过在相机内部转储闪存或从用于相机固件更新的更新包中提取固件。挑战:访问闪光灯的读出电路不是一件小事,特别是在相机系统有一个最密集的PCB的情况下。此外,当嵌入到更新包中时,专有固件通过复杂的加密算法得到高度保护

  • Dis-assembly:从操作码固件中获得“一点”更可读的指令。挑战:尽管dis汇编程序广泛可用,但它们将在操作码之外为您提供“可操作”的等效汇编代码,而不保证人类可读/有意义

  • 定制:在理解了大部分代码功能之后,您可以进行不需要损害相机系统正常运行的修改。挑战:这不是一项容易的任务

  • 或者,我强烈建议您寻找一个已经开源的摄像头软件(也叫HW)。你可以学到很多关于相机系统的知识。
    这样的项目是:而且

    哦,见鬼,我不想说这是一项不可能完成的任务,但对你来说仍然是一项巨大的工作。当您没有执行类似操作时(例如,通过破解解除版权保护)。一个好的开始是研究汇编语言,因为大多数程序将非常糟糕的代码反编译成可读代码(-我推荐IDA)。你仍然可以给boomerang一个机会(),但它对大型可执行文件/DLL的效果不好。Magic Lantern的维基上有大量关于解密和破解佳能D-SLR固件的信息。我不知道具体的页面,但是CHDK和Magic Lantern Wiki都应该为你提供一些信息。哈,是的,如果这很容易,我肯定其他人已经这么做了。幸运的是,我有一些组装经验,但生锈了。谢谢你的反编译建议。此外,我还更新了这篇文章,以反映我在MagicLantern wiki上找到的一些文章,这些文章让我对野兽有了一个了解;-)请注意,CHDK和Magic Lantern不是固件,只是将自己加载到内存中并在下次引导时清除的程序。如果您只想为这些程序添加一些功能和/或更改其“外观”,您可以编译这些程序的自定义版本。实际上,破解固件是非常危险的,一行错误的代码,你的相机就坏了。