169 похожих чатов

Может, вычислить в памяти процесса интерпретатора значение переменной, прочитать её,

прибавить 5, и насильно записать?

У меня только такой вариант.

14 ответов

21 просмотр

Твой вариант предполагает делать это внешними средствами

Временный КТ315- Автор вопроса
The Bird of Hermes
Твой вариант предполагает делать это внешними сред...

Почему? Нет, в Python есть модули для работы с памятью процессов.

Временный КТ315- Автор вопроса
The Bird of Hermes
Там разве есть прямая работа с памятью?

Не знаю, но функции типа WriteProcessMemory и ReadProcessMemory точно есть. Можно прочитать как байты и положить. Но не знаю, как это будет работать на практике. Python интерпретатор по-любому параллельно оперирует с данными, где-то может не успеть измениться значение, и получится всё криво.

Вот я бы не рискнул лезть туда, где кто-то ещё копается

Временный КТ315- Автор вопроса
The Bird of Hermes
Вот я бы не рискнул лезть туда, где кто-то ещё коп...

Я бы рискнул)) чат же по ассемблеру. Нет ничего невозможного. На крайний случай, можно весь Python интерпретатор в памяти пропатчить, искать паттерн по всей памяти, лишь бы изменить эту переменную любой ценой))

Временный КТ315
Я бы рискнул)) чат же по ассемблеру. Нет ничего не...

Зачем такие сложности, когда можно средствами самого питона безопасно это сделать

Временный КТ315- Автор вопроса
The Bird of Hermes
Зачем такие сложности, когда можно средствами само...

Так тут нет сложностей. Наоборот, это самое простое, что можно сделать. Тут минимум вычислений происходит, читаешь память, прибавляешь, записываешь в память.

Временный КТ315- Автор вопроса
The Bird of Hermes
Только сначала тебе её ещё надо найти

Да. Найти и сделать просто +5. Сложность только в найти. А в твоём варианте нужно изменить саму структуру строки.

Временный КТ315
Да. Найти и сделать просто +5. Сложность только в ...

Не нужно менять структуру. Она и так является массивом

Временный КТ315
Покажи кодом свой вариант.

Ну что-то типа A = "11" B = ord(A[0]) + 5 If B>255: A[1]=chr(ord(A[1]) + 1) A[0]=chr(B%255)

Временный КТ315
Я бы рискнул)) чат же по ассемблеру. Нет ничего не...

Мне кажется что у каждой вещи есть свое предназначение. У питона есть интерфейс вызова внешних функций (.lib, .o). Если вас беспокоит перформанс - сделайте и вызывайте. Взламывать текущую реализацию питона не стоит. Для своих задач он нормально работает.

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта