Сейчас на форуме: -Sanchez- (+7 невидимых)

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


Ранг: 681.5 (! !), 405thx
Активность: 0.420.21
Статус: Участник
ALIEN Hack Team

Создано: 18 февраля 2014 21:54 · Поправил: ARCHANGEL
· Личное сообщение · #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 <--

-----
Stuck to the plan, always think that we would stand up, never ran.


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

Ранг: 301.4 (мудрец), 194thx
Активность: 0.170.01
Статус: Участник

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

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

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

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

Ранг: 112.9 (ветеран), 186thx
Активность: 0.090.01
Статус: Участник

Создано: 24 июля 2014 10:19 · Поправил: vden
· Личное сообщение · #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 (!), 232thx
Активность: 0.450
Статус: Uploader
retired

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

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

-----
Лучше быть одиноким, но свободным © $me




Ранг: 222.2 (наставник), 115thx
Активность: 0.140.01
Статус: Участник

Создано: 21 сентября 2014 12:41
· Личное сообщение · #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

-----
все багрепорты - в личные сообщения





Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

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

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

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


Ранг: 681.5 (! !), 405thx
Активность: 0.420.21
Статус: Участник
ALIEN Hack Team

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

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

-----
Stuck to the plan, always think that we would stand up, never ran.





Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

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

lsmod ?




Ранг: 681.5 (! !), 405thx
Активность: 0.420.21
Статус: Участник
ALIEN Hack Team

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

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

-----
Stuck to the plan, always think that we would stand up, never ran.





Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

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

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




Ранг: 681.5 (! !), 405thx
Активность: 0.420.21
Статус: Участник
ALIEN Hack Team

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

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

-----
Stuck to the plan, always think that we would stand up, never ran.





Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

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

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




Ранг: 462.8 (мудрец), 468thx
Активность: 0.280
Статус: Участник
Only One!

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

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

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

-----
aLL rIGHTS rEVERSED!





Ранг: 681.5 (! !), 405thx
Активность: 0.420.21
Статус: Участник
ALIEN Hack Team

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

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

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

-----
Stuck to the plan, always think that we would stand up, never ran.


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


Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

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

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

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


Ранг: 462.8 (мудрец), 468thx
Активность: 0.280
Статус: Участник
Only One!

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

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

-----
aLL rIGHTS rEVERSED!





Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 09 октября 2014 14:07
· Личное сообщение · #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 (мудрец), 468thx
Активность: 0.280
Статус: Участник
Only One!

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

reversecode

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

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

-----
aLL rIGHTS rEVERSED!





Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

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

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




Ранг: 462.8 (мудрец), 468thx
Активность: 0.280
Статус: Участник
Only One!

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

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

-----
aLL rIGHTS rEVERSED!




Ранг: 72.4 (постоянный), 33thx
Активность: 0.050.03
Статус: Участник

Создано: 09 октября 2014 18:17
· Личное сообщение · #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 (мудрец), 468thx
Активность: 0.280
Статус: Участник
Only One!

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

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

-----
aLL rIGHTS rEVERSED!




Ранг: 222.2 (наставник), 115thx
Активность: 0.140.01
Статус: Участник

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

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

-----
все багрепорты - в личные сообщения


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


Ранг: 462.8 (мудрец), 468thx
Активность: 0.280
Статус: Участник
Only One!

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

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

-----
aLL rIGHTS rEVERSED!





Ранг: 462.8 (мудрец), 468thx
Активность: 0.280
Статус: Участник
Only One!

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

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

-----
aLL rIGHTS rEVERSED!




Ранг: 590.4 (!), 408thx
Активность: 0.360.18
Статус: Модератор

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

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

-----
старый пень





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

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

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

-----
Следуй за белым кроликом


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

Ранг: 419.0 (мудрец), 647thx
Активность: 0.460.51
Статус: Участник
"Тибериумный реверсинг"

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

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



Ранг: 488.1 (мудрец), 272thx
Активность: 0.350
Статус: Участник

Создано: 06 ноября 2014 00:52 · Поправил: VodoleY
· Личное сообщение · #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.1 (мудрец), 272thx
Активность: 0.350
Статус: Участник

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

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

-----
Наша работа во тьме, Мы делаем, что умеем. Мы отдаем, что имеем, Наша работа во тьме....





Ранг: 681.5 (! !), 405thx
Активность: 0.420.21
Статус: Участник
ALIEN Hack Team

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

Возник вопрос, но в гугле инфа не находится. Изначально хотелось бы на линуксе получить тулу, похожую на старый добрый FileMon в винде (нынче это Process Monitor). Поясню суть - хочу знать, какой процесс (id) к какому файлу обращается. После поиска в гугле, нашёл, что есть inotifytools. В принципе, почти то, что нужно, но не показывает, какой процесс обращается к файлам - просто показывает, что событие обращения имело место. Может, есть что-то готовое, чтоб велосипед не изобретать?

-----
Stuck to the plan, always think that we would stand up, never ran.



<< . 1 . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 10 . >>
 eXeL@B —› Основной форум —› Реверсинг под Linux
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати