Всем привет, недавно узнал о возможности вызова функций BAS из node js, для меня это оказался очень удобный способ написания кода, но я столкнулся с одной очень неприятной ошибкой при компиляции скрипта
Если я компилирую скрипт без защиты то он срабатывает правильно
Если я компилирую скрипт с использованием защиты то скрипт крашится на вызове await BAS_API
вот node js код на котором скрипт крашится
try {
await execute_code(`_sa = function(id) {\nVAR_LIST_ACTIONS_ID.push(id);\nScriptWorker.SetCurrentAction(id);\n}`);
} catch (error) {
throw `Ошибка в программе: ${error}`;
}
async function execute_code(code){
console.log(("_HEX:" + Buffer.from(code, "utf8").toString("hex")));
await BAS_API(("_HEX:" + Buffer.from(code, "utf8").toString("hex")));
}
но если я заменяю код на такой предварительно зашифрованный
try {
await BAS_API("_HEX:5f7361203d2066756e6374696f6e28696429207b0a5641525f4c4953545f414354494f4e535f49442e70757368286964293b0a536372697074576f726b65722e53657443757272656e74416374696f6e286964293b0a7d")
} catch (error) {
throw `Ошибка в программе: ${error}`;
}
async function execute_code(code){
console.log(("_HEX:" + Buffer.from(code, "utf8").toString("hex")));
await BAS_API(("_HEX:" + Buffer.from(code, "utf8").toString("hex")));
}
то скрипт нормально работает
я думаю лучше всего будет сделать один рабочий скрипт и при необходимости его скомпилировать - скопировать его и заменить вызовы execute_code на BAS_API
кто нибудь знает как в BAS можно автоматизировать такую замену действий? Есть ведь в BAS функция "Обновить действия проекта" - она проходится по всем действиям проекта, может есть способ подкорректировать её код, чтобы она автоматически заменяла действия в node js?
Вот тестовый скрипт с предварительно зашифрованным действием temp.xml
Вот тестовый скрипт без предварительного шифрования действия temp.xml