软件培训网

欢迎访问软件培训网!招生咨询电话与微信:15225191462(周老师)
软件培训网,专业解决学IT疑难杂症!

首页 > 软件测试/ 正文

反汇编技术在代码测试中的应用

2012-10-12 00:01:38

  引言

  随着计算机技术的不断发展和应用领域的不断扩大,人们对计算机软件的安全性的要求越来越高。而作为保证软件质量最有效的测试技术,已经越来越受到人们的重视。反汇编技术可以帮助软件测试人员更轻松的理解二进制代码的行为,从而测试软件的正确性和可靠性。

  文中主要讨论了反汇编技术,及其在二进制代码分析和测试中的作用。通过反汇编技术,可以在不改变代码含义的前提下,把难懂的二进制代码转化为更清晰易懂的汇编代码。可以帮助测试人员理解目标代码,提高测试效率。

  反汇编技术简介

  反汇编:把目标代码转为汇编代码的过程,也可说是把机器语言转为汇编语言代码,低级转高级的意思,常用于软件破解。

  从对目标代码的执行角度来看,反汇编分为静态反汇编和动态反汇编,前者是指将二进制目标文件根据对应的指令系统转换为相应的可读的汇编语句,但是并不执行这段程序;后者主要是指要跟踪执行目标文件,具体反映出程序的运行情况。静态反汇编的优点之一是能够一次对整个文件进行处理,而动态反汇编只能处理程序中被执行到的部分;另一个优点是静态反汇编的时间与文件的长度成正比,而动态反汇编的时间与被执行的指令数成正比。通常认为前者的时间比后者少,静态反汇编的效率更高。

  本文主要探讨静态反汇编在软件测试中的使用。

  二进制代码简介

  由于输入的目标代码是hex文件,所以,我们重点讨论hex文件的格式。

  Intel HEX文件是记录文本行的ASCII文本文件,在Intel HEX文件中,每一行是一个HEX记录,由十六进制数组成的机器码或者数据常量,Intel HEX文件经常被用于将程序或数据传输存储到ROM.EPROM,大多数编程器和模拟器使用Intel HEX文件。

  一个Intel HEX文件可以包含任意多的十六进制记录,每条记录有五个域,下面是一个记录的格式.[10]

  :llaaaatt[dd...]cc

  每一组字母是独立的一域,每一个字母是一个十六进制数字,每一域至少由两个十六进制数字组成,下面是字节的描述。

  :冒号是每一条Intel HEX记录的开始

  ll是这条记录的长度域,他表示数据(dd)的字节数目。

  aaaa是地址域,他表示数据的起始地址

  <如果是数据记录,这表示将要烧录的这条记录中的数据在EPROM中的偏移地址,对于不支持扩展段地址和扩展线性地址的,如89C51,这就是此条记录的起始地址>

  tt这个域表示这条HEX记录的类型,他有可能是下面这几种类型

  00 ----数据记录
  01 ----文件结束记录
  02 ----扩展段地址记录
  04 ----扩展线性地址记录

  dd是数据域,表示一个字节的数据,一个记录可能有多个数据字节,字节数目可以查看ll域的说明

  cc是效验和域,表示记录的效验和,计算方法是将本条记录冒号开始的所有字母对

  <不包括本效验字和冒号>所表示的十六进制数字

  <一对字母表示一个十六进制数,这样的一个十六进制数为一个字节>

  都加起来然后模除256得到的余数最后求出余数的补码即是本效验字节cc.

  <例如::0300000002005E9D

  cc=0x01+NOT((0x03+0x00+0x00+0x00+0x02+0x00+0x5E)%0x100)=0x01+0x9C=0x9D


Tags:郑州北大青鸟,软件测试从零开始,河南北大青鸟电脑培训学校在哪里呢,郑州java大数据培训学校哪家好呢,郑州全栈式软件开发工程师培训学校哪家好,郑州北大青鸟软件开发培训学费怎么收的

搜索
软件培训学校哪家好,就来软件培训网咨询
软件培训学校哪家好,就来软件培训网咨询
热门标签
软件培训学校哪家好,就来软件培训网咨询
软件培训学校哪家好,就来软件培训网咨询
软件培训学校哪家好,就来软件培训网咨询
  • QQ交谈