Я пишу приложение ac #, которое берет строку с любым понятным именем процесса (скажем, «блокнот») и читает память процесса.Это хорошо для чтения байтов, но я понятия не имею, если это int32s, chars, bools или другие типы данных.Одним из первых шагов к решению этой проблемы является знание того, как дополняются данные.Как я могу определить выравнивание данных в памяти?
Я понял, что это не так просто, как знать ОС или процессор.Якобы возможны различные упаковки даже тогда: http://www.developerfusion.com/article/84519/mastering-structs-in-c/
Итак, есть ли какой-нибудь пинвоук, который я мог бы использовать на дескрипторе процесса, чтобы прочитать какое-то значение, или, может быть, алгоритм, который считывает некоторые байты и проверяет, что он находит?
Мотивация (в случае, если у кого-то есть лучшее решение для моей конечной цели): я не хочу искать потенциальные значения int32 (или любой другой тип), просматривая относительный адрес 0,1,2,3и затем смотрю на 1,2,3,4 и так далее, если я могу помочь.Если память выровнена на 4 байта, я бы потратил много сил впустую, если бы я мог просто проверить 0,1,2,3 и перейти к 4,5,6,7.