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

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

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

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

14 ответов

18 просмотров

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

Временный КТ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). Если вас беспокоит перформанс - сделайте и вызывайте. Взламывать текущую реализацию питона не стоит. Для своих задач он нормально работает.

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

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

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
Ребят в СИ можно реализовать ООП?
Николай
33
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
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
Карта сайта