首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用xor Jscript WSH加密二进制文件

使用xor Jscript WSH加密二进制文件
EN

Stack Overflow用户
提问于 2021-07-27 11:47:00
回答 1查看 56关注 0票数 0

当使用xor加密来加密字符串时,一切都运行得很好。但在处理字节时,它不适用于。它在k.charCodeAt(0)抛出错误,可能是什么问题?这是我的完整代码。

代码语言:javascript
复制
function Main() {
var key;

key = "thisistheencryptionkey";

WScript.Echo("Encryption started . . .");
Crypt( "C:\\xxx\\xxx\\file.exe", "C:\\xxx\\xxx\\fileenc.txt", key );
WScript.Echo("Decryption started . . .");
Crypt( "C:\\xxx\\xxx\\fileenc.txt", "C:\\xxx\\xxx\\file.exe", key );
WScript.Echo("Finished!");}

function Crypt(fileIn, fileOut, key) {
var fileInRead, objFSOFile;
objFSOFile = new ActiveXObject( "Scripting.FileSystemObject" );
var e = objFSOFile.getFile(fileIn);
var fileSize = e.size;
key = key;
while (key.length < fileSize) {
    key += key;
}

var adTypeBinaryWrite = 1;
var adSaveCreateOverWrite = 2;
var BinaryStreamWrite;
BinaryStreamWrite = new ActiveXObject("ADODB.Stream");
BinaryStreamWrite.Type = adTypeBinaryWrite;
BinaryStreamWrite.Open();


var adTypeBinary = 1;
var BinaryStream;
BinaryStream = new ActiveXObject("ADODB.Stream");
BinaryStream.Type = adTypeBinary;
BinaryStream.Open();
BinaryStream.LoadFromFile(fileIn);

var k, ss, q;
i = 0;
do {
    q = key.substr(i, 1);
    k = BinaryStream.Read(1);

    ss = q.charCodeAt(0);
    BinaryStreamWrite.Write(String.fromCharCode(k.charCodeAt(0) ^ ss));
    i = i + 1;
} while (!BinaryStream.EOS);

BinaryStream.close();

BinaryStreamWrite.SaveToFile(fileOut, adSaveCreateOverWrite);
BinaryStreamWrite.close();}

EDIT: Error表示:对象预期错误代码: 800A138F

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-07-27 18:28:15

在测试了许多不起作用的东西之后,这就是对我有效的方法和它的实现。

https://stackoverflow.com/a/33336942/16533513

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68538697

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档