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

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

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

Linux
  #1  
Старый 19.05.2009, 23:06
WhiteHat
Новичок
Регистрация: 09.01.2009
Сообщений: 3
Провел на форуме:
5295

Репутация: 0
По умолчанию Linux

Добрый вечер, Уважаемые. Пишу диплом по информационной безопасности. Встал в ступор:
пишу маленький код:
Код:
#include <sys/types.h>  
#include <unistd.h> 

int main()  
{          
        setuid(666);         

 return 0;  
}
Далее все это дело компилю:

Код:
gcc myprog.c -o myprog -g --static
тут я подключаю опцию отладки и функции, находящиеся в разделяемых библиотеках (хотя по поводу --static я не уверен, надо ли).

Так дальше:

Код:
gdb -q ./myprog
(gdb)disassemble main
и ищю строку вызова setuid

Далее дизассемблю setuid и ищю вызов ядра (прерывание $0x80)

Дальше я слегка запутался

Знаю, что в регистр %eax заносится номер системного вызова. Посмотрел в /usr/include/asm/unistd.h и нашел setuid, он равен 23. Аргумент 666 полетит в регистр, скажем %ebx. Какой уникальный номер у setuid я не знаю, для EXIT знаю 0x1.

Вообщем прошу помощи, нужно найти в отладчике gdb, как происходит вызов setuid и далее это дело перевести в шестнадцатиричное представление.

Перевести сам смогу, помогите найти кусок кода в gdb, где происходит вызов setuid.

Заранее благодарен всем!!!!
 
Ответить с цитированием

  #2  
Старый 20.05.2009, 01:41
razb
Постоянный
Регистрация: 24.03.2009
Сообщений: 670
Провел на форуме:
2868783

Репутация: 414


Отправить сообщение для razb с помощью ICQ
По умолчанию

Если я правильно понял суть вопроса, то тебе надо код на асме вызова setuid() ?
Ну вот держи:
Код:
    movl $23, %eax  # $23  - setuid system call number
    movl $666, %ebx # $666 - rights
    int $0x80       # call setuid()
Кстате на 64х битной архитектуре номера системных вызовов отличные от 32х битной. Например на 32х setuid = 23, а на 64х setuid = 105

Последний раз редактировалось razb; 20.05.2009 в 01:54..
 
Ответить с цитированием

  #3  
Старый 20.05.2009, 02:12
WhiteHat
Новичок
Регистрация: 09.01.2009
Сообщений: 3
Провел на форуме:
5295

Репутация: 0
По умолчанию

Спасибо, razb. Уже сам разобрался, пока ответы ждал. Но все равно спасибо.
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Linux Foundation получила в свое распоряжение домен Linux.com WAR!9G Мировые новости 1 05.03.2009 02:07
На одном из мощнейших суперкомпьютеров СНГ внедрена платформа ALT Linux PaLb14 Мировые новости 0 24.12.2008 20:19
FAQ по установке Linux »Atom1c« *nix 19 18.12.2006 01:58
«Лаборатории Касперского»: Количество вредоносных программ под Linux резко возросло dinar_007 Мировые новости 9 20.08.2006 20:50



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


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




ANTICHAT.XYZ