利用自己实现的memcpy绕过杀软上线|转载-网络攻防学习社区-安全圈子-FancyPig's blog

利用自己实现的memcpy绕过杀软上线|转载

背景

之前写了一套免杀也用了挺久了,难免被检测。再加上之前为了研究各种奇淫技巧往里面塞了很多东西,现在看都看不懂,于是痛下决心重新写一套免杀。经过一个小时的奋斗总算是出炉了。
先看效果:效果

原理

这次免杀用的是CreateTimerQueue函数来实现shellcode上线,具体可以参考GitHub的AlternativeShellcodeExec项目。里面收录了很多上线方法。
与此同时,在免杀的时候还注意到了memcpy函数在复制shellcode时会被一些沙箱检测,就决定自己写一个实现,因为比较简单就不讲解了,直接贴代码:

void* memmv(void* dst, const void* src, int count)
{
    void* ret = dst;
    if (dst <= src || (char*)dst >= ((char*)src + count)) {
        while (count--) {
            *(char*)dst = *(char*)src;
            dst = (char*)dst + 1;
            src = (char*)src + 1;
        }
    }
    else {
        dst = (char*)dst + count - 1;
        src = (char*)src + count - 1;
        while (count--) {
            *(char*)dst = *(char*)src;
            dst = (char*)dst - 1;
            src = (char*)src - 1;
        }
    }
    return(ret);
}

 

这段代码还有很多不足之处,但是上线shellcode是没问题的。所以就没管一些可能出现的bug。
写完之后上传vt测试发现:很多杀软都报DeepScan.Shellcode。而我对shellcode的加密是参考的一个GitHub的开源项目的,所以简单的加了一下混淆,效果好了不少。
最后再来张经典全家桶:2333

收尾

这篇文章写的还是比较草率地,但是很多内容不方便公开出来。相信各位师傅根据上面的方法,再加上自己的经验肯定能够绕过杀软检测的!

请登录后发表评论