吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1103|回复: 6
上一主题 下一主题
收起左侧

[求助] 大佬帮个忙,怎么写

[复制链接]
跳转到指定楼层
楼主
270377132 发表于 2020-4-9 08:27 回帖奖励

//解密
function Decode(source : string):string;
var
Source_Len,Len : integer;
Count,c1,c2 : integer;
code : array[0..7] of byte;
a1,a2 : byte;
ind : dword;
Decode_Str : string;
label L1,L2;
   begin
       Result := '';
       Decode_Str := '';
       code[2] := $fc;
       code[4] := $f0;
       code[6] := $c0;
       Len := 0;
       a1 := 0;
       a2 := 0;
       c1 := 2;
       c2 := 0;
       ind := 0;
       Count := 0;
       Source_Len := Length(source);
while (Count < Source_Len) do
begin
       if(ord(Source[Count+1]) - $3c) < 0 then
        begin
        Decode_Str := Decode_Str + Source[Count+1];
        inc(Len);
         inc(Count);
        a1 := 0;
        a2 := 0;
        c1 := 2;
        c2 := 0;
        ind := 0;
        Continue;
//break;
end;
a1 := ord(Source[Count+1]) - $3c;
if Len >= Source_Len then
begin
break;
end;
if (c2 + 6) < 8 then
begin
goto L2;
end;
ind := a1 and $3f;
ind := ind shr (6-c1);
Decode_Str := Decode_Str + chr(ind or a2);
Inc(Len);
c2 := 0;
if c1 >= 6 then
begin
c1 := 2;
goto L1;
end;
inc(c1,2);
L2 :a2 := a1 shl c1;
a2 := a2 and code[c1];
c2 := c2 + (8 - c1);
L1 :inc(count);
end;
SetLength(Decode_Str,Len);
Result := Decode_Str;
end;




以上的解密函数,怎么用,解密出来并转换成字符串 看看这个有没有错了
有没有大佬帮帮我,万分感谢啊


edit2=23 32 6C 48 56 6F 41 4C 3C 3C 3C 3C 3E 78 3C 3C 3C 3C 52 68 70 3E 3C 3C 64 5A 7A 5D 77 78 4E 63 65 48 76 79 75 46 43 6B 64 5A 78 21    解密这个

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

沙发
冥界3大法王 发表于 2020-4-9 09:35
unit Unit1;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,
  System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs,
  Vcl.StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Edit1: TEdit;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}
function Decode(source: string): string;
var
  Source_Len, Len: integer;
  Count, c1, c2: integer;
  code: array[0..7] of byte;
  a1, a2: byte;
  ind: dword;
  Decode_Str: string;
label
  L1, L2;
begin
  Result := '';
  Decode_Str := '';
  code[2] := $fc;
  code[4] := $f0;
  code[6] := $c0;
  Len := 0;
  a1 := 0;
  a2 := 0;
  c1 := 2;
  c2 := 0;
  ind := 0;
  Count := 0;
  Source_Len := Length(source);
  while (Count < Source_Len) do
  begin
    if (ord(source[Count + 1]) - $3c) < 0 then
    begin
      Decode_Str := Decode_Str + source[Count + 1];
      inc(Len);
      inc(Count);
      a1 := 0;
      a2 := 0;
      c1 := 2;
      c2 := 0;
      ind := 0;
      Continue;
//break;
    end;
    a1 := ord(source[Count + 1]) - $3c;
    if Len >= Source_Len then
    begin
      break;
    end;
    if (c2 + 6) < 8 then
    begin
      goto L2;
    end;
    ind := a1 and $3f;
    ind := ind shr (6 - c1);
    Decode_Str := Decode_Str + chr(ind or a2);
    Inc(Len);
    c2 := 0;
    if c1 >= 6 then
    begin
      c1 := 2;
      goto L1;
    end;
    inc(c1, 2);
L2:
    a2 := a1 shl c1;
    a2 := a2 and code[c1];
    c2 := c2 + (8 - c1);
L1:
    inc(Count);
  end;
  SetLength(Decode_Str, Len);
  Result := Decode_Str;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
   ShowMessage(Decode(edit1.Text));
end;

end.

也不知是不是这样的?
3#
 楼主| 270377132 发表于 2020-4-9 09:44 |楼主
4#
sail2000 发表于 2020-4-9 10:03
270377132 发表于 2020-4-9 09:44
那怎么转字符串呢,会不会有问题呢

这函数返回的直接就是字符串,还想怎么转?
5#
 楼主| 270377132 发表于 2020-4-9 10:06 |楼主
sail2000 发表于 2020-4-9 10:03
这函数返回的直接就是字符串,还想怎么转?

不是吧,我调用是16进制的
6#
sail2000 发表于 2020-4-9 10:36
270377132 发表于 2020-4-9 10:06
不是吧,我调用是16进制的

你的问题是想看明文,而不是说字符串。。。
而且你的密文解密后明文都不给出来,让大家去猜嘛?
7#
 楼主| 270377132 发表于 2020-4-9 10:46 |楼主
sail2000 发表于 2020-4-9 10:36
你的问题是想看明文,而不是说字符串。。。
而且你的密文解密后明文都不给出来,让大家去猜嘛?

对的,,明文怎么说呢,后面的是★★魔の戒★★ 这个字符串,我的意思是整条的解密出来,显示出明文来,但是我怎么弄好像都有点问题不知道哪的问题

我这样调用 要把16进制转成字符串解密然后出来的结果不对啊 但是我拿后面的 64 5A 7A 5D 77 78 4E 63 65 48 76 79 75 46 43 6B 64 5A 78 这样解又可以
procedure TForm1.Button1Click(Sender: TObject);

ShowMessage(Decode(HexStrToStr(edit1.Text)));
end;
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-26 16:47

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表