特征码怎么定位?

特征码怎么定位????????????????

方法一:直接修改特征码的十六进制法
1.修改方法:把特征码所对应的十六进制改成数字差1或差不多的十六进制.

2.适用范围:一定要精确定位特征码所对应的十六进制,修改后一定要测试一下能
否正常使用.

方法二:修改字符串大小写法
1.修改方法:把特征码所对应的内容是字符串的,只要把大小字互换一下就可以了.
2.适用范围:特征码所对应的内容必需是字符串,否则不能成功.

方法三:等价替换法
1.修改方法:把特征码所对应的汇编指令命令中替换成功能类拟的指令.
2.适用范围:特征码中必需有可以替换的汇编指令.比如JN,JNE 换成JMP等.
如果和我一样对汇编不懂的可以去查查8080汇编手册.

方法四:指令顺序调换法
1.修改方法:把具有特征码的代码顺序互换一下.
2.适用范围:具有一定的局限性,代码互换后要不能影响程序的正常执行

方法五:通用跳转法
1.修改方法:把特征码移到零区域(指代码的空隙处),然后一个JMP又跳回来执行.
2.适用范围:没有什么条件,是通用的改法,强烈建议大家要掌握这种改法.
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-11-02
推荐软件MYCCL,上面有使用说明原理大概是把文件拆成N段,用杀毒软件一个一个杀,找出特征部分,再定位拆分,再查(有点像二分法),内存部分(有些杀毒软件能做到内存扫描),只好自己做汇编了
第2个回答  2013-11-02
......网上教程这么多,不过感觉定位了也没多大用处。因为你定位同时别人也在定位,只是当时见效。出不了一个月就会失效了。杀毒软件不是傻子.还是学些综合型免杀技术吧.
第3个回答  2013-11-02
特征码免杀经验谈
1、定位在cmp或test后的判断跳转,je、jz如此之类的...
遇到这样的,我一般都会把它们改成jmp就能过,当然也要看看上下代码的意思,不然可能出错...个人认为这样修改的效果还是不错
的..
2、定位在跳转后的地址,如je xxxxxxxx ,jmp xxxxxxxx 之类的xxxxxxxx上...
一般遇到是判断跳转的je,jnz的...按照第一个方法把跳转符改改就能过...如把je改成jmp...遇到是jmp xxxxxxxx的,就试试看下
面有没有空
位构造下push xxxxxxxx
ret
或者可以把jmp xxxxxxxx ,用跳转转移到其它地方...
3、定位在call eax之类上...
把它改成push eax或其它...
4、定位在call上的...
先跟进call后面的地址看看,因为有时候那里往上拉一句就可能会有NOP之类的语句,那么我们把call后面的地址向前移一位就可以
过...
如果没有NOP,我们可以用跳转转移...
5、定位在OR或者XOR上...
把OR改XOR或者XOR改OR...
6、定位在mov语句上,如MOV DWORD PTR SS:[ESP+14],ESI...
我们可以把它改成mov esp,esi
add esp,14
7、定位在cmp语句,如cmp eax,esp
jnz xxxxxxxx
那么遇到这样的,我们可以把这两句NOP掉,然后加上jmp xxxxxxxx ,这里意思就是我们不要那个比较,把代码直接跳到xxxxxxxx上
运行....
遇到test 这样的也可以试试这个方法...
8、定位在字符串上,但是不能用改大小写的方法修改,修改就出错...
例如pcshare有一个定位在“%s%s%s”上的...我们可以首先用C32把“%s%s%s”向前移一位,然后用OD载入,右键,超级字符串参考

查找ASCII,然后找到所有的“s%s%s”,由于我们向前移了一位,所以显示的应该是“s%s%s”,然后双击来一个个修改...双击后会
发现,
对应的语句会有一个地址,我们把它改掉,向前一位,如4AD05168就改成4AD05167,接着同样方法继续改其它有“s%s%s”的...
这个方法通用字符串的修改...
总结:上面的只不过是我在免杀时的一些经验...实际免杀还需要读懂上下代码,实际分析,并不代表按照上面这样改就一定可以...
做人要灵活,
方法都是自己悟出来的,没什么完美的通用方法...自己的免杀方法才是最好的~
特征码修改总结2~
1. 遇到特征码定位在jmp指令上面的 构造替换 push xxxxx ret。
举例: jmp xxxxx
构造替换 push xxxxx
ret

2. 遇到特征码定位在call指令上的。
举例:
call xxxxx
构造替换: push @f
jmp xxxxx
@@:
;@@的标号表示的是你jmp xxxx指令后面的内存地址。 @f也就是引用@@ 的标号,所以此时@f这里填写的就是jmp xxxxx指令后面的
内存地址。。

3. 遇到特征码定位在ret上
举例: ret
构造替换:
jmp dword ptr [esp]

4. 遇到特征码定位在test eax, eax je xxxx or eax, eax, je xxxxx cmp eax, 0 jexxxxxx
举例: test eax, eax
je xxxxxx
构造替换: xchg eax, ecx
jecxz xxxxx

5. 遇到特征码定位在 push [xxxxxx]上的。
举例:push [xxxxx]
构造:
在其之前通过 xchg [xxxxxx], ebx
然后用寄存器传参: push ebx

最后在下面在通过xchg [xxxxxx], ebx 交换回来。

6. 把之前我教的数据段动态恢复和巧用算法加密结合起来。
前提是对汇编大家一定要有所了解,例如一些会员说金山杀的是配置信息上,你完全可以将其这些配置信息所处的地址的数据进行一
层加密。或者你可以将其这些偏移所处的数据 通过xchg 交换。
dll注意下 要进行重定位
call $+5 ;机器码是 E8 00000000 00000000是相对地址
@@: pop ebx
sub ebx, @b

下面你就可以通过[ebx+你的偏移]来进行变址寻址了。。
如果觉得本文写得有什么错误或不对,请各位提出啊~!
相似回答