当前位置:首页 » 编程软件 » 如何反编译base64文件流

如何反编译base64文件流

发布时间: 2022-06-07 09:33:07

㈠ 如何在delphi中实现对文件进行base64编码

Base64 = Class(TObject)
private
FOStream: TStream;
FIStream: TStream;
Public
{ 输入流 }
Property IStream : TStream Read FIStream Write FIStream;
{ 输出流 }
Property OStream : TStream Read FOStream Write FOStream;
{ 编码 }
Function Encode : Boolean;
{ 解码 }
Function Decode : Boolean;
End;

implementation

const
SBase64 : string = '~#%&*+-';
UnBase64: array[0..255] of byte =
(128,128,128,128,128,128,128,128, 128,128,128,128,128,128,128,128, //0-15
128,128,128,128,128,128,128,128, 128,128,128,128,128,128,128,128, //16-31
128,128,128, 58,128, 59, 60,128, 128,128, 61, 62,128, 63,128,128, //32-47
128,128, 0, 1, 2, 3, 4, 5, 6, 7,128,128,128,128,128,128, //48-63
128, 8, 9, 10, 11, 12, 13, 14, 15,128, 16, 17, 18, 19, 20,128, //64-79
21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,128,128,128,128,128, //80-95
128, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,128, 43, 44, 45, //96-111
46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,128,128,128, 57,128, //112-127
128,128,128,128,128,128,128,128, 128,128,128,128,128,128,128,128, //128-143
128,128,128,128,128,128,128,128, 128,128,128,128,128,128,128,128, //128-143
128,128,128,128,128,128,128,128, 128,128,128,128,128,128,128,128, //144-159
128,128,128,128,128,128,128,128, 128,128,128,128,128,128,128,128, //160-175
128,128,128,128,128,128,128,128, 128,128,128,128,128,128,128,128, //176-191
128,128,128,128,128,128,128,128, 128,128,128,128,128,128,128,128, //192-207
128,128,128,128,128,128,128,128, 128,128,128,128,128,128,128,128, //208-223
128,128,128,128,128,128,128,128, 128,128,128,128,128,128,128,128, //224-239
128,128,128,128,128,128,128,128, 128,128,128,128,128,128,128,128); //240-255
{ TBase64 }

function TBase64.Decode: Boolean;
var
j, k: integer;
b: byte;
W, Tmp : Byte; //用于阅读流的临时变量
begin
Result := FALSE;
If (FIStream <> Nil) And (FOStream <> Nil) Then
Begin
{ 初始化}
IStream.Position := 0;
OStream.Position := 0;
b := 0;
j := 0;
K := 2;
while (IStream.Position < IStream.Size) And (IStream.Read(Tmp, 1) = 1) And (Char(Tmp) <> '.') Do
Begin
if j = 0 then
begin
b := UnBase64[Tmp];
k := 2;
end
else begin
W := UnBase64[Tmp] or ((b shl k) and $C0);
OStream.Write(W, 1);
inc(k,2);
end;
inc(j);
j := j and 3;
end;
End;
end;

function TBase64.Encode: Boolean;
var
SBuffer : Array [1..4] Of Byte;
j, k: integer;
b: byte;
Tmp : Byte; {### 用于阅读流的临时变量 ###}
begin
Result := FALSE;
If (FIStream <> Nil) And (FOStream <> Nil) Then
Begin
{ 初始化 }
IStream.Position := 0;
OStream.Position := 0;
b := 0;j := 2; k := 2;
while IStream.Position < IStream.Size do
begin
If IStream.Read(Tmp, 1) = 1 Then
Begin
b := b or ((Tmp and $C0) shr k);
inc(k, 2);
SBuffer[j] := Byte(SBase64[(Tmp And $3F) + 1]);
inc(j);
if j > 4 then
begin
SBuffer[1] := Byte(SBase64[b + 1]);
b := 0;
j := 2;
k := 2;
OStream.Write(SBuffer, 4);
End;
End;
End;

{ 平整数据到 SBuffer }
if j <> 2 then
begin
SBuffer[j] := Ord('.');
SBuffer[1] := Byte(SBase64[b + 1]);
OStream.Write(SBuffer, j);
end
else Begin
SBuffer[1] := Ord('.');
OStream.Write(SBuffer, 1);
end;
Result := TRUE;
end;
end;
//--------------------------------------------------------------
翻译成C++的:
class TBase64 : public TObject{
private:
TSream FOStream;
TStream FIStream;
public:
//输入流
__property TStream IStream = { read = FIStream , write = FIStream };
//输出流
__property TStream OStream = { read = FOStream , write = FOStream };
//编码
bool Encode();
//解码
bool Decode();
};

const char * SBase64 = "~#%&*+-";
const unsigned char UnBase64[256] ={
128,128,128,128,128,128,128,128, 128,128,128,128,128,128,128,128, //0-15
128,128,128,128,128,128,128,128, 128,128,128,128,128,128,128,128, //16-31
128,128,128, 58,128, 59, 60,128, 128,128, 61, 62,128, 63,128,128, //32-47
128,128, 0, 1, 2, 3, 4, 5, 6, 7,128,128,128,128,128,128, //48-63
128, 8, 9, 10, 11, 12, 13, 14, 15,128, 16, 17, 18, 19, 20,128, //64-79
21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,128,128,128,128,128, //80-95
128, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,128, 43, 44, 45, //96-111
46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,128,128,128, 57,128, //112-127
128,128,128,128,128,128,128,128, 128,128,128,128,128,128,128,128, //128-143
128,128,128,128,128,128,128,128, 128,128,128,128,128,128,128,128, //128-143
128,128,128,128,128,128,128,128, 128,128,128,128,128,128,128,128, //144-159
128,128,128,128,128,128,128,128, 128,128,128,128,128,128,128,128, //160-175
128,128,128,128,128,128,128,128, 128,128,128,128,128,128,128,128, //176-191
128,128,128,128,128,128,128,128, 128,128,128,128,128,128,128,128, //192-207
128,128,128,128,128,128,128,128, 128,128,128,128,128,128,128,128, //208-223
128,128,128,128,128,128,128,128, 128,128,128,128,128,128,128,128, //224-239
128,128,128,128,128,128,128,128, 128,128,128,128,128,128,128,128}; //240-255

㈡ base64 decode解密码

首先说,BASE64不是加密,他只是把数据以16进治的形势表现出来而已,你给的代码也没有加密!

代码的内容是
eval(base64_decode('...............=='))

其意思如下:
1.使用base64_decode函数反编译被BASE64编码的内容
2.用eval函数执行base64_decode函数的执行结果

也就是说,把base64_decode函数的参数拿出来,再用base64_decode函数执行一下,输出其结果就可以了。
base64_decode的使用方法参考下面链接。

---------------------------------------------------------
return;?>之后的代码无法解读,貌似2进治文件的内容。
之前的代码如下,#后面的是下一行base64加密的部分
# $IIIIIIIIIIIl='base64_decode';$IIIIIIIIIIII='gzinflate';
eval(base64_decode('RlJzs='));
$OOO0O0O00=__FILE__;
$OOO000000=urldecode('%74%68%36%73%62%65%68%71%6c%61%34%63%6f%5f%73%61%64%66%70%6e%72');
$OO00O0000=3968;
$OOO0000O0=$OOO000000{4}.$OOO000000{9}.$OOO000000{3}.$OOO000000{5};
$OOO0000O0.=$OOO000000{2}.$OOO000000{10}.$OOO000000{13}.$OOO000000{16};
$OOO0000O0.=$OOO0000O0{3}.$OOO000000{11}.$OOO000000{12}.$OOO0000O0{7}.$OOO000000{5};
$O0O0000O0='OOO0000O0';

#$OO0OO0000=$OOO000000{17}.$OOO000000{12}.$OOO000000{18}.$OOO000000{5}.$OOO000000{19};
#if(!0)$O000O0O00=$OO0OO0000($OOO0O0O00,'rb');
#$OO0OO000O=$OOO000000{17}.$OOO000000{20}.$OOO000000{5}.$OOO000000{9}.$OOO000000{16};
#$OO0OO00O0=$OOO000000{14}.$OOO000000{0}.$OOO000000{20}.$OOO000000{0}.$OOO000000{20};
#$OO0OO000O($O000O0O00,1259);
#$OO00O00O0=($OOO0000O0($OO0OO00O0($OO0OO000O($O000O0O00,728),'mQX6dsqGnkzBUVHWcYufwbOrT/e1LI+=','#nopqrstuvwxyz0123456789+/')));
#eval($OO00O00O0);
eval(($$O0O0000O0('ZXZhbCgkT08wME8wME8wKTs=')));
return;

㈢ 帮你反编译那Pubwin2007 java版的BASE64变形源码了,请高手帮你看差别吧

这是什么问题?说清楚点好不好

㈣ java web开发,页面处理Base64编码

以使用Oracle数据库举例,有两种实现方式.
一种是使用Clob类型字段,存放Base64编码之后的图片,WEB应用程序在获取到该字段(String对象)之后,使用Base64进行反编码,然后输出.
还有一种是使用Blob二进制大对象字段,直接存储对象的字节流.可以是任意的对象,例如图片,视频,文件等,然后WEB应用程序通过获取Blob对象重新构造字节流成为原本的对象.
但是无论使用哪一种方式,在真是业务开发中非必要的情况下是绝对不推荐的,因为数据越大,存取数据库所发生的性能消耗就越高,应用程序的效率就会比较低下.在后续的系统移至也无法通过SQL脚本进行,只能通过Oracle DMP的方式进行.因为无论是long,Clob还是Blob,都是无法通过简单的SQL进行插入的,推荐的做法是在数据库VARCHAR2字段存放该文件(图片,视频,文件等)的WEB容器相对路径,WEB应用程序仅仅通过该路径对需要访问的对象进行链接.

㈤ 如何把由音频文件转成的base64编码 转回音频文件

网上有一些在线的转换的工具的,将图片或者音频转换为base64b编码,可以直接放到css中使用的

㈥ 有了BASE64码后怎么下载

在线加密解密工具

㈦ 如何反编译 android 中 /data/dalvik-cache/arm 下的文件

使用oatmp,即可反编译这个文件,其实虽然/data/dalvik-cache/arm/包名@[email protected]是以.dex结尾的,但实际它是一个oat文件,并不是dex文件。oat文件是ART虚拟机下的,一个ELF文件。而oatmp的使用方法,大致是adb shell oatmp --oat-file=(路径)

热点内容
linux下的程序开发 发布:2025-05-19 18:55:02 浏览:926
该文件夹未包含 发布:2025-05-19 18:54:17 浏览:194
安卓拳皇对战用哪个平台 发布:2025-05-19 18:42:39 浏览:530
华为畅玩5怎么取消锁屏密码 发布:2025-05-19 18:42:38 浏览:582
linuxrm文件夹 发布:2025-05-19 18:40:25 浏览:972
谭浩强c语言错误 发布:2025-05-19 18:39:33 浏览:951
安卓和苹果用流量哪个划算 发布:2025-05-19 18:38:04 浏览:408
安卓手机怎么设定背景墙 发布:2025-05-19 18:29:40 浏览:1001
androidstudio断点调试 发布:2025-05-19 18:20:23 浏览:766
abaqus如何配置证书 发布:2025-05-19 18:19:38 浏览:583