安全中国首页 > 文章中心 > 逆向工程技术
 
安全中国网友投稿专用上传FTP空间:
Ftp服务器:download.anqn.com
Ftp端口:21
用户名:anqn
密 码:anqn.com
 

XnView v1.91最新版-软柿子算法分析及注册机

更新时间:2007-10-30 1:36:32
责任编辑:池天
热 点:


算法总结一下吧:
其实是简单的xor加密,呵呵!!不过就是内存位置乱了点~~~
还是不要总结了!!自已看了都烦~~哦呵呵呵!!反正就是异或异或,传回去传过来!取前面,取后面!`就是这样了!~~自己看清楚一点吧~~
呵呵`

注册机还是要写滴!mfc的button事件代码!!:
  char name[100],code[100],a[10];
  long int key[]={0xaa,0x89,0xc4,0xfe,0x46,0x78,0xf0,
    0xd0,0x03,0xe7,0xf7,0xfd,0xf4,0xe7,0xb9,0xb5,0x1b,//对了`这就是那个传说中的十六进制数串
    0xc9,0x50,0x73};
  int i,len=0,k=0;
  unsigned  int num=0,max1=0,max2=0;
  DWORD* p;
  GetDlgItemText(IDC_EDIT1,name,-1);
  len=strlen(name);
  i=0;
  for(;i<len;i++)
  {
    num=name[i]^key[k];
    k++;
    key[k-1]=name[i];
    name[i]=num;
    if(5==k)
      k=0;
  }
  k=0;
  for(i=0;i<len;i++)
  {
    max1=(BYTE)name[len-i-1];
    max2=(BYTE)key[k+5];
    num=max1^max2;
    key[k+5]=max1;
    name[len-i-1]=num;
    k++;
    if(5==k)
      k=0;
  }
  k=0;
  for(i=0;i<len;i++)
  {
    max1=(BYTE)name[i];
    max2=(BYTE)key[k+10];
    num=max1^max2;
    key[k+10]=name[i];
    name[i]=num;
    k++;
    if(5==k)
      k=0;
  }
  k=0;
  for(i=0;i<len;i++)
  {
    max1=(BYTE)name[len-i-1];
    max2=(BYTE)key[k+15];
    num=max1^max2;
    key[k+15]=name[len-i-1];
    name[len-i-1]=num;
    k++;
    if(5==k)
      k=0;
  }
  memset(a,0,10);
  for(i=0;i<len;i++)
  {
    k=i&3;
    max1=a[k];
    max2=(BYTE)name[i];
    num=max1+max2;
    a[k]=(BYTE)num;
  }
  p=(DWORD*)a;
  sprintf(name,"%d",*p);
  SetDlgItemText(IDC_EDIT2,name);
}

其实注册机可以写得非常简洁``因为想让大家看得更清楚一点这个算法,所以,原封不动地还原了反汇编代码!

----------------------------------------------------------------------------------
└经验总结┐:
嘿嘿``原来crack一个软件也不难嘛!至少这个是这样~~呵呵~

----------------------------------------------------------------------------------
└版权声明┐ 本文原创于看雪软件安全论坛, 转载请注明作者并保持文章的完整, 谢谢!

                                                      ,      2007年6月6日  22:28:16

上一页 1 2 3 

 
相关文章
一日一文章
 
一日一软件
一日一动画