2015-06-16 4 views
0

Я читал эту книгу: Hacking, the art of exploitationNop Sled, вы можете мне это объяснить?

На странице 140, книга объясняет NOP Slide:

Мы создадим большой массив (или салазки) эти инструкции NOP и поместить его перед шелковым кодом; то, если регистр EIP указывает на любой адрес, найденный в салазках NOP, он будет увеличиваться при выполнении каждой инструкции NOP, один на , до тех пор, пока он, наконец, не достигнет шеллкода. Это означает, что до тех пор, пока обратный адрес не будет перезаписан каким-либо адресом, найденным на санях NOP, регистр EIP спустит сани на шелковый код, который будет выполняться должным образом.

Но с этой техникой мы бы переписывали обратный адрес 0x90, не так ли ?. EIP перейдет к 0x90, что вызовет segfault. Итак, можете ли вы объяснить эту технику мне ясно? Спасибо :)

+0

Сани не записаны в обратный адрес, они используются для увеличения размера цели, так что ее легче ударить с помощью повторного обратного адреса. – forsvarir

ответ

0

Нет, вы не будете переписывать обратный адрес с санями NOP. Как только вы получите нужный сдвиг, вам нужно переписать адрес возврата с адресом, что указывает где-то в ваши инструкции NOP. И поскольку салфетка NOP помещается перед вашим шеллкодеком, она просто сдвинется вниз и выполнит ваш шеллкод. Так что 60 байтов NOP-саней ничего не делают.

Это потому, что (вы можете найти все, что об этом, в этой книге):

NOP является инструкцией сборки, которая является аббревиатурой «нет операции». Это однобайтная инструкция, которая абсолютно ничего не делает.

Смежные вопросы