特征码是用于识别一个程序是否为病毒的一段不大于64字节的特征串。以下是一些查找和修改特征码的方法:
特征码的查找方法
文件中的特征码查找
通过杀毒软件的扫描结果来确定特征码的位置。
使用特征码定位器(如CCL)将原文件中的部分字节替换为0,然后生成新文件,再根据杀毒软件的检测结果判断特征码的位置。
内存中的特征码查找
运行程序后,使用杀毒软件的内存查杀功能。
使用OD(OllyDbg)载入程序,再用杀毒软件的内存查杀功能来查找特征码。
特征码修改方法
直接修改特征码的十六进制法
将特征码所对应的十六进制改成数字差1或相近的十六进制,并测试修改后程序是否能正常使用。
修改字符串大小写法
如果特征码对应的内容是字符串,只需将大小写互换即可。
等价替换法
将特征码所对应的汇编指令命令替换成功能类似的指令。例如,将`JN`替换为`JMP`。
指令顺序调换法
将具有特征码的代码顺序互换,但需确保调换后程序仍能正常执行。
通用跳转法
将特征码移到代码的空隙处,并通过一个JMP指令跳回原位置执行。
提取特征码的步骤
在子程序头部写置入代码
例如,在子程序头部写入五个NOP指令,然后使用OD(OllyDbg)进行搜索,找到相关的代码段。
使用特征码搜索工具
可以使用支持特征码搜索的工具,如Scanffileself、ScanfSpec和ScanfConstData等,根据常量或函数调用附近的特征码进行搜索。
注意事项
修改特征码可能会导致程序不稳定或无法正常运行,因此务必在测试环境中进行充分测试。
特征码是程序的敏感部分,修改特征码可能涉及软件版权和法律责任,请遵守相关法律法规。
通过上述方法,可以有效地查找和修改程序的特征码,从而达到免杀病毒的目的。