linux社区爱心援助Linux认证系列教程业界动态站务新闻公司招聘建议留言网址大全LPI专题CISCO专题
设为首页
加入收藏
管理团队
JSP  
JAVA  
PERL  
 您的位置:首页 > article > Linux开发区 > 数据库开发 >
栏目导栏
资料搜索
热门文章
·oracle exp/imp命令详解
·Oracle exp/imp导出导入工具的
·MySQL图形化管理软件安装使用详
·SQL*PLUS命令的使用大全
·PPPOE + FreeRADIUS + MySQL 配
·MySQL语言参考(3) :SELECT和
·创建一个Oracle 数据库
·MySQL的管理工具:phpMyAdmin使
·ORACLE9I安装步骤
·Linux下Oracle9i RMAN备份及恢
·RMAN的中文文挡
·oracle 分区表的建立方法
·aix5.3安装oracle说明
·fc5 下成功安装Oracle 10g
·PHPMyAdmin配置标准
最新文章
·带你轻松接触MySQL数据库的异常
·PostgreSQL 8.3.1, 8.2.7发布
·实例讲解在MySQL中如何导出整个
·轻松掌握MySQL数据库锁机制的相
·五种MySQL数据库可靠性方案的分
·MySQL数据库中对前端和后台进行
·巧用MySQL InnoDB引擎锁机制解
·MySQL存储过程SAVEPOINT ROLLB
·创建Bitmap_Join_Indexes中的约
·在MySQL数据库中应当如何关闭错
·某些更改的非事务性表不能被回
·放弃连接消息出现在错误日志中
·怎样才能解决MySQL 5.0.16的乱
·MySQL数据库中如何解决分组统计
·SAVEPOINT和ROLLBACK TO SAVEP
Google
 
千年加密解密代码(delphi)
[ 作者:kissyll  加入时间:2007-11-02 12:04:47  来自:Linux联盟收集整理 ]
千年加密解密代码....虽然看起来挺复杂的.我是对应汇编的.编译后几乎和游戏客户端里的一样...保证了速度..QrELinux联盟
二次解密代码我还没去搞.不过一次解密足够了.可以制出很多功能外挂.如自动拾取.吃药.等等...二次解密加密主要用于怪物坐标用的.(自动练功需要解析怪物坐标要用)QrELinux联盟
QrELinux联盟
声明部分QrELinux联盟
QrELinux联盟
//二种声方法均可QrELinux联盟
//const gamestr:string[255] = ‘N>TSVUJlwdcBMFjnAKb?qxvyeGzfLP=_ER@Z\am]ChgoWD;QuX[#2$‘+chr(39)+‘89%‘+chr(10)+chr(9)+‘*):5&+67?40‘;QrELinux联盟
const gamestr : array [0..127] of byte =QrELinux联盟
($4E, $3E, $54, $53, $56, $55, $4A, $6C, $77, $64, $63, $42, $4D, $46, $6A, $6E, $41, $4B, $62, $3F, $71, $78, $76, $79, $65, $47, $7A, $66, $4C, $50, $3D, $5F, $45, $52, $40, $5A, $5C, $61, $6D, $5D, $43, $68, $67, $6F, $57, $44, $3B, $51, $75, $58, $5B, $3C, $74, $6B, $70, $72, $5E, $60, $69, $49, $48, $4F, $59, $73, $2E, $33, $1E, $01, $13, $22, $10, $0B, $28, $2D, $20, $0D, $19, $3C, $3B, $06, $11, $1C, $0C, $00, $3D, $1D, $2F, $21, $03, $02, $05, $04, $2C, $31, $3E, $23, $32, $24, $27, $38, $1F, $39, $25, $12, $0A, $09, $18, $1B, $2A, $29, $3A, $0E, $35, $07, $26, $0F, $2B, $36, $14, $37, $3F, $34, $30, $16, $08, $15, $17, $1A);
QrELinux联盟
QrELinux联盟
QrELinux联盟
代码部分QrELinux联盟
QrELinux联盟
function decode (inchar:pchar; len:integer ; outchar:pchar):integer; //解密QrELinux联盟
varQrELinux联盟
a1, d1: byte;QrELinux联盟
i, count, di, si :integer;QrELinux联盟
beginQrELinux联盟
  decode := len div 4 * 3 ;
//返回解密后数据长度QrELinux联盟
i := 0;QrELinux联盟
  while i < len doQrELinux联盟
  beginQrELinux联盟
    d1 := byte (inchar[i] );QrELinux联盟
    if ( d1 = $3B ) or (d1 = $7A) thenQrELinux联盟
    beginQrELinux联盟
    end;QrELinux联盟
    d1 := d1 and $0FF;QrELinux联盟
    d1 := gamestr [d1 + 05];
//d1 := byte ( gamestr [ 1 + d1 ] );QrELinux联盟
byte (inchar [i] ) := d1;
// 根据不同的gamestr数据定义选用不现的方法QrELinux联盟
inc (i);QrELinux联盟
  end;QrELinux联盟
  QrELinux联盟
  di := 0 ;QrELinux联盟
  si := 0 ; QrELinux联盟
  count := len div 4 ;
//循环次数QrELinux联盟
for i := 1 to count doQrELinux联盟
  beginQrELinux联盟
    a1 := ord ( inchar [di]);
//解密数据 (取4个.转化3个)QrELinux联盟
a1 := a1 shl 2 ;QrELinux联盟
    d1 := ord ( inchar [di + 1]);QrELinux联盟
    d1 := d1 shr 4 ;QrELinux联盟
    a1 := a1 or d1 ;QrELinux联盟
    outchar[si] := chr (a1);QrELinux联盟
    QrELinux联盟
    a1 := ord ( inchar [di + 1]);QrELinux联盟
    a1 := a1 shl 4 ;QrELinux联盟
    d1 := ord ( inchar [di + 2]);QrELinux联盟
    d1 := d1 shr 2 ;QrELinux联盟
    a1 := a1 or d1 ;QrELinux联盟
    outchar[si + 1] := chr (a1);QrELinux联盟
    QrELinux联盟
    a1 := ord ( inchar [di + 2]);QrELinux联盟
    a1 := a1 shl 6 ;QrELinux联盟
    d1 := ord ( inchar [di + 3]);QrELinux联盟
    a1 := a1 or d1 ;QrELinux联盟
    outchar[si + 2] := chr (a1);QrELinux联盟
    QrELinux联盟
    di := di + 4 ; QrELinux联盟
    si := si + 3 ;QrELinux联盟
  end;QrELinux联盟
end;QrELinux联盟
QrELinux联盟
function encode (inchar:pchar; len:integer ; outchar:pchar):integer;
//加密QrELinux联盟
varQrELinux联盟
a1, d1 :byte;QrELinux联盟
i,count,di,si :integer;QrELinux联盟
QrELinux联盟
beginQrELinux联盟
  encode := len div 3 * 4 ;
//返回加密后数据长度QrELinux联盟
di := 0 ;QrELinux联盟
  si := 0 ;QrELinux联盟
  count := len div 3;
//定义循环次数QrELinux联盟
for i := 1 to count doQrELinux联盟
  beginQrELinux联盟
    a1 := ord ( inchar [di]);
//第一次转换 取3个 输出4个QrELinux联盟
a1 := a1 shr 2 ;QrELinux联盟
    outchar [si] := chr (a1);QrELinux联盟
    QrELinux联盟
    a1 := ord (inchar[di]);QrELinux联盟
    a1 := a1 and 3 ;QrELinux联盟
    a1 := a1 shl 4 ;QrELinux联盟
    d1 := ord (inchar[di +1]);QrELinux联盟
    d1 := d1 shr 4 ;QrELinux联盟
    a1 := a1 or d1 ;QrELinux联盟
    outchar[si +1] := chr (a1) ;QrELinux联盟
    QrELinux联盟
    a1 := ord ( inchar[di + 1]) ;QrELinux联盟
    a1 := a1 and $0F ;QrELinux联盟
    a1 := a1 shl 2 ;QrELinux联盟
    d1 := ord ( inchar[di + 2]) ;QrELinux联盟
    d1 := d1 shr 6 ;QrELinux联盟
    a1 := a1 or d1 ;QrELinux联盟
    outchar[si + 2] := chr (a1);QrELinux联盟
    QrELinux联盟
    a1 := ord ( inchar[di + 2]) ;QrELinux联盟
    a1 := a1 and $3F;QrELinux联盟
    outchar[si + 3] := chr (a1) ;QrELinux联盟
    QrELinux联盟
    
//第二次转换QrELinux联盟
d1 := ord ( outchar [si]);
//第 1 个QrELinux联盟
d1 := gamestr [d1];QrELinux联盟
    outchar [si] := chr (d1);QrELinux联盟
    QrELinux联盟
    d1 := ord ( outchar [si + 1]);
//第 2 个QrELinux联盟
d1 := gamestr [d1];QrELinux联盟
    outchar [si + 1] := chr (d1);QrELinux联盟
    QrELinux联盟
    d1 := ord ( outchar [si + 2 ]);
//第 3 个QrELinux联盟
d1 := gamestr [d1];QrELinux联盟
    outchar [si + 2] := chr (d1);QrELinux联盟
    QrELinux联盟
    d1 := ord ( outchar [si + 3]);
//第 4 个QrELinux联盟
d1 := gamestr [d1];QrELinux联盟
    outchar [si + 3] := chr (d1);QrELinux联盟
    QrELinux联盟
    di := di + 3 ;QrELinux联盟
    si := si + 4 ; QrELinux联盟
  end;QrELinux联盟
end;
Linux联盟收集整理 ,转贴请标明原始链接,如有任何疑问欢迎来本站Linux论坛讨论
评论】【加入收藏夹】【 】【打印】【关闭
※ 相关链接
无相关信息