看到论坛还有些朋友问反汇编hex的文件,现把虫子在21cn的文章复制过来,希望对大家有用
思路:原谅虫子买个关子,当看了就知道了1.软材料
IDA5.0。下载地址:http://bbs.pediy.com/showthread.php?s=&threadid=29335
jtag最新固件,见附件
hexbin,见附件,(语法:hexbin filename.hex )
stk500_M8源程序。(附件中有我移植好的减少代码的m16源程序)
2.硬材料,见附件电路图
好了,准备好了,开始做菜了:)
1)用ida打开固件,如下图:
点击此处下载ourdev_179161.rar(文件大小:100K)
http://cache.amobbs.com/bbs_upload782111/files_8/ourdev_179162.jpg
http://cache.amobbs.com/bbs_upload782111/files_8/ourdev_179163.jpg
http://cache.amobbs.com/bbs_upload782111/files_8/ourdev_179164.jpg
http://cache.amobbs.com/bbs_upload782111/files_8/ourdev_179165.jpg
http://cache.amobbs.com/bbs_upload782111/files_8/ourdev_179166.jpg
到这步时用hexbin把hex转为bin文件,出现如下提示(不转也可以)
http://cache.amobbs.com/bbs_upload782111/files_8/ourdev_179167.jpg
到这里,出现了死胡同。经过简单研究,发现。。。
出现这种情况是因为在ida目录中的cfg文件下avr.cfg文件关于atmega16的有关器件容量配置信息没写,结果默认为8kB,添加所选部分就ok了
http://cache.amobbs.com/bbs_upload782111/files_8/ourdev_179168.jpg
保存好文件,最后重新打开
http://cache.amobbs.com/bbs_upload782111/files_8/ourdev_179169.jpg
以上是虫子加的一些注释,明显的为iar编译的文件 到这里,说下自动jtag 和ISP自动切换的原理。。。
avr的jtag和IsP接口有明显的区别,虫子就是利用这点自动切换的。结果用了两个接口,如果要实现单接口自动切换恐怕要用外接电源和CPLD作逻辑切换(估计模拟spi也可以)。当接到Jtag口时和isp口时PD2口的电平会发生变化,具体来讲就是jtag为高电平,Isp时为低电平,为减少工作量,虫子在主循环中利用查询法来作。当处于ISP时当PIND2时为高电平,切换到jtag模式,反之,当处于jtag模式时查询到PIND2为低电平时切换到ISP模式
以下为关键部分,为了简单起见,虫子直接在定时器0。。。
溢出中(jtag的)加上检测代码,如下图所示:
http://cache.amobbs.com/bbs_upload782111/files_8/ourdev_179170.jpg
http://cache.amobbs.com/bbs_upload782111/files_8/ourdev_179171.jpg
这就完成了jtag部分,到这里应该看出isp的
起始代码应该为0x1700(word).好以下讲述isp的移植部分
空间优化主要有以下几方面。。。
(为了简单,原ISP里利用的定时中断虫子直接用延时代替了)
1。状态机用字节
2。用if替换switch
3。其它杂项就不说了。
还有一点,当用到enum和结构时,对工程作如下配置(勾上)也能显著优化空间
http://cache.amobbs.com/bbs_upload782111/files_8/ourdev_179172.jpg
最后一步就是连接选项....
在link里加上:-Wl,--section-start=.text=0x2e00
http://cache.amobbs.com/bbs_upload782111/files_8/ourdev_179173.jpg
做完修改后,f7,build.然后打开。。。
生成的hex文件,把其内容剪切到刚生成的jtag hex固件中就可以了。
忘了说一点了,jtag hex的生成先在ida中修改好,然后用二进制编辑文件修改原jtag固件。
这一步对各位dada来说应该不会成为难点,最后附上我修改好的固件。
点击此处下载ourdev_179174.rar(文件大小:15K) 感谢! 我试了一下怎么画面跟楼主的对不上呢? IDA很强大 __@ 非常感谢。。。非常有技术含量 非常感谢 好强大 一直在找,谢谢 标记 强大
楼上的猪宝宝头像也强大 mark 虽然不懂 顶下 谢谢 好强大 顶 niu 留个脚印,方便日后查找。 好资料啊! 关注 请问LZ,IDA可以支持51的反汇编吗? MACK mark TO 【22楼】 z7001
可以。。。 收藏 现在才知道IDA还可以反汇编AVR指令的HEX文件,牛呀。。。 点击此处下载 ourdev_531327.Rar(文件大小:36K) (原文件名:PTMFL.Rar)
上传一个HEX文件,挑战一下这个反汇编程序,看看我的花指令怎么样?
我试了一下,没有分析耐心,只怕就会晕死,花指令成功地把代码段伪装成数据段了 这种帖子要顶。 remark MARK 感谢 mark 反汇编,感谢 感谢楼主 mark 这个要顶 mark mark mark 厉害,,破解与开发并齐,谁与争锋!!!!! 顶啊! mark mark mark 用时再看了 mark . mark MARK jihao mark mark反汇编 MARK lihai 标记下以后自己慢慢看 mark 占座慢慢看 LZ真牛 IDA反汇编工具 mark IDA确实很强大。 牛,顶顶!!!!!!!!! mark 反汇编
什么叫花指令? 围观。。。 mark反汇编 mark mark mark 回复【楼主位】lixun00 音乐虫子
-----------------------------------------------------------------------
mark 好啊 mark!!!!!!!!
页:
[1]