常用工具函数记录---xor 异或加解密

int xorkey[] =
{
    0x41, 0xB6, 0x7F, 0x58, 0x38,0x0C, 0xF0, 0x2D, 0x7B, 0x39,
    0x08, 0xFE, 0x21, 0xBB, 0x41,0x58
};




//加密函数将会直接修改传入的pbData内存数据,使用时请注意
void __fastcall xor_encrypt(LPBYTE pbData, int nSize)
{
    BYTE byTemp = 0;
    if (pbData)
    {
        for (int i = 0; i < nSize; ++i)
        {
            pbData[i] = pbData[i] ^ byTemp + xorkey[i & 15];
            byTemp = pbData[i];
        }
    }
}



void __fastcall xor_decrypt(LPBYTE pbData, int nSize)
{

    BYTE byPrev = 0;
    BYTE byTemp = 0;

    if (pbData)
    {
        for (int i = 0; i < nSize; ++i)
        {
            byPrev = pbData[i];
            pbData[i] = pbData[i] ^ byTemp + xorkey[i & 15];
            byTemp = byPrev;
        }
    }
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Level 11: 1. 登录后,发现页面上有一个输入框,可以输入任意的字符串,然后点击“Submit Query”按钮,就会返回一个密后的字符串。 2. 查看网页源代码,发现有一段JavaScript代码,其中包含了一个函数`encodeString`,它是用来密输入的字符串的。 3. 通过分析`encodeString`函数的代码,发现它是对输入的字符串进行了简单的替换和反转操作,最终得到了一个密后的字符串。 4. 我们可以尝试对密后的字符串进行反向操作,还原出原始的字符串。 5. 将得到的原始字符串作为参数,构造一个URL,然后访问这个URL,即可通过该关卡。 Level 12: 1. 登录后,发现页面上有一个输入框,可以输入任意的字符串,然后点击“Submit Query”按钮,就会返回一个密后的字符串。 2. 查看网页源代码,发现有一段PHP代码,其中包含了一个函数`echo base64_encode(strrev(xor_encrypt($data, $key)));`,它是用来密输入的字符串的。 3. 通过分析`xor_encrypt`函数的代码,发现它是对输入的字符串进行了密操作,并且密的密钥是一个固定的字符串。 4. 我们可以尝试对密后的字符串进行反向操作和解密操作,还原出原始的字符串。 5. 将得到的原始字符串作为参数,构造一个Cookie,然后将该Cookie发送给服务器,即可通过该关卡。注意,这里要修改的是Cookie,而不是URL。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值