请教关于MCU反汇编问题!(50分)
常听人说51的反汇编关键 是 数据 代码的分离
那其他的MCU 也有这个问题么?
比如是 TI 的DSP MOTOROLA 的DSP
还有 ARM?
最近在看BIN 文件 希望 各位 大牛 指点下?目前是学习阶段 !
提问者:biang51
地点:-
浏览次数:4636
提问时间:06-29 11:18
我有更好的答案
- 14条回答
-
jghgfdssas
07-06 01:55
我们编译好的 下载到 MCU的都 是 BIN 文件 有生成的是 .HEX .OUT .S .ELF 不管他是 啥后缀。总之到MCU里的 ROM或FLASH 中的 都是 二进制 文件 然后读 出来的 无非是BIN 和HEX 文件
我现在 知道 是 读出的这个些个 文件里总是之 包含 了代码部分(RO)和数据部分(RW)
-
比吥匕卟
07-08 14:36
如果要把它变成 汇编的话 那就要查 MCU公司 提供的 反汇编表格!就是 汇编指令对应的 二进制数值
相信 老 一辈 早年都经历过 把编写好的 汇编代码 翻译成机器码 然后在 下载到MCU里
老的烧写器(不需要PC机的那种) 需要人工把 汇编代码 翻译成机器码然后 人工输入到烧写器 然后在下栽到MCU里。
-
Sandyjia
07-05 00:14
数据代码分离 可能是PC软件 有时候 会把数据文件当成 程序代码 吧?
-
胡政鹏测试_21
07-08 02:37
但是如果 生成的BIN文件 里的 代码部分(RO)和数据部分(RW)
放在不同地址空间里就好办了 比如说 0X00-0XFFF放的是代码部分(RO)而0X1000-1FFF数据部分(RW)
那么PC机软件就不会把数据文件当成 程序代码 吧??????
-
物是人非aaa
07-05 12:53
任何处理器代码的反汇编首先都需要分离指令和数据,这基本没有例外。当然,编程者为了提高反汇编的难度会进行一些特殊处理,这些一般都没有通用的解法。
其实,抄板或反向设计基本是没有什么前途的做法。任何产品,用户只会青睐于先行者,特别是崇尚个性和时尚的当今。苹果就是一例。
-
harrysummer
07-09 04:30
同意,不过搞搞小家电还差不多
-
szbliy
07-02 23:34
以8051core为例,
LJMP Label001 是3个字节
mov A,#22是2个字节
clr A是一个字节
你逐个字节去翻汇编,是不行的,很多指令都错位了。
可行的做法是,建立虚拟机,运行,记录运行路线,然后再进行反汇编。
曾经,反一个文件,我收客户3K的,没点难度客户能让你赚钱这么容易。
-
jsdfuweurw
06-29 16:17
请教 McuPlayer 一般虚拟机 在那里能找到!
是不是所有的 的MCU 的数据和代码是 搅和在一起 的?????
-
Peterlt
07-08 20:36
我做的反汇编工具是内置虚拟机的,反之前都有虚拟运行,所以能丢弃一些故意迷糊人的花指令。
但独立的虚拟机可以做到更深的虚拟运行深度,导出运行轨迹文件,给反汇编工具做参考用。
在我做的软件Release之前,是3K而不是300反一个文件,没有什么不正常。
后来对这些不感兴趣了,就把HT和义隆的反汇编Release出去了。
-
tangxi123
06-30 08:16
(1)如果没有用汇编写过功能齐全的单片机程序,可能会被玩。
(2)想被玩的话,那网上找个对应型号的反汇编软件先反汇编一下,只要数据不是放在最开始,前面的指令都是对的,或从外围器件入手、如按键输入、LED显示。重要的发挥你以前汇编写代码的功力。
(3)如果有算法,也不要忐忑,我反汇编过一个算法,用matlab仿真,才知道原理的。
(4)经过反汇编过程后,你的功力会大增,good luck!
-
直达成功
07-05 03:48
楼上大牛,大家正着都不会走路呢,有人已经倒着走路了。
-
Jaionm
07-02 18:19
需要分数据和指令。但是
不要被有的人唬住了。
用IDA反汇编,在IDA中你的问题就是 按C或D键的事。最反感的是有人把问题故意的复杂化,不这样好像不能显示出其水平。
-
60user177
07-07 09:57
原来这里也有反汇编强人啊
-
云云云3
07-09 05:14
哈哈,我要是技术处理一下,跳转指令与数据交融在一起,借用数据块作为跳转地址,你智能反汇编就头晕了.
这也是加密的方法之一哦