关于vc源码免杀的一些小小思路

对于一个初级木马作者来说,最头痛就是关于木马免杀的时间问题.
    首先抛开主动防御不说,就说源码的一些敏感函数.杀软可能逮着就把你kill掉了.根据自己长期总结.发觉杀软是采用记分制来判断你是不是病毒或者木马的.比如”URLDownloadToFile”是一个比较敏感的函数.可能大部分杀软一见到它就报警了.或者说一个木马有十分的话,就先给它记上4分.如果再次遇到”ShellFcuntion”的话,杀软就给你判定你这是一个下载者了,它就那么轻松.我们就用这两个函数,不想用其他方法的话就得想想办法了…把两个函数分开,不要放在一个文件里面.弄成一个exe跟一个dll, URLDownloadToFile运行完了之后再调用dll,dll里面的功能就只是执行一下下载下来的文件就OK了,当然.这样子做只是降低了一些风险.还远远不够达到免杀的目的.
    再接着下一步,把两个函数的api地址都hook出来,hook函数的方法有很多,我就贴一个我自己比较常用的方法出来吧.
HMODULE hMod = 0;
hMod = LoadLibrary(“URLMON.DLL”);                                //函数所在的dll
HRESULT (__stdcall *DownUrl)(  LPUNKNOWN pCaller,                //定义出函数原形
          LPCTSTR szURL,    
          LPCTSTR szFileName,
          DWORD dwResv,     
          LPBINDSTATUSCALLBACK lpfnCB
    );
 (FARPROC&)DownUrl=GetProcAddress(hMod,”URLDownloadToFileA”);   //获取函数地址
FreeLibrary(hMod);                                              //释放

这样子地址就hook出来了, 用的时候就用DownUrl就OK了.这样子又降低了很多风险,但是感觉还是不够,对有些杀软可以,有些就吃不开了.可以对自己定义的DownUrl函数进行一些加密,从而逃过杀软的围赌.这些做法可能对于有些杀软来说可能还远远不够的,但是我在这提供一些自己的思路而已.还有添加注册表启动项的时候,杀软把你的程序虚拟执行后它发觉你动了注册表,而且是启动项,它就会沿着注册表里你添加的东西看看你添加的路径有没有哪个程序.如果有的话直接把你kill掉,如果没有的话.它就会放过你,当你在玩过家家.所以你的程序自已复制的时候最好不要跟你添加到注册表里面的路径一样,暂时先换个名字,等到程序运行之后再把自己程序的名字改成跟注册表的一样.有时候奇思妙想一下,方法多的是,这些都是自个慢慢琢磨出来的,也没参考过什么资料,高手看了别见笑,只是希望能帮一下像我一样刚刚入门的人.

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注