Ну, есть вызов кода операции (указатели на функции реализованы таким образом, в конце концов), но это не сильно поможет (и то, как вы в первую очередь получите адрес в eax, для меня загадка - это очень вряд ли думаю)
В конце концов, вам все равно нужно, чтобы стек был выполнимым (в противном случае сохраненный там код операции не принесет особой пользы) и знает его адрес, чтобы вы могли к нему перейти. Есть способы обойти эти средства защиты, но это не так просто - хотя я уверен, что вы можете найти достаточно статей по этой теме с небольшим поиском в Google - но если у вас есть возможность обойти ASLR и NX, вам не нужно возвращаться к libc атакует больше, потому что у вас уже есть контроль над системой.