打印
[C语言]

PIC单片机逆向成C语言程序

[复制链接]
3026|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
sabason|  楼主 | 2018-4-11 16:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 McuPlayer 于 2018-4-17 09:09 编辑

二进制代码逆向 逆向成c stm32 cortex-m3 cortex-m0 杂谈        
  有时开发资料意外丢失,关键C代码不在,只有可运行的嵌入式系统,这种情况能否可以再逆向得到功能上一模一样的能方便阅读、理解的C语言代码?答案是肯定的,因为单片机里的程序是可以复制的,目前基本上所有的单片机程序都可以被硬解密出来(即所谓的IC解密或**)。但硬**得到的是二进制烧录文件。

二进制烧录文件,是单片机运行的机器码,必须反汇编成汇编语言程序才能被懂汇编的工程师看懂,甚至进行功能修改或创新升级。但目前精通汇编的工程师凤毛麟角,就算有这类精通汇编的工程师,但是如果修改或新添加的功能比较多,工程师也是无能为力。这类情况,唯有一条途径可以解决,那就是逆向翻译成C语言代码。

逆向成C的过程,是一个系统的工程,对逆向工程师的要求非常高,丰富的逆向经验及严谨工作态度是项目成功的关键。
评论
sabason 2018-4-28 08:55 回复TA
成功逆过几个比 较复杂大的项目,开发了相应的逆向工具19699100 

相关帖子

沙发
linqing171| | 2018-4-11 21:20 | 只看该作者
老鸟基本都干过这个。

使用特权

评论回复
板凳
m564522634| | 2018-4-12 18:08 | 只看该作者
不要说的那么好听可以,直接说可以逆向别人的程序和数据 ,有要的找你就可以了大家都是工程师不要说的那么含蓄了。

使用特权

评论回复
地板
ayb_ice| | 2018-4-13 11:39 | 只看该作者
简单的可以,复杂的不可能

使用特权

评论回复
评论
sabason 2018-4-28 08:59 回复TA
没有问题,复杂的照样可以做出来,因为成功做出过项目,才敢这么说 
5
autopccopy| | 2018-4-15 16:59 | 只看该作者
fxmxh 发表于 2018-4-12 23:05
呵呵,要不来个正向,逆向双修,C--->ASM,ASM--->C,N次过后(N>>1)会得到神马结果?吹流弊说逆向逆天 ...

我玩过用姑哥翻译的多次中英文互译,最后结果面目全非。也玩过多语言连续翻译,最后惨不忍睹。。。

使用特权

评论回复
6
linqing171| | 2018-4-17 21:08 | 只看该作者
fxmxh 发表于 2018-4-16 10:15
我在有道上也玩过,多次过后,还算靠谱,但也会出现很搞笑的情况。自然语言与计算机逻辑语言鸿沟还是蛮大 ...

volatile的变量,反编译后认为是非volatile的,再编译给优化了。等等。
还有经常发生的就是共用体。看似两个变量,第一个取地址后越界访问第二个,如果你反编译成了两个变量,再编译两个变量的位置不连续了。

使用特权

评论回复
评论
linqing171 2018-4-28 09:52 回复TA
@sabason :你可以贴个源代码---反编译代码----再编译 --- 再反编译 代码的例子。可以用正点原子开发板的代码。 说谁都会说。 
sabason 2018-4-28 08:58 回复TA
你说的这些问题都成功解决 
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

4

帖子

0

粉丝