📄 tmain.~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 + -