再贴一些技巧
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+你的偏移]来进行变址寻址了。。