Perl не печатает 0x00

360
java_noob

Я хотел поэкспериментировать с техникой NOP SLED. Я получил сани и шеллкод в переменную окружения и получил его адрес.
Поэтому я хотел выполнить уязвимую программу и в качестве аргумента использовать этот адрес повторно, проблема в том, что он содержит 0s (нули):0x00007fffffffe550

./program_vuln $(perl -e 'print "\x50\xe5\xff\xff\xff\x7f\x00\x00"') 

Perl не печатает нули, и адресация в стеке стала настолько испорченной.

1
Похоже, что это вопрос использования Perl, а не вопрос InfoSec. schroeder 9 лет назад 1
Perl используется в infoSec :) 9 лет назад 0
Но эксперт по Perl с нулевым знанием InfoSec также может ответить на этот вопрос, не так ли? schroeder 9 лет назад 0
Хотя приложение представляет собой InfoSec, основной проблемой является не проблема InfoSec, а проблема Perl. S.L. Barth 9 лет назад 0
Вы уверены, что это принадлежит Super User? Этот вопрос касается программирования и, скорее всего, относится к [так] вместо этого. bwDraco 9 лет назад 0
Проблема решена Штеффеном Ульрихом, пока вы, ребята, говорите, если это правильное место, чтобы оставить этот вопрос java_noob 9 лет назад 0

1 ответ на вопрос

1
Steffen Ullrich

This is not a problem with perl because it is obviously printing the 0x00:

perl -e 'print "\x50\xe5\xff\xff\xff\x7f\x00\x00"' | hd 00000000 50 e5 ff ff ff 7f 00 00 |P.......| 00000008 
Что сработало как шарм здесь? Стек больше не испортился? ott-- 9 лет назад 0