Внутренняя переменная GCC p.0? (Для чего предназначенна переменная GCC p.0)
Модератор: Модераторы разделов
-
c0redump
- Сообщения: 2
Внутренняя переменная GCC p.0?
Для чего предназначенна внутренняя переменная GCC p.0?
-
allez
- Сообщения: 2223
- Статус: Не очень злой админ :-)
- ОС: SuSE, CentOS, FreeBSD, Windows
Re: Внутренняя переменная GCC p.0?
Переменная с точкой в имени? Вы ничего не путаете? Расскажите, пожалуйста, где вам это встретилось.
-
c0redump
- Сообщения: 2
Re: Внутренняя переменная GCC p.0?
Damn Vulnerable Linux 1.5, /dvl/exploitmes_package_01/exploitme012/exploitme012.c:
--------------------------------------------------------------------
-----------------------------------------------------------------
$ gcc --version
gcc (GCC) 3.4.6
$ gcc -o temp ./exploitme012.c
$ nm temp | grep -e 'p\.0'
08049678 d p.0
-----------------------------------------------------------------
DVL 1.5 - дистрибутив основанный на BackTrack 2.0, который в свою очередь основан на Debian
--------------------------------------------------------------------
Код: Выделить всё
/**
* Mission: Overwrite the .dtors section
* Shellcode: Create a file `/tmp/exploitme-contest'
*
* Original author: Joel Eriksson <je@0xbadc0ded.org>
*/
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
unsigned long val = 31337;
unsigned long *lp = &val;
int main(int argc, char **argv)
{
unsigned long **lpp = &lp, *tmp;
char buf[128];
if (argc != 2)
exit(1);
strcpy(buf, argv[1]);
if (((unsigned long) lpp & 0xffff0000) != 0x08040000)
exit(2);
tmp = *lpp;
**lpp = (unsigned long) &buf;
*lpp = tmp;
exit(0);
}-----------------------------------------------------------------
$ gcc --version
gcc (GCC) 3.4.6
$ gcc -o temp ./exploitme012.c
$ nm temp | grep -e 'p\.0'
08049678 d p.0
-----------------------------------------------------------------
DVL 1.5 - дистрибутив основанный на BackTrack 2.0, который в свою очередь основан на Debian