+ -
当前位置:首页 → 问答吧 → 求助!!!二进制文件的特征码比对问题

求助!!!二进制文件的特征码比对问题

时间:2011-05-01

来源:互联网

本人刚刚接触PYTHON,菜鸟附体阶段,做项目时遇到如下问题,抓耳挠腮百思不得其解,想向各位请教!!!
环    境:LINUX系统
问题描述:打开二进制可执行文件,如“/usr/bin/mv”,取出其中一段与特征码等长的二进制代码与特征码进行比对,返回TRUE/FALSE。
           特征码放在文本文件中,是一串16进制形式的字符串。特征码如:3c6f626a65637420747970653d222f2f2f2f2f2f2f2f2f2f2f2f
                我用open(f,‘rb’)打开文件,seek()定位,read()读出的字符串并不是和特征码一样的形式,这样就不能进行比对

作者: dywisdomnofirst   发布时间: 2011-05-01

把读取的二进制字符串转换成16进制表示,或者把特征码转换成类似于这样的字符串,如果每两位表示一个16进制数的话,特征码转换成类似于这样的'\x3c\x6f',如果一位表示一个16进制数,转换成这样'\x03\x0c\x06\x0f'这样就可以和读取到的二进制字符比较了,都把它们转换成Python的16进制字符串表示比较就行了。

作者: zkfarmer   发布时间: 2011-05-02

把读取的二进制字符串转换成16进制表示,或者把特征码转换成类似于这样的字符串,如果每两位表示一个16进制数的话,特征码转换成类似于这样的'\x3c\x6f',如果一位表示一个16进制数,转换成这样'\x03\x0c\x06\x0f'这样就可以和读取到的二进制字符比较了,都把它们转换成Python的16进制字符串表示比较就行了。

作者: zkfarmer   发布时间: 2011-05-02