特征码修改问题

2024-12-22 02:13:08
推荐回答(2个)
回答1:

这是修改的方法用MYCCL定位出特征码之后,如何修改,对于毫无汇编基础的小菜鸟来说,那难,难如上青天啊。下面说下常见特征码修改经常,可以参考,可以借鉴,但是完全照搬,那可是要出错的。
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 交换回来。
有时改上下语句也可过杀软,比如把上面的push改为call
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

7/MOV EAX,DWORD PTR SS:[EBP+45645645]改成MOV EAX,DWORD PTR SS:[EBP]
下面你就可以通过[ebx+你的偏移]来进行变址寻址了。。

LEA EAX,DWORD PTR SS:[EBP+FFFF7A64]
改成 LEA EAX,DWORD PTR SS:[EBP]

回答2:

自己可以到下载网站找到特征代码