Security News
Introducing the Socket Python SDK
The initial version of the Socket Python SDK is now on PyPI, enabling developers to more easily interact with the Socket REST API in Python projects.
@paulll/siso
Advanced tools
Фреймворк для автоматического анализа чего бы то ни было. Изначально задумывался для автоматического решения CTF-задач.
В основном похож на Dataflow Programming, но в данном случае мы оперируем единичными неизменяемыми единицами данных, а не их потоками, а "дуги" составляются автоматически в реальном времени, и не могут быть опредены заранее. Позаимствуем терминологию:
На вход подается некоторый первоначальный набор токенов (обычно исходные данные для анализа), затем система из узлов создает новые токены на основе существующих. Вновь появившиеся токены рассматриваются наравне с первоначальными, и так пока не будут обработаны все токены.
Подобный принцип хорошо подходит для обработки данных, структура которых заранее неизвестна: анализ социального графа; решение типовых ctf-задач, декомпозирующихся в более простые
Рекурсивная распаковка Base64:
import {ProcessorNode, Token, Executor, Context} from "@paulll/siso";
class Base64DecodeTextNode extends ProcessorNode {
public input = [["string"]];
public async process(ctx: Context, tokens: Token[]) {
const data = await tokens[0].data;
const decoded = Buffer.from(data, "base64");
// Если data в действительности содержала лишь base64
if (decoded.toString("base64") === data) {
return [new Token(["string"], decoded.toString("utf8"), 1)];
}
}
}
const executor = new Executor();
executor.addNode(new Base64DecodeTextNode());
const ctx = executor.run([
new Token(["string"], "U0dWc2JHOGdWMjl5YkdRaA==", 1),
]);
ctx.on("newToken", async (token: Token) => {
console.log(await token.data);
});
Здесь мы имеем всего один узел, который принимает на вход строку, и при обнаружении в ней base64-содержимого декодирует его, создавая новый токен. Новый токен поступает на вход того же узла, и так будет продолжаться, пока вся "матрешка" из base64 не декодируется.
FAQs
Simple Solve
The npm package @paulll/siso receives a total of 14 weekly downloads. As such, @paulll/siso popularity was classified as not popular.
We found that @paulll/siso demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
The initial version of the Socket Python SDK is now on PyPI, enabling developers to more easily interact with the Socket REST API in Python projects.
Security News
Floating dependency ranges in npm can introduce instability and security risks into your project by allowing unverified or incompatible versions to be installed automatically, leading to unpredictable behavior and potential conflicts.
Security News
A new Rust RFC proposes "Trusted Publishing" for Crates.io, introducing short-lived access tokens via OIDC to improve security and reduce risks associated with long-lived API tokens.