打印

春节期间闲着无事,突发奇想

[复制链接]
2026|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xincun777|  楼主 | 2011-2-5 21:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
假设我的产品中用到ARM+Linux系统,其中有一个应用程序的结构如下:
if(  加密芯片数据非法)
{
直接重启系统;
}

这个程序将存储在Nor Flash中,假设有一个“坏人”,他把整片 Flash的内容(.bin文件)都读出来了,他能否直接修改所得.bin文件,以达到如下目的

if(  !加密芯片数据非法)
{
直接重启系统;
}


我大概看了一下ARM的指令集,这里用到的应该是  BE 或者 BNE指令,他能否通过反汇编达到这个 目的。

欢迎大家发言,一起讨论。 祝大家新年快乐

相关帖子

沙发
hgjinwei| | 2011-2-5 23:11 | 只看该作者
直接将你的
if(加密芯片数据非法)
变成
NOP
NOP
不更简单?

使用特权

评论回复
板凳
mmax| | 2011-2-6 01:51 | 只看该作者
不需要反汇编,只要知道“直接重启系统”的特征。找到那条if的位置,直接改bin文件,最后再算一下校验。

使用特权

评论回复
地板
mohanwei| | 2011-2-6 10:04 | 只看该作者
加密芯片不会这样用的

使用特权

评论回复
5
brandnew| | 2011-2-6 10:25 | 只看该作者
恩,最近也有楼主的这个想法,现在抄板的人太多了,不加加密芯片,不敢卖东西。
楼主,你用什么公司的加密芯片?

使用特权

评论回复
6
sinanjj| | 2011-2-6 19:01 | 只看该作者
联网验证,

彻底解决**问题.


只需要增加20rmb硬件成本! 量大软件免费!

使用特权

评论回复
7
brandnew| | 2011-2-7 20:04 | 只看该作者
联网验证,
彻底解决**问题.
只需要增加20rmb硬件成本! 量大软件免费!
sinanjj 发表于 2011-2-6 19:01


有的产品,纯利润也就20元。

使用特权

评论回复
8
xincun777|  楼主 | 2011-2-10 10:55 | 只看该作者
看了楼上的几位XD的回答,都很有帮助,非常感谢,看来有希望了,我正在做实验,等有结果一定告诉大家。

使用特权

评论回复
9
xincun777|  楼主 | 2011-2-10 15:35 | 只看该作者
我已经验证了我们的猜想:完全可以通过反汇编,修改二进制的方法实现程序的**。其中我用到的工具就是注明的 IDA (Version:5.5),我用了一个很简单的程序,如下:

#include <stdio.h>

int main(void)
{
        int i=0;
       
        if( i==0 )
        {
                printf("Is zero!\n");
                return -1;
        }
        else
        {
                printf("Not zero!\n");
                return 0;
        }
}

我借助IDA  和 UltraEdit,将上述程序的运行结果输出为  Not zero!   。


万变不离其宗,所以我的初衷应该是能实现的。

祝大家新年快乐

使用特权

评论回复
10
jweiok| | 2011-2-15 11:33 | 只看该作者
就是说这种加密方法是失败的。。。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

48

主题

105

帖子

1

粉丝