目前手机数据恢复已成主流因为存在删除清零等问题导致大家恢复手机完全变成了拼运气,看人品。。手机恢复经常碰到手机需要恢复录音的且需求量较大,之前一直没对AMR研究过,经常有同行反馈所以最近做了些测试以及研究。。
因为手机录音的格式较多,3GP.AMR.OGG.WMA. WAV等格式,,目前只针对AMR进行了研究并且成功开发出了AMR碎片的提取工具。。
先看一下AMR的音频结构与编码:
1.amr codec种类
amr一般是指amr-nb,即8kHz采样,有8种比特率的编解码算法。另外有amr-wb,即16kHz采样,9种比特率的编码算法。由于amr-wb采样率高,所以复杂度大概是amr的两倍。amr和amr-wb都属于speech codec,对audio的编码效果并不好,为了提高对audio的编码效果,出现了amr-wb+。amr-wb+可以支持更高的采样率,对speech和audio采用不同的编码算法,对speech采用ACELP编码,对audio采用变换编码。amr-wb+在低比特率上对audio的编码效果与he aac+相当。amr-wb+包含amr-wb,但复杂度更高。
2.amr-nb
The AMR codec is a multi-mode codec that supports 8 narrow band speech encoding modes with bit rates between 4.75 and 12.2 kbps. The sampling frequency used in AMR is 8000 Hz and the speech encoding is performed on 20 ms speech frames. Therefore, each encoded AMR speech frame represents 160 samples of the original speech.
amr-nb支持8种比特率,分别是4.75, 5.15, 5.9, 6.7, 7.4, 7.95, 10.2, 12.2kbps。
amr-nb的采样率为8000Hz,即每秒采样8000次,也就是采样8000个samples。每一帧的间隔是20ms,所以1秒采样50帧数据。所以每一帧数据包含8000 / 50 = 160个samples。
3.amr-wb
Similar to AMR, the AMR-WB codec is also a multi-mode speech codec. AMR-WB supports 9 wide band speech coding modes with respective bit rates ranging from 6.6 to 23.85 kbps. The sampling frequency used in AMR-WB is 16000 Hz and the speech processing is performed on 20 ms frames. This means that each AMR-WB encoded frame represents 320 speech samples.
AMR-WB支持9种比特率,分别是6.6, 8.85, 12.65, 14.25, 15.85, 18.25, 19.85, 23.05, 23.85kbps。
amr-nb的采样率为16000Hz,即每秒采样16000次,也就是采样16000个samples。每一帧的间隔是20ms,所以1秒采样50帧数据。所以每一帧数据包含16000 / 50 = 320个samples。
以上为AMR标准文档:
AMR 文件支持单声道和多声道。单声道和多声道的文件头是不同的。单声道(AMR-NB)只包含一个Magic number;多声道(AMR-WB)包含Magic number和一个32位的Chanel description field,多声道情况下的32位通道描述字符,前28位都是保留字符,必须设置成0,最后4位说明使用的声道个数。多声道文件头长度比单声道文件头长度大4个字节。
AMR-NB文件头: "#!AMR\n" (or 0x2321414d520a in hexadecimal)(引号内的部分)
AMR-WB 文件头:"#!AMR-WB\n" (or 0x2321414d522d57420a in hexadecimal).(引号内)
多声道的文件头包含一个magic number和32bit channle description域。
下面对于安卓4.3手机进行了录音测试,录制了一个770K的一段录音,在手机里将其删除掉,将删除前后的WINHEX镜像进行了对比,发现只是目录等信息被完全清楚,实际底层碎片还是存在的:
以上可以看出FAT表区域删除后确定已经清空。。
用我们写的小工具进行对删除后的镜像直接进行AMR碎片提取选定镜像,在选择碎片保存位置即可,软件就能直接进行对应格式的碎片提取:
大概提取5分钟提取完毕,提取出的文件大小767K,播放之后确定为之前删除的录音。。
测试过超级以及R-STUDIO等多种普通工具都扫描不到删除的这段AMR录音,一般情况下我们就会认为是数据在删除是被清除了!!!
目前测试4.1 4.3 等安卓平台删除录音都已成功!!
甲驭数据恢复中心:www.uuhf.net 研发产品站:www.sysfix.cn
QQ:714724035 540773559
本文出自 “sqlrecovery” 博客,请务必保留此出处http://sqlrecovery.blog.51cto.com/9576880/1686317
原文地址:http://sqlrecovery.blog.51cto.com/9576880/1686317