Release. мне надо прочитать память другого процесса и найти там некоторые строчки, как это сделать? здесь несколько проблем: если сделать ReadProcessMemory и в параметры кинуть Entry Point, полученный из функции GetModuleInformation, то число прочитанных байт очень мало (если сравнить с памятью, которую показывает таск менеджер), далее - ReadProcessMemory работает по-разному, в зависимости от разрядности процесса, который мы читаем. Не получается прочитать из проекта под х86 процесс, который 64бита...
Это не сделать никак без хаков: банально потому, что entry point может лежать не в первых 4Гб, которые можно адресовать из ReadProcessMemory под x86. Имхо, единственное переносимое решение без особых хаков - это перейти на amd64. Если говорить о хаках, то т.к. приложение всё равно выполняется на amd64 (ну считаем, что на древних процах это никто не будет запускать), то x86 выполняется под wow64, но приложение "по факту" всё равно amd64. Поэтому можно "переключиться" в amd64 (например, http://rce.co/knockin-on-heavens-gate-dynamic-processor-mode-switching/, вот тут пример для CreateRemoteThread https://pastebin.com/wQTDPTc0). Другим решением может быть загрузка своих dll (x86 и amd64) в адресное пространство другого процесса и передача данных любым способом в свой процесс.
Обсуждают сегодня