1.一种DLL文件的隐藏方法,其特征在于,该方法包括以下步骤:S1:读取EXE文件至内存,将EXE文件的属性字段修改为可读可写;
S2:根据EXE文件的内存地址,读取EXE文件的DOS头部内存地址;根据DOS头部内存地址,读取EXE文件的NT头部内存地址;根据NT头部内存地址,获取EXE文件节表中第一个节的内存地址;根据第一个节的内存地址,获取EXE文件节表中最后一个节的内存地址;根据最后一个节的内存地址,确定最后一个节的大小、以及最后一个节在EXE文件中的偏移值;
S3:在EXE文件节表中,在最后一个节之后增加一个新的DLL节,对DLL节进行设置:将DLL节在EXE文件中的偏移值赋值为:最后一个节在EXE文件中的偏移值,加上最后一个节的大小;
S4:将DLL文件数据写入DLL节在EXE文件中的偏移处。
2.如权利要求1所述的DLL文件的隐藏方法,其特征在于,S3中所述对DLL节进行设置还包括以下流程:将DLL节的内存地址设置为所述最后一个节的内存地址加1;
将DLL节的节名称与EXE文件节表中的已有的节名称进行区分;
将DLL节的属性字段设置为可读可写;
将DLL节的大小赋值为需要存入的DLL文件的大小。
3.如权利要求1所述的DLL文件的隐藏方法,其特征在于,S4的具体流程为:读取所述DLL文件至内存,采用加密算法对DLL文件数据进行加密后,将加密的DLL文件数据写入DLL节在EXE文件中的偏移处。
4.如权利要求1至3任一项所述的DLL文件的隐藏方法,其特征在于,S4之后还包括以下步骤:S5:执行包含有所述DLL文件的应用程序时,将所述DLL节中的DLL文件数据进行读取,应用程序加载读取的DLL文件数据。
5.一种实现权利要求1所述方法的DLL文件的隐藏系统,其特征在于,该系统包括EXE文件读取模块、EXE文件节表查找模块、DLL节生成模块和DLL文件数据写入模块;
EXE文件读取模块用于:读取EXE文件至内存,将EXE文件的属性字段修改为可读可写;
EXE文件节表查找模块用于:根据EXE文件的内存地址,读取EXE文件的DOS头部内存地址;根据DOS头部内存地址,读取EXE文件的NT头部内存地址;根据NT头部内存地址,获取EXE文件节表中第一个节的内存地址;根据第一个节的内存地址,获取EXE文件节表中最后一个节的内存地址;根据最后一个节的内存地址,确定最后一个节的大小、以及最后一个节在EXE文件中的偏移值;
DLL节生成模块用于:在EXE文件节表中,在最后一个节之后增加一个新的DLL节,对DLL节进行设置:将DLL节在EXE文件中的偏移值赋值为:最后一个节在EXE文件中的偏移值,加上最后一个节的大小;
DLL文件数据写入模块用于:将DLL文件数据写入DLL节在EXE文件中的偏移处。
6.如权利要求5所述的DLL文件的隐藏系统,其特征在于,所述DLL节生成模块中对DLL节进行设置时,还包括以下工作流程:将DLL节的内存地址设置为所述最后一个节的内存地址加1;
将DLL节的节名称与EXE文件节表中的已有的节名称进行区分;
将DLL节的属性字段设置为可读可写;
将DLL节的大小赋值为需要存入的DLL文件的大小。
7.如权利要求5所述的DLL文件的隐藏系统,其特征在于,所述DLL文件数据写入模块的具体工作流程为:读取所述DLL文件至内存,采用加密算法对DLL文件数据进行加密后,将加密的DLL文件数据写入DLL节在EXE文件中的偏移处。
8.如权利要求5至7任一项所述的DLL文件的隐藏系统,其特征在于,该系统还包括应用程序执行模块,其用于:执行包含有所述DLL文件的应用程序时,将所述DLL节中的DLL文件数据进行读取,加载读取的DLL文件数据。