Извлечение переменных и их адресов в памяти?
Делаешь дамп памяти процесса и смотришь, какие области памяти содержат нужное значение. Проверяешь догадку. Проверяешь, не выделяется ли память динамически, возможно ищешь указатели на неё. Повторяешь для другого значения. В конце-концов получается карта памяти процесса. Затем делаешь программу, которая через ReadProcessMemory/WriteProcessMemory или аналоги читает/пишет нужные значения по нужным адресам.
"Как получить список всех переменных и их адреса в памяти из чужого другого процесса или запущенной игры"
Никак. Переменные не хранятся в памяти обычного процесса. Откомпилированная программа хранит данные по смещению адреса, а не по названию переменных.
"и изменить их."
Найти процесс, обратиться к ячейке памяти по адресу и изменить. Нужны базовые знания С++ и немного гугла.
"Короче, как реализовать на c++ программу как artmany. "
Если вы внимательно пользовались artmoney, то как минимум могли бы
1. правильно написать ее название
2. Заметить, что ArtMoney не ищет никаких переменных - с ее помощью можно просто искать адреса в памяти, а потом уже найденным адресам присвоить что-то типа имени, но это именно то, что придумали вы, а не переменные внутри процесса.