减少文件特征码的一些方法与技巧

我们最开始拿到一个木马和远程控制的生成服务端来说吧,没有经过处理的特征码可定是很多的,但经过我们处理的话特征码就变少了,处理分为简单处理,和非简单处理,简单处理的有,替换下版权和图标,修改下资源名,加壳脱壳中建输入表,这个貌似对360有点用处,,加壳加花,或在PE 128字节出把00修改为90,这个方法对金山有点用处,,江民加壳加花也是起一定的用处的 或添加数字签名等。。。。这些都是一些简单的处理。。,,其他杀软也是基本这样子处理的,
非简单的就是属于加密了,第一就是加密区段,第二加密资源段,第三就是隐藏输入表然后在加密,在加反调试
大家可以参考教程:http://pan.baidu.com/share/link?shareid=453348138&uk=1879657625


【1】、区段合并呢,我见过前辈说过不建议区段合并。。。我
也是这么想的。有时候定位出来不知道在那一段。不过有时
候区段合并以后可以过掉390的某个引擎.所以这里我们来用一下。
//区段合并
#pragma comment(linker, "/defaultlib:msvcrt.lib /opt:nowin98 /IGNORE:4078 /MERGE:.
rdata=.text /MERGE:.data=.text /section:.text,ERW")
很简单。看操作
放在INCLUDE下面就好了    这样做完了第一步。我们可以来测试一下。
大家记得在做360免杀的时候要把360给断网了。
我暂停了。节约时间
我们来扫一下。。会很慢的。。杀了。
报的是Zpack        大家看好。要禁止360的两个程序访问网络。
我们来区段合并以后在扫一下。。不好意思。
之前没有实验。杀毒太慢了。中间会暂停。请大家见谅。
不过教程绝对是真实的。
好了。我设置了一下。咱么只来用小红伞扫描吧。这样能快一些
我们再来看一下。小红伞刚才报的就是Zpack..
擦擦。。各位。不好意思了。扫描的还是很慢。。我就不演示扫描了。
这个预处理步骤是我一直在用的。
效果不错。、不废话。我们接着做。
【2】、
//切入  汇编 加nop
__asm
{
nop
nop
nop
nop
nop
nop
nop
}              
加NOP的方法听流行的。相当于加花指令了。。。我们来坐下
__asm nop;
__asm nop;            这个也是花指令。跟上面那效果是一样的。,源码的作者已经加过了、
我就不演示了。加花指令之后大家要编译一下。有些地方是不能加的。报
错误以后。就把那一出删了就行了。
看到没。报错了。我们看看。是我刚才加的花指令。我们把它删了。。。。
好了。继续
【3】、加版权
这个就不多说了。我建议大家先不要加版权。等所有的预处理做
完之后在尝试加版权。家版权也很简单。看我操作。这个是带有版权的。我们给他修改下
看上面的描述。现在是这个。我们看修改后的。看到没。不一样了吧。
【4】、【延迟加载】
#pragma comment(lib, "DELAYIMP.LIB")
#pragma comment(linker, "/DELAYLOAD:WININET.dll")
#pragma comment(linker, "/DELAYLOAD:WS2_32.dll")
#pragma comment(linker, "/DELAYLOAD SAPI.DLL")
#pragma comment(linker, "/DELAYLOAD:GDI32.dll")
#pragma comment(linker, "/DELAYLOAD:ADVAPI32.dll")
#pragma comment(linker, "/DELAYLOAD:SHELL32.dll")
#pragma comment(linker, "/DELAYLOAD:WINMM.dll")
#pragma comment(linker, "/DELAYLOAD:USER32.dll")
#pragma comment(linker, "/DELAYLOAD:WTSAPI32.dll")
#pragma comment(linker, "/DELAYLOAD:AVICAP32.dll")
#pragma comment(linker, "/DELAYLOAD:urlmon.dll")
#pragma comment(linker, "/DELAYLOAD:OLEAUT32.dll")
#pragma comment(linker, "/DELAYLOAD le32.dll")
#pragma comment(linker, "/DELAYLOAD:NETAPI32.dll")
/*#pragma comment(linker, "/DELAYLOAD:SHLWAPI.dll")
#pragma comment(linker, "/DELAYLOAD:IMM32.dll")*/
#pragma comment(linker, "/DELAY:nobind")
#pragma comment(linker, "/DELAY:unload")
这个我觉得是很有用的。有些定位到输入表函数上的时候。我们很难办。
延迟加载这些输入表函数了就不会定位到这里了。
我们来修改。
好。没有错。我们载入lordpe看看
就剩下这两个了。
看看注释后有几个函数。额。还是两个。
好吧。我表示我找的这个源码不给力。这延迟加载是很有效果的。
大家找源码去试试把。我们继续
【5】、动态调用函数
这个我是不推荐大家上来就动态调用函数。
除非你定位到了那个函数上再去动态调用他。
怎么动态调用我来掩饰一下。我们先来找个函数
好吧,我再次表示这个远吗很不给力。我们换个源码把。
这个源码的延迟加载是有的。我们看看延迟加载有什么变化。
我处理的这个是DLL。现在就四个输入表。编译完了。节约时间。
我暂停了。大家见谅
看到没。我把延迟加载注释掉以后。输入表出现了好多。。
再来看看。延迟后的就这四个。
接下来我来掩饰掩饰动态调用
啊啊。都呗动态掉了。
就这个吧。
转到**定义
然后复制到WINBASEAPI下面一行
在用到一款工具【源码免杀辅助】好多工具包里都有。
上面这一段放到INCLUDE下
typedef int
(WINAPI
*WideCharToMultiByteT)(
    __in UINT     CodePage,
    __in DWORD    dwFlags,
    __in_opt LPCWSTR  lpWideCharStr,
    __in int      cchWideChar,
    __out_bcount_opt(cbMultiByte) LPSTR   lpMultiByteStr,
    __in int      cbMultiByte,
    __in_opt LPCSTR   lpDefaultChar,
    __out_opt LPBOOL  lpUsedDefaultChar);
下面这一段放到函数上面
WideCharToMultiByteT pWideCharToMultiByte=
(WideCharToMultiByteT)GetProcAddress(LoadLibrary("KERNEL32.dll"),"WideCharToMultiByte");
看到了吧。复制粘贴。
继续下一个、、这个函数的位置是在同一个CPP里。
所以TYPE那一段我们就复制一次就可以了。
这样就动态调用完了。保存。编译下
擦擦。。又死了啊??重新打开把
我们刚才动态了的。
好了
没有错误。
这些就差不多了。杀到某个函数就这样动态掉就行了。
你要是问我为什么。其实我也不知道原理。
嘎嘎。。有时间多去看看一些大论坛的源码免杀教程。
他们讲的很详细。毕竟比我们这些旁门左道知道的多一些。
教程到这吧。中间耽误了不少时间。不好意思了啊。

对了。那些动态调用的函数去网上搜吧。



http://www.cnhonkerarmy.com/thread-180958-1-2.html

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值