| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 410 人关注过本帖
标题:菜鸟跪求-大哥们帮忙看看
只看楼主 加入收藏
gucheng21
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2008-5-10
收藏
 问题点数:0 回复次数:0 
菜鸟跪求-大哥们帮忙看看
高手们,可以帮忙描述下面这段文章的解密过程吗?包括用到的函数,常量等!本人菜,刚进门,但是这知识很急用!
在这里非常非常感谢各位了!
xTiNtint mi_2(int a1)
{
signed int result;
signed int v2;

v2 = a1;
result = 1;
if ( a1 >= 1 )
{
do
{
result *= 2;
--v2;
}
while ( v2 );
}
return result;
}

//////////////////////////////////////////////////////
//写成函数,是防止以后字符串发生变化。
int miyao(const char *string_miyao)
{
int m,n,key,crypto;
m=n=key=crypto=0;

int length=strlen(string_miyao);

for ( int i=0 ; i < length;i++ )
{
key = string_miyao[i];
crypto ^= key * mi_2(n);
crypto ^= key * mi_2(m);
n = (n + 7) % 19;
m = (m + 13) % 23 ;
}

return (crypto ^ 0x18901) % 100537;
}

//////////////////////////////////////////////////////
//算法很简单,是吧!,原程序是返回一个明文区的指针,
//这里就省事了
/////////////////////////////////////////////////////
int ReadPass(const char *pcode)
{

char code[16]={0};
int i,tmp,dst,sum,key,len,st0,flag;
HINSTANCE LibHandle;
MYPROC _ftol;
i=sum=tmp=st0=flag=0;
DOUBLE d310 = 9.6e1 ;
DOUBLE d318 = 9.946586828729721e-6;


LibHandle=LoadLibrary("msvcrt.dll");
_ftol =(MYPROC)GetProcAddress(LibHandle,"_ftol");
key=miyao("TblRefreshCurMonthServiceUse");//其实这里是个很稳定的整数30137,因为这个字符串是常量.
len=strlen(pcode);
if(len<1)
{
return flag;
}
else
{
do
{
tmp=pcode[i];
if(tmp>=32&&tmp<=0x7E)
{
sum+=key;
st0=sum%0x188B9;
__asm
{
fild st0;
fmul d310;
fmul d318;
call _ftol;
mov dst,eax
}
dst=(tmp-dst-32)%0x5f;
if(dst<0) dst=dst+0x5F;
code[i]=dst+32;
i++;

}
}
while(i<=(len-1));
strcpy(password,code);
flag=1;
return flag;
}
}
搜索更多相关主题的帖子: return result 字符串 文章 大哥 
2008-05-10 10:28
快速回复:菜鸟跪求-大哥们帮忙看看
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018014 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved