欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

php 异或解密!写一个解密方法,求大神们帮助一下!

程序员文章站 2022-05-17 21:32:54
...
ì=ŠÊúiÚúêšúêjiêúÚºúºêêêjÚªúziújizúÚúšÚzizúÚúšÚziꊺŠÚjšiêiÚúzúêiêÚiꊚºiÚzÊiÚúúiêúŠÚiªúijšÊÚiêúiÚúÊŠêiªiêúšzªÚiúiúiúiúiúiúiúiúiúiúiúiúiúiúiúiúiúiúiúiúiúiúiúiúiúiúiúiúiúiúiúiúiúiúiúiúiúiúiúiúiúiúiúiúiúiúiúi
以上是加密文件wininfo_QL730_2016019.ffl里的东西~~。
加密规则:

(1) 所有下传FTP文件内容全部加密存储,数据加密方法:每字节首先异或0x9f,然后高4位和低4位交换顺序。
(2) 所有下传、上传通讯数据包和返回数据包内容全部加密,数据加密方法:每字节首先异或0x9f,然后高4位和低4位交换顺序。
(3) 所有数据包中各内容段采用“TAB键” 分割。
(4) 所有数据包格式描述内容和例子中的“+”号只是用于表示字段连接关系,实际不包含在数据包中。
(5) 为描述准确,所有例子中的“ ”(TAB键)均用汉字“+TAB键+”表示。
(6) 所有下传通讯数据包大小固定为100字节,对端返回数据包大小固定为40字节,当下传通讯数据包和返回数据包实际内容小于固定长度则以’\0’(ascii 0)补足长度,例如下传通讯数据内容实际大小为80字节,则补充20字节的’\0’(ascii 0)形成100字节的下传通讯数据包,同理对于下传通讯数据的返回数据内容“858939+TAB键”实际大小为7字节,则补充33字节的’\0’(ascii 0)形成40字节下传通讯数据的返回数据包。
(7) 所有上传通讯数据包大小固定为400字节,对端返回数据包大小固定为40字节,当上传通讯数据包和返回数据包实际内容小于固定长度则以’\0’(ascii 0)补足长度,例如上传通讯数据内容实际大小为320字节,则补充80字节的’\0’(ascii 0)形成400字节的上传通讯数据包,同理对于上传通讯数据的返回数据内容“858939+TAB键”实际大小为7字节,则补充33字节的’\0’(ascii 0)形成40字节上传通讯数据的返回数据包。
(8) 所有下传和上传通讯数据包内容为:命令字符串+TAB键+长整型(4字节)随机码转换的字符串+TAB键+长整型(4字节)指定内容长度转换的字符串+TAB键+指定内容+TAB键,长整型(4字节)随机码范围为100000—999999。
(9) 所有下传和上传通讯数据包不足指定长度时先做‘\0’填充,然后再加密。


求写一个能自动打开此文件解密的程序~~跪求了~,俺初学PHP,未接触过此方面的东西~~,谢谢众神了~


回复讨论(解决方案)

你把加密文件放到网盘上


echo base64_encode(file_get_contents('wininfo_QL730_2016019.ffl'));
贴出结果

7D2Kyvpp2vrqmvrqamnq+tq6+rrq6upq2qr6emn6aml6+tr6mtp6aXr62vqa2npp6oq6itpqmmnqadr6evrqaeraaeqKmrpp2nrKadr6+mnq+oraaar6aWqaytpp6vpp2vrKiuppqmnq+pp6qtpp+mn6afpp+mn6afpp+mn6afpp+mn6afpp+mn6afpp+mn6afpp+mn6afpp+mn6afpp+mn6afpp+mn6afpp+mn6afpp+mn6afpp+mn6afpp+mn6afpp+mn6afpp+mn6aQ==


这是echo base64_encode(file_get_contents('wininfo_QL730_2016019.ffl'));的结果

$s = base64_decode('7D2Kyvpp2vrqmvrqamnq+tq6+rrq6upq2qr6emn6aml6+tr6mtp6aXr62vqa2npp6oq6itpqmmnqadr6evrqaeraaeqKmrpp2nrKadr6+mnq+oraaar6aWqaytpp6vpp2vrKiuppqmnq+pp6qtpp+mn6afpp+mn6afpp+mn6afpp+mn6afpp+mn6afpp+mn6afpp+mn6afpp+mn6afpp+mn6afpp+mn6afpp+mn6afpp+mn6afpp+mn6afpp+mn6afpp+mn6afpp+mn6aQ==');$res = '';foreach(unpack('C*', $s) as $c) {  $l = ($c & 0xf0) >> 4;  $h = ($c & 0x0f)   
QL730	2016019	10240411192508	09	8020628	8020628	1747296	1	20801	12	1764	283	200	1072	50	9632	10	20371	5	106852	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	

恩恩~亲~然后如何操作呢?

那我怎么知道?
我只负责帮你解密,具体那些数据有什么用,只有你知道

非常感谢你的帮助~~我刚才是没看懂~现在OK了~