Вы используете устаревший браузер. Этот и другие сайты могут отображаться в нем неправильно. Необходимо обновить браузер или попробовать использовать другой.
Есть ли библиотеки по работе с оперативной памятью?
Так как программа не хочет выдавать параметр я хочу отыскать его адрес и считывать напрямую из оперативной памяти. Есть ли какие-то библиотеки по этому поводу.
Нашёл в глубинах интернета упоминание NomadMemory.au3 от Zevorc. Но то было для AutoIT 2.20 и она сейчас не поддерживается.
Угу... вроде есть такая, только о ней ни слова в хелпах и примеров нет. Я так и не понял какой функцией считать блок (адрес) памяти который я нашёл через ArtMoney или аналог. Там термины какие-то в описании, помимо того что на нерусском. С моим уровнем английского... точнее с моим уровнем знания терминов я в ней мало что понял. Прошу показать пример считывания хотя бы.
И так, то что мне удалось узнать. Каждый процесс получает блок памяти и каждый кусочик памяти имеет по сути два адреса: общий и внутренний. Разница между ними в системе отсчёта. Общий это когда ноль находится в ноле физической оперативной памяти (или около неё). Внутренний - это когда ноль находится в начале блока памяти выделенного процессу (или взятого им... во всяком случае используемом именно этим процессом) Для того чтобы правильно считать необходимый блок памяти надо сначало найти внутренний ноль. То начало блока памяти индивидуального процесса. Иначе с общим адресом на одной машине этот будет один адрес, на другой - другой; или даже на одной машине, но с разным набором процессов.
Теперь то что я понял исходя из этого в библиотеке Memory.au3 на вроде подходящую по смыслу функцию _MemRead():
Pointer to external memory = Внешний (общий) адрес.
Pointer to internal memory = Внутренний адрес
Size in bytes of memory to read/write = Размер в байтах считываемой/записавыемой памяти
tagMEMMAP structure - не понял
Смущает надпись: This function is used internally by Auto3Lib and should not normally be called = По идее эта функция только вспомогательная для других функций и в нормали не должна вызываться.
Вопросы:
1) Надо ли как-то предварительно обрабатывать память или можно просто считать напрямую?
2) Видел способ записи в виде 0х12345ABC... и просто 12345ABC... - Какая между ними разница и какой нам можно(нужно) применять в функциях?
3) Есть ли функция в такого типа: MemRead(имя процесса.ехе, внутренний адрес)?
OffTopic:
Для тех кому интересно - это я не игры ломаю, этоя пытаюсь узнать сколько страниц в документе у проги которая изначально интерфейсом из Линукс среды выросла (не могу считать напрямую из интерфейса)
Логику поримерно выстроил: надо привязаться к неизменяемым, постоянным и лучше уникальным значениям. Вычислить смещение между ними и потом читать по формуле НПУданные+смещение. Нашёл такие. И тут вопрос: как отыскать адрес по его значению? Только теперь уже силами AutoIT?
тоже интересна эта тема, но мне нужно сдампить всю память в файл.
сейчас буду качать ту UDF'ку, она читает память даже которая в файле подкачки?
как оно работает с нынешней бэтой?
странно лежит на сайте креатора, а с самого сайта нет упомянаний о ней.
Там про выбор процесса. Выбор процесса в моём скрипте каждый раз автоматический... Мигрирует сам адрес внутри памяти выделенной под процесс.
Читаю 10ый. Там получается что адреса просто сдвигаются, но у меня он прыгает, при том может прыгать во время работы самой программы, не обязательно её выключать, надо только ещё открыть новый документ. Как говорил выше, есть постоянные значения в этом куске. Посоветуйте, как отловить их без использование (тем более ручного) вспомогательных программ.
И так, есть два не понятных для меня термина: указатель и структура. Точнее не понятно откуда они берутся. С последним есть догадки - это целый блок памяти, содержащий сразу много адресов. А вот откуда берётся указатель, я не понял. Как его найти? Есть догадка, что как-то можно спросить систему "Какие указатели ведут к этому блоку памяти?" Я прав?