一段传奇世界游戏封包的加解密[有源码],我不知道怎么得到明文,请大家帮看看

hugai780717 2007-01-19 11:11:53
比如我用Wpe抓一个包,密文是#Rl=fwnfsv?ftvufuDaQDVN`>ELbF>pFo\=!
明文是什么?
我找了加解密的原码,可不知道用,小生是一个初学者,大家不要见笑!


[代码如下]
int CodeWoool(const BYTE * pIn, int size, CHAR * pOut)
{
BYTE b1 = 0,bcal = 0;
BYTE bflag1 = 0,bflag2 = 0;
int i = 0;
int iptr = 0;
int optr = 0;
while( iptr < size )
{
b1 = pIn[iptr++] ^ 0xeb;
if( i < 2 )
{
bcal = b1;
bcal>>=2;
bflag1 =bcal;
bcal &= 0x3c;
b1 &=3;
bcal |= b1;
bcal += 0x3b;
pOut[optr++] = (char)bcal;
bflag2 = (bflag1 & 3 ) | (bflag2 << 2 );
}
else
{
bcal = b1;
bcal &= 0x3f;
bcal += 0x3b;
pOut[optr++] = (char)bcal;
b1>>= 2;
b1 &=0x30;
b1 |= bflag2;
b1 += 0x3b;
pOut[optr++] = (char)b1;
bflag2 = 0;
}
i ++;
i %=3;
}
pOut[optr] = 0;
if( i == 0 )
return optr;
pOut[optr++] = bflag2 + 0x3b;
pOut[optr] = 0;
return optr;
}
//---------------------------------------------------------------------------
int DecodeWoool(const char * in, BYTE * out)
{
BYTE b1;
BYTE b2;
BYTE b3;
BYTE b4;
int inLen=strlen((char*)in);
int inOffset=0;
int outOffset=0;
int remain;
/*for(int i=0;i<inLen;i++)
{
in[i]-=0x3b;
in[i]&=0x3f;
}*/
while(true)
{
remain=inLen-inOffset;
if(remain<=0)break;

b1=in[inOffset ];
b2=in[inOffset+1];
b3=in[inOffset+2];
b4=in[inOffset+3];
b1-=0x3b;
b1&=0x3f;
b2-=0x3b;
b2&=0x3f;
b3-=0x3b;
b3&=0x3f;
b4-=0x3b;
b4&=0x3f;

if(remain>=4)
{
out[outOffset ]=((b1<<2)&0xf0)^(b1&0x3)^((b4)&0xc)^0xeb;
out[outOffset+1]=((b2<<2)&0xf0)^(b2&0x3)^((b4<<2)&0xc)^0xeb;
out[outOffset+2]=(b3&0x3f)^((b4<<2)&0xc0)^0xeb;
inOffset+=4;
outOffset+=3;
}
else if(remain==3)
{
out[outOffset ]=((b1<<2)&0xf0)^(b1&0x3)^((b3)&0xc)^0xeb;
out[outOffset+1]=((b2<<2)&0xf0)^(b2&0x3)^((b3<<2)&0xc)^0xeb;
inOffset+=3;
outOffset+=2;
}
else if(remain==2)
{
out[outOffset]=((b1<<2)&0xf0)^(b1&0x3)^((b2<<2)&0xc)^0xeb;
inOffset+=2;
outOffset+=1;
}
else
{
inOffset+=1;
}
}
out[outOffset]='\0';
return outOffset;
}

...全文
2118 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhengq06 2008-05-27
  • 打赏
  • 举报
回复
看看加密相关资料吧 你这问题很有难度的...
lihongbin33 2008-05-20
  • 打赏
  • 举报
回复
如果 这么容易就写出外挂了,网络游戏也就不用开了!
先学基础..
coolcalf 2007-10-19
  • 打赏
  • 举报
回复
源码之家
搜索:外挂 ,在第二页找到"外挂制作教程"

里面有详细讲网络游戏加密方法.
或许对你有一定帮助. :)
linliswm 2007-10-19
  • 打赏
  • 举报
回复
看不懂,破解这个超级麻烦
alloutoflove 2007-10-16
  • 打赏
  • 举报
回复
额............通过游戏相关的东西学习编程也不失为一种方法..
liwei84516 2007-10-16
  • 打赏
  • 举报
回复
虽然我本人现在在玩这个垃圾游戏,可是看不懂楼主的代码."肾"大会虚 的.
liuxingworld 2007-10-14
  • 打赏
  • 举报
回复
原加密信息部分为:DaQDVN` >ELbF >pFo\=
解密后信息部分为:聖龑琋炫z虀(
MarsZhangLing 2007-02-04
  • 打赏
  • 举报
回复
........没仔细看。如果加密只有这点源码的话。那不过是进行一些基本的移位加减操作而已。

目前就我所知。国内所有游戏的封包都加密的超级厉害。(比如魔力宝贝)就是QQ。其封包也加密的超级厉害。同一个明文。每次生成的密文都不一样的。。想破解。。先研究研究加密算法吧
controstr 2007-01-31
  • 打赏
  • 举报
回复
小弟资力不够,看不懂
BeRoy 2007-01-29
  • 打赏
  • 举报
回复
不是已经有了DecodeWoool么?outOffset就是数组大小
hugai780717 2007-01-19
  • 打赏
  • 举报
回复
高手们,帮看看吗?这两函数该怎么调用,我的意思是输入加密字符串,然后输出明文,这些代码的函数好像并非这样的啊
Persistent8813 2007-01-19
  • 打赏
  • 举报
回复
反编译的代码吧,看不懂

1,221

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧