欢迎来到 嗅灵易学

零基础也能上手的脚本技术课,一对一答疑带你入门

贴上加密函数C代码

贴上加密函数C代码

DWORD    *KeyA=NULL;
DWORD    *KeyB=NULL;
unsigned long TempA=0;
unsigned long MulA=0;
unsigned long MulB=0;
unsigned long MulC=0;
unsigned long MulD=0;
unsigned long TempKeyA=0;
unsigned long TempKeyB=0;
void CMy2008Dlg::OnCalc() 
{              ....
  KeyA=(unsigned long *)XorKey;
  KeyB=(unsigned long *)(XorKey+4);
  MUL802(*KeyA,*KeyB);
}
long CMy2008Dlg::MUL802(unsigned long a, unsigned long b)
{  
  TempA = a;
  //a:参数1的高位×参数2的低位
  a = a >>16;
  MulA = a * (b & 0xffff);
  //b:参数1的低位×参数2的低位
  MulB = (TempA & 0xffff) * (b & 0xffff);
  //c:参数1的低位×参数2的高位
  MulC = (TempA & 0xffff) * (b >>16);
  MulD = MulA + MulC;
  TempKeyA = MulB + (MulD << 16);
  TempKeyB = 0 + (MulD >> 16);
  if(TempKeyA >=(MulD << 16))
  {
    //d:参数1的高位×参数2的高位
    TempKeyB = a * (b >> 16) + TempKeyB;
  }
//TempKeyA、TempKeyB就是结果
  return 0;
}
在这儿有点问题,参数b是参a的一个Copy,值是一样的?(之所以打?号是只经过了第一执行,还没测试后面的循环)

注意:上传附件及图片大小不得大于30M。

⚠️ 版权声明:
本博客所有内容(含教程、源码、工具)仅供个人技术学习与研究交流使用,严禁商用、倒卖、二次分发及非法用途。
未经作者书面授权,任何组织或个人不得转载、复制或用于其他平台,违者将追究相关责任。

0 0 0 举报
复制成功