PHP - 使用hexstring解压缩模块

时间:2018-04-25 17:59:01

标签: php upload hex

我基本上想要实现的是:

  1. 将上传的文件(图片,exe等)读取为二进制数据
  2. 将其转换为hexstring
  3. 检查它是否包含字符串
  4. 我已经修改过并设法编写了一个代码来执行上述操作,但是,我目前的问题如下:

    字符串"针"转换为" 6e6565646c65"十六进制;如果字母大写(区分大小写),则在文件中不匹配。例如,它不会与" Needle"匹配。或" needlE"。

    那么,如何在不区分大小写的情况下检查文件中是否存在字符串?我已经尝试过不将文件更改为hexstring并检查原始数据,但不幸的是,我无法让它工作。

    这是我现在的代码:

    $hex = unpack("H*", file_get_contents($filetmp));
    $hex = current($hex);
    if (strpos(strtolower($hex), '6e6565646c65'){
    
    //string "needle" matches in the file
    
    }
    

    有关使用PHP可以做什么的任何想法?这可能是一种完全不同的方法,我不介意,我会研究它。

1 个答案:

答案 0 :(得分:0)

您可以尝试针对小写文件数据检查针:

def subsetsum_mem(L, k):
    '''
    fill-in your code below here according to the instructions
    '''
    sum_dict={}
    return s_rec_mem(L,0,k,sum_dict)



def s_rec_mem(L, i, k, d):
    '''
    fill-in your code below here according to the instructions
    '''
    if(k==0):
        return True
    elif(k<0 or i==len(L)):
        return False
    else:
        if k not in d:
            res_k=s_rec_mem(L,i+1,k-L[i],d) or s_rec_mem(L,i+1,k,d)
            d[k]=res_k
            return res_k


def subsetsum_mem2(L, k):
    '''
    fill-in your code below here according to the instructions
    '''
    sum_dict={}
    return s_rec_mem2(L,0,k,sum_dict)


def s_rec_mem2(L, i, k, d):
    '''
    fill-in your code below here according to the instructions
    '''
    if(k==0):
        return True
    elif(k<0 or i==len(L)):
        return False
    else:
        if k not in d:
            res_k=s_rec_mem2(L,i+1,k-L[i],d) or s_rec_mem2(L,i+1,k,d)
            d[k]=res_k
            return res_k
        else:
            return d[k]

此外,检查$hex = unpack("H*", strtolower(file_get_contents($filetmp))); $hex = current($hex); if (strpos($hex, '6e6565646c65' !== false) { //found } false如果在开头找到strpos,则会返回假名0