eXeLab
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
обновлён 2 декабря!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

Русский / Russian English / Английский

Сейчас на форуме: (+4 невидимых)
 · Начало · Статистика · Регистрация · Поиск · ПРАВИЛА ФОРУМА · Язык · RSS · SVN ·

 eXeL@B —› Основной форум —› Реверсинг под Linux
<< . 1 . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 10 . >>
Посл.ответ Сообщение


Ранг: 660.9 (! !)
Статус: Участник
ALIEN Hack Team

Создано: 18 февраля 2014 21:54 · Поправил: 8 июля 2016 13:41 ARCHANGEL New!
Цитата · Личное сообщение · #1

Уважаемые форумчане. Знаю, что данный ресурс создавался для обсуждения тем, связанных с ОС Windows. Но ведь есть уже разделы по андроиду, по flash, по дотнету. Эти все темы не совсем связаны с Windows, точнее сказать, весьма далеки от исследования нативных приложений под винду, поэтому мне кажется логичным обсуждение ос семейства Linux.

Так исторически сложилось, что мне приходится тратить некоторое время на изучение этой темы, а изучать-то и нечего. Есть литература по администрированию Linux, но вот хорошей добротной (и свежей) инфы по линуксу практически нет.

Есть мысли разделить найденный материал на несколько категорий, т.к. благодаря людям с форума и гуглу появилась хоть какая-то инфа.

Настройка рабочей среды
Подраздел охватывает темы, прямо или косвенно связанные с установкой, настройкой и подготовкой к работе ОС Linux.
--> Настройка сети в VirtualBox <--
--> Установка VirtualBox Guest Additions в Kali<--
--> Linux. Карманный справочник. Скотт Граннеман <--
--> Инструменты кросскомпиляции для ARM <--
--> Компилятор GNU GCC<--
--> Команды Linux <--
--> Удалённая отладка с помощью gdbserver и Ida Pro <--
--> Обзор инструментария для исследований (не первой свежести обзор) <--
--> Удаленная отладка в Linux при помощи связки GDB-gdbserver <--

Введение в устройство ОС
Подраздел в общем и целом, без низкоуровневых деталей и кода, описывает устройство ОС. Поверхносто, но нужно для общего представления.
--> Анатомия ядра Linux<--
--> Исследование ядра Linux'а<--
--> Anatomy of Linux dynamic libraries <--
--> Обзор Linux <--
--> Динамическое связывание библиотек в Windows и Linux <--
--> Linkers and Loaders Guide <--

Программирование
Подраздел посвящён системному программированию под Linux.
--> Ядро Linux в комментариях<--
--> Pro Linux Embedded System <--
--> Linux Device Drivers, Third Edition <--
--> Знакомство с межпроцессным взаимодействием на Linux <--
--> Ещё одна книга по модулям ядра <--
--> Netlink Library <--
--> Kernel API Reference <--
--> Литература по программированию модулей ядра <--

Статьи по реверсингу

2002-2004 год:
--> Reverse Engineering Linux x86 Binaries <--
--> Reverse Engineering Linux ELF Binaries on the x86 <--
--> Reverse Engineering using the Linux Operating System.<--

Другие статьи:
--> Отладка двоичных файлов под gdb <--
--> Особенности национальной отладки в UNIX <--
--> Погружение в технику и философию gdb (окончание) <--
--> Детальный анализ бэкдора Linux/Ebury <--
--> 8 gdb tricks you should know <--

Разное

Касперски --> Искусство дизассемблирования<--
--> Linux System Call Table for x86_64 <--
--> System call tables x86 (BoRoV настоятельно рекомендует) <--
--> Отладка с помощью GDB <--
--> Команды GDB<--
--> Что делать, если отлаживаемый процесс форкается <--
--> Про способы внедрения кода в чужое адресное пространство <--
--> Обзор защит программного обеспечения под Linux <--
--> How to build your own kernel on Ubuntu <--
--> EDB - оллиподобный отладчик для х86/x64 <--
--> По многочисленным просьбам трудящихся - Таблица syscall'ов под ARM <--

| Сообщение посчитали полезным: VodoleY, OnLyOnE, Carpe DiEm, hors, ELF_7719116, =TS=, verdizela, Tony_Stark, mak, anonymous, synthetic, rd111


Ранг: 300.0 (мудрец)
Статус: Участник

Создано: 24 июля 2014 08:31 New!
Цитата · Личное сообщение · #2

vden пишет:
Тогда вопрос отловить переход в защищенный режим.

либо найти дальний jmp для перехода и протрейсить, либо по старинке влепить EB FE где уже заведомо известно что работает в защищенном режиме

| Сообщение посчитали полезным: vden


Ранг: 112.9 (ветеран)
Статус: Участник

Создано: 24 июля 2014 10:19 · Поправил: vden New!
Цитата · Личное сообщение · #3

Спасибо. Переход нашел

Code:
  1. cli
  2. ...
  3. lidt    fword ptr ...
  4. lgdt    fword ptr ...
  5. mov     eax, cr0
  6. inc     ax
  7. mov     cr0, eax    // cr0 |= 1
  8. jmp     far ptr ... // now in protected mode



Сработала остановка. Проблема была в том что page table не была построена и ида не могла рассчитать адреса.

ida 6.6 + bochs 2.5.1


Ранг: 533.6 (!)
Статус: Uploader
retired

Создано: 5 сентября 2014 22:28 · Поправил: BoRoV New!
Цитата · Личное сообщение · #4

Нужно было написать под арм на сисколах, но многие не соответствовали x86 значениям и вобще информации по ним было мало, но мне помогли найти это список всех значений, т.ч. думаю может это еще кому то понадобится.
http://lxr.free-electrons.com/source/arch/arm/include/uapi/asm/unistd.h


Ранг: 222.3 (наставник)
Статус: Участник

Создано: 21 сентября 2014 12:41 New!
Цитата · Личное сообщение · #5

Не знаю что делать дальше, имеем упакованный бинарник, чем упакован - непонятно, под ним "проглядывается" UPX. Сложность в том что все вызовы API производятся через system call'ы, это в принципе не мешает. Но уж очень мешает system call "clone", который вызывает копию процесса судя по манам и СДК всяким. Понять какой EIP устанавливается у вновь созданного процесса невозможно, зацепиться как за форкаемый процесс из-под gdb - тоже не получается, про "set follow-fork-mode child" и "set detach-on-fork on" я в курсе - они не помогают когда работа производится через system call'ы.

В бинарнике имеется антиотладка на system call ptrace, обходится легко с помощью "catch syscall ptrace" и при срабатывании бряка si ну и set $eax=0

Может быть кто подскажет как вытащить .java class'ы или .jar которые выполняются в "клонированном процессе". И уж очень интересует как же всё таки зацепиться за новый процесс(узнать его EIP а дальше уж я сам )

Подопытный:

Инсталляционный .rpm:
http://rghost.ru/private/58125779/a62e451136991ca0fc1a2dc9a9d4be4e
Развернутый .rpm(для тех у кого rpm не поддерживаются, но может помочь отладить)
http://rghost.ru/private/58125790/653970dadf5e8101301f2ee0db1bd0c5

На всякий ява к которой он привязан:
http://rghost.ru/private/58125886/865915786e49cd2b8eaeb69e867d2cfd


Ранг: 1015.9 (!!!!)
Статус: Участник

Создано: 21 сентября 2014 14:35 New!
Цитата · Личное сообщение · #6

ида чудно отлаживает этот упх
который почти целиком дампится http://rghost.ru/58127796
ну и дальше сами проявляйте смекалку

| Сообщение посчитали полезным: HandMill



Ранг: 660.9 (! !)
Статус: Участник
ALIEN Hack Team

Создано: 1 октября 2014 17:54 New!
Цитата · Личное сообщение · #7

Кто-то, возможно, знает или видел где-то методику получения в ядре списка загруженных модулей. Если видели - бросьте ссылку


Ранг: 1015.9 (!!!!)
Статус: Участник

Создано: 1 октября 2014 17:57 New!
Цитата · Личное сообщение · #8

lsmod ?


Ранг: 660.9 (! !)
Статус: Участник
ALIEN Hack Team

Создано: 1 октября 2014 18:08 New!
Цитата · Личное сообщение · #9

reversecode
cat /proc/modules скорее тогда, вот только как список в ядре найти?


Ранг: 1015.9 (!!!!)
Статус: Участник

Создано: 1 октября 2014 18:14 New!
Цитата · Личное сообщение · #10

ls /boot/config*
там список тех что был вкомпилен


Ранг: 660.9 (! !)
Статус: Участник
ALIEN Hack Team

Создано: 1 октября 2014 18:26 New!
Цитата · Личное сообщение · #11

Там он не вкомпилен


Ранг: 1015.9 (!!!!)
Статус: Участник

Создано: 1 октября 2014 18:33 · Поправил: reversecode New!
Цитата · Личное сообщение · #12

ну тогда ida руки
можно еще man strings почитать и всякие другие утилиты objdump итд


Ранг: 462.8 (мудрец)
Статус: Участник
Only One!

Создано: 6 октября 2014 15:48 · Поправил: OnLyOnE New!
Цитата · Личное сообщение · #13

Господа. Подскажите, где взять пример лоадера (мемори патчинг) для ELF?

Задача.
1. Создать процесс.
2. Дождаться распаковки (UPX)
3. Пропатчить байты в памяти (в самом файле)
4. Отпустить на выполнение.
5. Завершить работу лоадера.


Ранг: 660.9 (! !)
Статус: Участник
ALIEN Hack Team

Создано: 6 октября 2014 16:42 New!
Цитата · Личное сообщение · #14

OnLyOnE
--> Debugging with ptrace<--
--> Перехват системных вызовов с помощью ptrace <--
--> Playing with ptrace <--

Суть в том, чтоб юзать ptrace. Можно просто патчить память, можно делать что-то на подобие отладчика.

| Сообщение посчитали полезным: OnLyOnE



Ранг: 1015.9 (!!!!)
Статус: Участник

Создано: 6 октября 2014 19:46 New!
Цитата · Личное сообщение · #15

да можно и просто писать в /proc/PID/mem
--> Link <--
и там же пример --> Link <--

| Сообщение посчитали полезным: OnLyOnE



Ранг: 462.8 (мудрец)
Статус: Участник
Only One!

Создано: 9 октября 2014 13:59 New!
Цитата · Личное сообщение · #16

Господа.
Возник вопрос по системной функции __NR_kexec_load
не могу найти на ее описалово, что делает и какие и как передаются параметры в нее..
если не сложно, скинте инфу..
Заранее примного благодарен!


Ранг: 1015.9 (!!!!)
Статус: Участник

Создано: 9 октября 2014 14:07 New!
Цитата · Личное сообщение · #17

это макрос а не функция
ну гугл
https://github.com/Tasssadar/kexec-tools/blob/master/kexec/kexec-syscall.h
или вот поиск по всем соурсам линукса
любое ключевое слово на будущее
http://lxr.free-electrons.com/ident?i=__NR_kexec_load


Ранг: 462.8 (мудрец)
Статус: Участник
Only One!

Создано: 9 октября 2014 14:32 New!
Цитата · Личное сообщение · #18

reversecode

короче задача какая.. я пишу партабл код под линь..
в сях есть функа execl она типа загружает образ исполняемого файла в память и возвращает управление в родительский процесс.. тобишь в мой код.. в системных вызовах есть только __NR_execve которая при удачном выполнении управление в мой код не возвращает.. так вот вопрос
как загрузить образ и вернуть в мой код управление?
перед execve выполняю fork и ptrace с флагом PTRACE_TRACEME .. так после этого виснут и мой процесс и пораждаемый...
ну короче че делать?

P.S. По моиму пора создать ветку "Программирование под Linux"


Ранг: 1015.9 (!!!!)
Статус: Участник

Создано: 9 октября 2014 14:59 New!
Цитата · Личное сообщение · #19

потому что надо делать fork а там уже execl
результат fork анализировать что бы понять ты уже в новом запущенном процессе или ты еще в старом где выполняешь
а иначе ты свой процесс заменяешь тем что запустил и ...
вроде как то так


Ранг: 462.8 (мудрец)
Статус: Участник
Only One!

Создано: 9 октября 2014 15:22 · Поправил: OnLyOnE New!
Цитата · Личное сообщение · #20

reversecode
fork - возвращает id созданного процесса и все.. и я еще нахожусь в своем коде.. т.к. могу получить эти данные
P.S. Ктонить может объяснить как вызвать execve так чтобы вернуться обратно в свой код?
по описалову все разновидности exec... это обвязка единственного системного вызова execve.

Ранг: 71.6 (постоянный)
Статус: Участник

Создано: 9 октября 2014 18:17 New!
Цитата · Личное сообщение · #21

execve() does not return on success, and the text, data, bss, and stack of the calling process are overwritten by that of the program loaded.

If the current program is being ptraced, a SIGTRAP is sent to it after a successful execve().


Ранг: 462.8 (мудрец)
Статус: Участник
Only One!

Создано: 9 октября 2014 18:35 New!
Цитата · Личное сообщение · #22

ValdikSS
яж грю что управление после execve я теряю.


Ранг: 222.3 (наставник)
Статус: Участник

Создано: 9 октября 2014 19:06 New!
Цитата · Личное сообщение · #23

OnLyOnE, я так понимаю ты лоадер пишешь, вот тебе готовый отладочный двиг на ptrace: --> Link <--
там же ты найдёшь и примеры использования библиотеки

| Сообщение посчитали полезным: OnLyOnE



Ранг: 462.8 (мудрец)
Статус: Участник
Only One!

Создано: 9 октября 2014 20:16 New!
Цитата · Личное сообщение · #24

HandMill
Спасибо Бро)) поковыряем..


Ранг: 462.8 (мудрец)
Статус: Участник
Only One!

Создано: 15 октября 2014 12:02 · Поправил: OnLyOnE New!
Цитата · Личное сообщение · #25

Господа.
Вновь возник вопрос. Необходимо модифицировать уже готовый ELF. Но необходимых API для внедряемого кода в ELF нет. API из LIBC. Она подгружается вместе с файлом. ELF импортирует API но не те, что нужны. Возможно каким либо способом или добавить в таблицу импорта необходимые API? Или есть ли аналог GetProcAddress, GetModuleHandle в линуксе, чтобы динамически получить адреса необходимых API?

Ранг: 580.2 (!)
Статус: Модератор

Создано: 15 октября 2014 12:12 New!
Цитата · Личное сообщение · #26

OnLyOnE
А LD_PRELOAD не поможет?


Ранг: 164.6 (ветеран)
Статус: Участник
Волшебник

Создано: 15 октября 2014 12:13 New!
Цитата · Личное сообщение · #27

dlopen(), dlsym(), dlclose(), dlerror()

| Сообщение посчитали полезным: OnLyOnE


Ранг: 390.7 (мудрец)
Статус: Участник
"Тибериумный реверсинг"

Создано: 19 октября 2014 10:31 · Поправил: ELF_7719116 New!
Цитата · Личное сообщение · #28

Nvidia портировала PhysX на Linux
--> Link <--
соответствующие тузлы и утилиты качать тут --> тут <--. оминь!

Ранг: 488.4 (мудрец)
Статус: Участник

Создано: 6 ноября 2014 00:52 · Поправил: VodoleY New!
Цитата · Личное сообщение · #29

знакомый както давал линку.. http://eduard-x.blogspot.ru/2011/05/linux.html арх, решай сам, или прибей к шапке, или пусть в топике живет. искать пришлось.. пусть тут будет как хистори
ну и там дальше по ссылкам http://www.codef00.com/projects#debugger
https://forum.antichat.net/showthread.php?p=416604
АДД
Развлечения со strace и отладчиком GDB
http://www.ibm.com/developerworks/ru/library/au-unix-strace/

Ранг: 488.4 (мудрец)
Статус: Участник

Создано: 20 февраля 2015 08:46 New!
Цитата · Личное сообщение · #30

чтото топик давно не апался..))
http://habrahabr.ru/post/251053/
Удаленная отладка в Linux при помощи связки GDB-gdbserver


Ранг: 660.9 (! !)
Статус: Участник
ALIEN Hack Team

Создано: 26 февраля 2015 17:32 New!
Цитата · Личное сообщение · #31

Возник вопрос, но в гугле инфа не находится. Изначально хотелось бы на линуксе получить тулу, похожую на старый добрый FileMon в винде (нынче это Process Monitor). Поясню суть - хочу знать, какой процесс (id) к какому файлу обращается. После поиска в гугле, нашёл, что есть inotifytools. В принципе, почти то, что нужно, но не показывает, какой процесс обращается к файлам - просто показывает, что событие обращения имело место. Может, есть что-то готовое, чтоб велосипед не изобретать?
<< . 1 . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 10 . >>
 eXeL@B —› Основной форум —› Реверсинг под Linux

Оригинальный DVD-ROM: eXeL@B DVD !

Вы находитесь на форуме сайта EXELAB.RU
Проект ReactOS