zhangyidao 发表于 2009-4-4 13:22:40

avr执行代码反汇编成源代码的方法

先占个位,回头整理一下,上详细方法。
用官方的avr stdio,不用第三方软件。
其实这个不一定破解别人的程序用,自己的程序修改太多,搞不清哪个好用,可以反汇编回来,看看。

http://cache.amobbs.com/bbs_upload782111/files_13/ourdev_432724.JPG
用avr studio打开文件,不是工程。 (原文件名:1.JPG)

http://cache.amobbs.com/bbs_upload782111/files_13/ourdev_432725.JPG
提示必须建立工程,起名。 (原文件名:2.JPG)

http://cache.amobbs.com/bbs_upload782111/files_13/ourdev_432726.JPG
选择器件。 (原文件名:3.JPG)

http://cache.amobbs.com/bbs_upload782111/files_13/ourdev_432727.JPG
显示如图反汇编程序。 (原文件名:3.5.JPG)

http://cache.amobbs.com/bbs_upload782111/files_13/ourdev_432728.JPG
新建文本文件,将反汇编文件内的文本拷到文本文件。 (原文件名:4.JPG)

http://cache.amobbs.com/bbs_upload782111/files_13/ourdev_432729.JPG
新建excel 空文件,选择菜单中打开文件,选中刚建立的txt文件。 (原文件名:5.JPG)

http://cache.amobbs.com/bbs_upload782111/files_13/ourdev_432730.JPG
(原文件名:6.JPG)

http://cache.amobbs.com/bbs_upload782111/files_13/ourdev_432731.JPG
(原文件名:7.JPG)

http://cache.amobbs.com/bbs_upload782111/files_13/ourdev_432732.JPG
avr studio 新建个项目,拷贝execl两列数据过去。 (原文件名:7.5.JPG)

http://cache.amobbs.com/bbs_upload782111/files_13/ourdev_432733.JPG
(原文件名:8.JPG)

http://cache.amobbs.com/bbs_upload782111/files_13/ourdev_432734.JPG
(原文件名:9.JPG)

void_c 发表于 2009-4-4 13:36:30

先把HEX,BIN转换成ELF文件,再在AVR_STUDIO软件仿真ELF文件,可以看到汇编代码。

汇编代码可以复制出来,不过不能直接编译,要把一些不必要的注释性东西去掉(可能还需要加些标号),

手动肯定很繁琐,麻烦。不过生成的汇编很有规律,如果再用一个软件,把一些不必要的注释性东西去掉,就可以得到可编译的汇编了。

以上只是想法,未亲身实现过。
相信实现起来并不困难。

haosheng 发表于 2009-4-4 14:41:31

曾经试过C51用KEIL,IAR8051,等反汇编窗口创建ASM,实际上也只是用于参考,不能做适用的ASM文件的,不信你可以试试。

jerico 发表于 2009-4-4 15:15:19

我也介绍个直接的反汇编软件,我以前用过
还支持多种汇编编译器!
http://avr.jassenbaum.de/ja-tools/
http://cache.amobbs.com/bbs_upload782111/files_13/ourdev_432736.JPG
(原文件名:ja.JPG)

sctwp 发表于 2009-4-4 23:11:07

用avr stdio反汇编的不能直接使用,至少在mega8上是不能用的。

tdmi 发表于 2009-11-3 19:37:58

很好,正需要,谢谢LZ了

qianhng 发表于 2009-11-3 20:19:13

用avr stdio反汇编要走的步骤很多,特别麻烦,不过只是看看代码是不错的。

guizi676 发表于 2009-11-4 10:06:31

楼主去掉不必要的部分可以不用EXCEL,用UE的列模式更方便

phone 发表于 2009-11-4 12:55:12

同意7楼的方法,本人就经常使用UE的列模式。

gong1688 发表于 2009-11-26 15:59:11

可是我用用avr stdio反汇编 出来,许多都是问号?不知道是何原因呢?

windy__xp 发表于 2009-11-26 22:21:19

用 AVR Studio 4.13 反汇编,遇到Flash数据时,是不能处理的,会出错,不知道后续版本有没有改进。如果的确需要,最好的方式还是自己写反汇编程序。

eduhf_123 发表于 2009-11-26 23:25:40

MARK DASM

yaya001 发表于 2009-11-27 00:04:47

mark 谢谢

jack_yu 发表于 2011-3-25 18:00:38

学习了。谢谢

sdmcu51 发表于 2011-4-17 11:05:35

JH

fsclub 发表于 2012-12-12 09:10:12

jerico 发表于 2009-4-4 15:15 static/image/common/back.gif
我也介绍个直接的反汇编软件,我以前用过
还支持多种汇编编译器!
http://avr.jassenbaum.de/ja-tools/


编译不过。。。

jz701209李 发表于 2012-12-14 20:30:37

路过,学习一下

verycard 发表于 2012-12-21 11:42:42

楼主我的怎么反不出来。打开的是HEX显示

lcmdw 发表于 2013-12-16 09:36:09

mark






hamipeter 发表于 2013-12-17 09:58:06

反汇编的活,不是人干的

tenx 发表于 2013-12-17 10:56:26

最好的反汇编工具是ida5.0,

hejie126 发表于 2015-10-25 22:48:15

MARK,AVR HEXl转ASM的方法

rundream 发表于 2015-10-31 00:46:31

我一般都是下载到芯片然后读出来,再分析{:lol:}
页: [1]
查看完整版本: avr执行代码反汇编成源代码的方法