⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tmain.~pas

📁 传奇2解密加密代码
💻 ~PAS
字号:
unit TMain;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ComCtrls, JSocket,Grobal2;

type
  TForm1 = class(TForm)
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    EditBase64Encode: TEdit;
    EditBase64Decode: TEdit;
    EditBase64EncodeA: TEdit;
    ButtonBase64Encode: TButton;
    ButtonBase64Decode: TButton;
    EditBase64DecodeA: TEdit;
    ButtonMirDecode: TButton;
    ButtonMirEncode: TButton;
    EditMirEncode: TEdit;
    EditMirDecode: TEdit;
    EditMirDecodeA: TEdit;
    EditMirEncodeA: TEdit;
    ButtonSHA1: TButton;
    EditSHA1: TEdit;
    EditSHA1A: TEdit;
    TabSheet2: TTabSheet;
    ClientSocket1: TClientSocket;
    EditIPaddr: TEdit;
    EditPort: TEdit;
    Label1: TLabel;
    ButtonConnect: TButton;
    ButtonDisConnect: TButton;
    LabelStatus: TLabel;
    GroupBox1: TGroupBox;
    Label2: TLabel;
    EditPlay: TEdit;
    ButtonSend: TButton;
    Label3: TLabel;
    EditLoginID: TEdit;
    Label4: TLabel;
    EditCharName: TEdit;
    Label5: TLabel;
    EditSessionID: TEdit;
    Label6: TLabel;
    EditFlag: TEdit;
    ButtonSendPowerBlock: TButton;
    procedure ButtonBase64EncodeClick(Sender: TObject);
    procedure ButtonBase64DecodeClick(Sender: TObject);
    procedure ButtonMirEncodeClick(Sender: TObject);
    procedure ButtonMirDecodeClick(Sender: TObject);
    procedure ButtonSHA1Click(Sender: TObject);
    procedure ButtonConnectClick(Sender: TObject);
    procedure ButtonDisConnectClick(Sender: TObject);
    procedure ClientSocket1Connect(Sender: TObject;
      Socket: TCustomWinSocket);
    procedure ClientSocket1Disconnect(Sender: TObject;
      Socket: TCustomWinSocket);
    procedure ButtonSendClick(Sender: TObject);
    procedure ButtonSendPowerBlockClick(Sender: TObject);
  private
    procedure SendSocket(sendstr: string);
    procedure SendPowerBlock;
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  g_PowerBlock:TPowerBlock = (   //10
	$55, $8B, $EC, $83, $C4, $E8, $89, $55, $F8, $89, $45, $FC, $C7, $45, $EC, $E8,
	$03, $00, $00, $C7, $45, $E8, $64, $00, $00, $00, $DB, $45, $EC, $DB, $45, $E8,
	$DE, $F9, $DB, $45, $FC, $DE, $C9, $DD, $5D, $F0, $9B, $8B, $45, $F8, $8B, $00,
	$8B, $55, $F8, $89, $02, $DD, $45, $F0, $8B, $E5, $5D, $C3,
	$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, 
	$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
	$00, $00, $00, $00, $00, $00, $00, $00
   );
  g_PowerBlock1:TPowerBlock = (
	$55, $8B, $EC, $83, $C4, $E8, $89, $55, $F8, $89, $45, $FC, $C7, $45, $EC, $64,
	$00, $00, $00, $C7, $45, $E8, $64, $00, $00, $00, $DB, $45, $EC, $DB, $45, $E8,
	$DE, $F9, $DB, $45, $FC, $DE, $C9, $DD, $5D, $F0, $9B, $8B, $45, $F8, $8B, $00,
	$8B, $55, $F8, $89, $02, $DD, $45, $F0, $8B, $E5, $5D, $C3,
	$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, 
	$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
	$00, $00, $00, $00, $00, $00, $00, $00
   );
implementation

uses EncryptUnit, EDcode, HUtil32;
var
  g_boConnected:Boolean;
  g_btCode:Byte = 1;

{$R *.dfm}

procedure TForm1.ButtonBase64EncodeClick(Sender: TObject);
var
  Base64:TBase64;
  sText:String;
begin
  sText:=Trim(EditBase64Encode.Text);
  if sText = '' then begin
    exit;
  end;

  Base64:=TBase64.Create;
  EditBase64EncodeA.Text:=Base64.Encode(sText);
  Base64.free;
end;

procedure TForm1.ButtonBase64DecodeClick(Sender: TObject);
var
  Base64:TBase64;
  sText:String;
begin
  sText:=Trim(EditBase64Decode.Text);
  if sText = '' then begin
    exit;
  end;

  Base64:=TBase64.Create;
  EditBase64DecodeA.Text:=Base64.Decode(sText);
  Base64.free;
end;

procedure TForm1.ButtonMirEncodeClick(Sender: TObject);
var
  Base64:TBase64;
  sText:String;
begin
  sText:=Trim(EditMirEncode.Text);
  if sText = '' then begin
    exit;
  end;

  Base64:=TBase64.Create;
  EditMirEncodeA.Text:=EncodeString(sText);
  Base64.free;
end;

procedure TForm1.ButtonMirDecodeClick(Sender: TObject);
var
  Base64:TBase64;
  sText:String;
begin
  sText:=Trim(EditMirDecode.Text);
  if sText = '' then begin
    exit;
  end;

  Base64:=TBase64.Create;
  EditMirDecodeA.Text:=DecodeString(sText);
  Base64.free;
end;

procedure TForm1.ButtonSHA1Click(Sender: TObject);
var
  Sha1:TSHA1;
  sText:String;
  Digest : TSHA1Digest;
  Base64:TBase64;
begin
  sText:=Trim(EditSHA1.Text);
  if sText = '' then begin
    exit;
  end;

  Sha1:=TSHA1.Create;
  Base64:=TBase64.Create;
  Sha1.HashString(Digest,sText);

  Sha1.free;
  Base64.free;
end;

procedure TForm1.ButtonConnectClick(Sender: TObject);
var
  sIPaddr:String;
  nPort:Integer;
begin
  sIPaddr:=Trim(EditIPaddr.Text);
  nPort:=StrToInt(EditPort.Text);
  ClientSocket1.Address:=sIPaddr;
  ClientSocket1.Port:=nPort;
  ClientSocket1.Active:=True;
end;

procedure TForm1.ButtonDisConnectClick(Sender: TObject);
begin
  ClientSocket1.Active:=False;
end;

procedure TForm1.ClientSocket1Connect(Sender: TObject;
  Socket: TCustomWinSocket);
begin
  ButtonDisConnect.Enabled:=True;
  ButtonConnect.Enabled:=False;
  LabelStatus.Caption:='已连接';
  g_boConnected:=True;
end;

procedure TForm1.ClientSocket1Disconnect(Sender: TObject;
  Socket: TCustomWinSocket);
begin
  ButtonDisConnect.Enabled:=False;
  ButtonConnect.Enabled:=True;
  LabelStatus.Caption:='已断开连接';
  g_boConnected:=False;
end;

procedure TForm1.ButtonSendClick(Sender: TObject);
var
   str: string;
   sLoginId:String;
   sCharName:String;
   sCertification:String;
   sVERSION_NUMBER:String;
begin
  sLoginId:=Trim(EditLoginId.Text);
  sCharName:=Trim(EditCharName.Text);
  sCertification:=Trim(EditSessionId.Text);
  sVERSION_NUMBER:=Trim(EditPlay.Text);
   str := '**' +
          sLoginId + '/' +
          sCharName + '/' +
          sCertification + '/' +
          sVERSION_NUMBER + '/';

   str := str + '8';
   SendSocket (EncodeString (str));
end;
procedure TForm1.SendSocket (sendstr: string);

var
   sSendText:String;
begin
   if ClientSocket1.Socket.Connected then begin
      ClientSocket1.Socket.SendText ('#' + IntToStr(g_btCode) + sendstr + '!');
     Inc (g_btCode);
     if g_btCode >= 10 then g_btCode := 1;
   end;
end;
procedure TForm1.ButtonSendPowerBlockClick(Sender: TObject);
begin
  SendPowerBlock();
end;
procedure TForm1.SendPowerBlock();
var
   msg: TDefaultMessage;
begin
   msg := MakeDefaultMsg (CM_POWERBLOCK,0 , 0, 0, 100);
   SendSocket (EncodeMessage (msg) + EncodeBuffer (@g_PowerBlock, sizeof(TPowerBlock)));
end;
end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -