Если ASLR играет роль в IOS и рандомизирует начальный адрес кучи, то как получить начальный адрес текущего процесса и кучу процесса из pid?Как получить начальный адрес текущего процесса и кучу процесса из pid?
В aslr.c прилагается бумага: «iOS kernel Exploitation», кажется, что вы пытаетесь получить начальный адрес кода кучи текущего процесса.
void* heap = malloc(0);
Я проверяю код, обнаруживаю, что возвращаемое значение не является одинаковым. Согласно ISO/IEC 9899: СК2 (т.е. стандарт C99), §7.20.3 гласит:
Если размер запрашиваемого пространства равен нулю, то поведение определяется реализацией: либо возвращается нулевой указатель , или поведение такое, как если бы размер был некотором ненулевым значением, за исключением того, что возвращаемый указатель не должен использоваться для доступа к объекту.
Хммм, кажется, что получить начальный адрес кучи трудно. То, что я хочу сделать, это изменить значение переменной другого процесса, но если память переменной выделена в куче, ее адрес будет отличаться каждый раз, когда процесс перезагружается :(Поэтому я хочу проверить, относится ли относительная переменная адрес фиксирован. Если смещение фиксировано, получив начальный адрес кучи, я могу получить адрес переменной. – zsounder