cqy666 发表于 2020-12-10 11:12

【CE】游戏加密原理

本帖最后由 cqy666 于 2020-12-11 14:42 编辑

如图所示:


当我们直接搜索1000011数值在内存找不到该值,是因为使用了倍数或异或加密。游戏显示数值为1000011,实际内存值为8000094。

增加数值执行加密算法:
      public static int Encrypt(int value, int key)
      {

//第一种倍数加密:
return 8 * value + 6;//32位汇编 lea eax, //64位汇编 lea eax,

//第二种异或加密:
return value ^ key;      }

获取数值执行解密算法:
public static int Decrypt(int value, int key)
      {
//第一种倍数解密:
            return (value - 6) / 8;


//第二种异或解密:
return value ^ key;
       }


张天师 发表于 2020-12-10 11:35

好基础的知识 学到了

鸭子咯咯哒~ 发表于 2020-12-10 12:18

请问下shellcode是啥意思?(发不了贴)
页: [1]
查看完整版本: 【CE】游戏加密原理