NZND壳-加密算法

我们的壳需要对原数据进行加密.而Xor未免有点太弱.为了避免我的壳在加密上被瞬间攻破.我们采用了一种新的加密算法.我称它为Xor动态加密.

这是一段从ZeroAccessRootkit中提取的算法.你可以从我的另一篇文章看到该算法的汇编形式:Xor动态加密

我将该算法转换成了C语言形式,示例如下:

#include

BYTE XOR加密Data(BYTE* lpBuffer,DWORD dwSize,BYTE bKey)
{
    for (DWORD d=0;dreturn bKey;
}


void XOR解密Data(BYTE* lpBuffer,DWORD dwSize,BYTE bKey)
{
    for (signed int d=(dwSize-1);d>=0;--d)
    {
        bKey=lpBuffer[d]^bKey;
        lpBuffer[d]=lpBuffer[d]-bKey;
    }
}


int main()
{
    char a[]={"Welcome To Beijing"};//28

    BYTE Bb=10;

    BYTE BRet=XOR加密Data((PBYTE)a,28,Bb);

    XOR解密Data((PBYTE)a,28,BRet);


    return 0;


}

为了让我们的壳变得有趣,这种算法会被如何使用呢?请听下回分解.

你可能感兴趣的:(实践,有趣-好玩)