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

ВИДЕОКУРС ВЗЛОМ
выпущен 2 августа!


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

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

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

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


Ранг: 655.7 (! !)
Статус: Участник
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



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

Создано: 3 августа 2015 08:09 New!
Цитата · Личное сообщение · #2

вилами по воде,что отработало, как отработало, что не отработало...

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

Создано: 3 августа 2015 15:13 New!
Цитата · Личное сообщение · #3

DenCoder - зашёл на указанный вами сайт, посмотрел картинки отладчика, скачал,
попытаюсь установить.


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

Создано: 3 августа 2015 15:17 New!
Цитата · Личное сообщение · #4

Как по мне, так связка ида+гдбсервер пашут прекрасно, но только на x86/x64. На арме - беда. Там ещё и сам гдб может не работать нормально.


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

Создано: 3 августа 2015 15:31 New!
Цитата · Личное сообщение · #5

ARCHANGEL пишет:
Там ещё и сам гдб может не работать нормально.

На арм ошибок в работе гдб не замечал пока. Я думаю, дело в протоколе - немного нестандартно gdbserver посылает данные, немного по-другому парсит принятый поток.

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

Создано: 3 августа 2015 19:02 New!
Цитата · Личное сообщение · #6

DenCoder - не удалось установить, пишет в конце make:
BFD does not support target 'i86-none-uwin'


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

Создано: 3 августа 2015 20:32 · Поправил: 4 августа 2015 13:13 DenCoder New!
Цитата · Личное сообщение · #7

ksol пишет:
DenCoder - не удалось установить, пишет в конце make:BFD does not support target 'i86-none-uwin'

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

Лучше всё-таки без навыков кросс-компилинга собирать под целевую платформу на ней же. Под Винду следует пройти --> этот квест <-- пп.2-4, в п.5 вместо исходников gdb качаем insight-6.8-1.

Дальше уже можем либо под mingw башем tar -xvf выполнить, либо из explorer'а правой кнопкой мыши.
Делать это рекомендую в <папка установки MinGW>/msys/1.0/home/<учётка>
Сразу рекомендую скачать исходники tcl и tk версий 8.6.4, заменить ими существующие в папках tcl и tk.
Дальше из учётной папки
Code:
  1. mkdir -p insight/tcl
  2. cd insight/tcl
  3. ../../insight-6.8-1/tcl/configure --disable-werror
  4. make all


В tclWinDde.c и tclWinReg.c gcc ругнётся по разу на ошибки, исправьте их:
Уберите внешние скобки в обоих случаях и снова make all

Дальше
Code:
  1. cd ..
  2. ../insight-6.8-1/configure --disable-werror
  3. make
  4. make install

Готово!

Gdbserver под Linux возможно из сорцев понадобится свой собирать.
Всё аналогично, только нужна будет из всех сорцев папка gdbserver. Компилим аналогично её под линуксом configure/make all/make install

После make install
выполните команду
$ dir /usr/local/bin

должен быть такой состав
gdb.exe gdbserver.exe insight.exe itcl32.dll itk32.dll tcl84.dll tclpip84.dll tclsh84.exe tk84.dll wish84.exe

Обновлено 4 августа 13:10
Полноценный архив со всеми необходимыми папками и либами. Insight-6.8-1.rar

Запускать через bin/start.bat.

Help topics так и не работает, причина где-то около share/Insight1.0/HelpViewer.tcl в функции open_help().
Ручной запуск справки share/Insight1.0/help/index.html

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

Создано: 4 августа 2015 14:23 New!
Цитата · Личное сообщение · #8

Я не под Винду, а на Мандриву пытаюсь установить.
Теперь задал target=i686-pc-linux-gnu, prefix не задавал.
При выполнении make нашла 2 ошибки: 1.no termcap library found;
2. совсем не понятная - Leaving directory .../insight-6.8-1. Это её исходная директория.


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

Создано: 4 августа 2015 14:57 · Поправил: 4 августа 2015 16:26 DenCoder New!
Цитата · Личное сообщение · #9

ksol пишет:
1.no termcap library found;

Полный текст привели бы.
гугл - где найти termpcap, как поставить, package finder'ы есть.

ksol пишет:
2. совсем не понятная - Leaving directory .../insight-6.8-1. Это её исходная директория.

это не ошибка, это обычный выход, когда завершена компиляция в результате чего-либо(успех/неудача)

Кстати, разобрался для чего target - платформа, которую планируется дебажить. Т.е. можно собирать из разных папок для разных платформ, под винду будет insight.exe, для arm-linux - armv7l-unknown-linux-gnueabi-insight.exe. Запускаю второй, на арм-линуксе собранный под него gdbserver 6.8(с версией 7.7 пробовал, ошибка парсинга XML, что-то подобное видимо и имеет место с идой, только она об этом не сообщает), настраиваю target-опции - получается дебаг с винды созданного процесса под арм-линуксом...

Но не доделан этот insight, если честно. Удобство в окнах! Но местами глючит - то при вводе номера порта, он переворачивается , то при изменении содержимого памяти по адресу вывод содержимого пропадает.... Регистры есть, стек не отображает, дизасм не показывает(из-под винды к арм-линукс), дизасмить можно только из инсайтовской консоли - disassemble не работает, через x /i <адрес>.
Что-то подправить, когда время будет - подправлю может.

В конфигурации винда-к-винде более чётко работает, показывает даже из какого исходного файла та или иная функция (если есть инфа в exe)... но не тестил основательно...

От обилия визуальных багов того и ждёшь, что рухнет, но потестим ещё функционал дебага мульти-тредов.

Добвавлено спустя полтора часа
Дизасмит нормально. Для этого надо перед аттачем поставить галочку на Download.

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



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

Создано: 4 августа 2015 14:58 New!
Цитата · Личное сообщение · #10

ksol пишет:
no termcap library found;

вставляете в гугл, решаете вопрос

совсем нет смысла тему про реверсинг превращать, в тему "как под линукс установить программу"

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

Создано: 13 августа 2015 17:57 New!
Цитата · Личное сообщение · #11

Однако, в Мандриве termcap всё же уже есть:
# rpm -q termcap
termcap-11.0.1-13mdv2008.1
Видно, установить insight в среду KDE не такое уж и простое дело!
Зато в Мандриве есть GUI-отладчик KDbg, похожий на этот insight.
Имеется, кроме того, среда разработки KDevelop C/C++, примерно,
с таким же функционалом, как MS VSC++, и также включает в себя
простенький отладчик.
В среду GNOME пакета fedora отладчик insight-6.8-1 устанавливается
без скрипа, как по маслу!

Ранг: 5.7 (гость)
Статус: Участник

Создано: 14 августа 2015 11:38 · Поправил: 19 августа 2015 23:50 eu8cc New!
Цитата · Личное сообщение · #12

Пробовал отладка с помощью edb-debugger в среде virtualbox Kali-linux мельком открывается исследуемый файл
и завершается (the debugger application was terminated with exit code 9). Даже окно с запросом на ввод данных
не выскакивает, но если запускать без дебаггера то запрос данных происходит.

Так же пробовал удаленную отладку через gdbservx64(virtualbox Kali-linux) и Ida Pro64(windows 10),
все мельком проскакивает (в терминале пишет: airgui: Operation not permitted)
Знаю, что скрипт упакован какой-то программой в среде линукса.

Помогите обойти проверку.
В общем программа получает входные данные, отправляет на удаленный сервер
и оттуда в ответ что-то получает (так происходит регистрация) и больше не запрашивает входные данные,
а начинает работать скрипт.


{ Атач доступен только для участников форума } - airgui


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

Создано: 14 августа 2015 12:16 New!
Цитата · Личное сообщение · #13

нет там никаких проверок, идете в программе степ бай степ и все понятно

Ранг: 5.7 (гость)
Статус: Участник

Создано: 14 августа 2015 12:34 · Поправил: 16 августа 2015 00:42 eu8cc New!
Цитата · Личное сообщение · #14

Программа не выполняется пока не будет произведена регистрация.
После регистрации выскакивает другое окно с кнопками.


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

Создано: 14 августа 2015 13:27 New!
Цитата · Личное сообщение · #15

степ бай степ, все там отлаживается, вначале мелкий ксор крипт, потом execv, изучайте, скрипт это потом

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


Ранг: 5.7 (гость)
Статус: Участник

Создано: 14 августа 2015 13:36 · Поправил: 14 августа 2015 13:37 eu8cc New!
Цитата · Личное сообщение · #16

reversecode, а можете подсказать по каким словам гуглить ксор крипт, что то не понимаю что это. И в какой среде Вы дебажили?


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

Создано: 14 августа 2015 13:56 · Поправил: 14 августа 2015 15:39 reversecode New!
Цитата · Личное сообщение · #17

зачем его гуглить, его нужно степ бай степ пройти в отладчике любом хоть в иде хоть gdb хоть в любом другом,
и получить буфер декрипченного файла, дампите тот файл и повторно уже его изучаете

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


Ранг: 5.7 (гость)
Статус: Участник

Создано: 16 августа 2015 18:24 · Поправил: 17 августа 2015 14:59 eu8cc New!
Цитата · Личное сообщение · #18

reversecode, пока в линуксе у меня доступен только edb. Я открываю файл в отладчике edb
и нажимаю F9, в результате происходит остановка на адресе 0040199e. Правильно понимаю
что это есть точка входа? И дальше мне нужно пройтись по коду до места окончания работы
дескриптора(поставить после его выполнения брек). Правда пока не понимаю по какому адресу
дескриптор расположен.

При запуске F9 происходит небольшая модификация в секции 602000-60b000. Затем при дальнейшем
проходе в памяти появляется какой то bash файл.


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

Создано: 17 августа 2015 12:14 New!
Цитата · Личное сообщение · #19

в airgui происходит всего лишь вызов execv
вот доходите до него, и смотрите что оно запускает и где этот файл лежит, дампите тот файл
и уже повторно опять его запускаете и смотрите что происходит

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


Ранг: 5.7 (гость)
Статус: Участник

Создано: 17 августа 2015 14:55 · Поправил: 17 августа 2015 15:29 eu8cc New!
Цитата · Личное сообщение · #20

reversecode, В edb нет подписи функций, поэтому подсмотрел в IDA. Где по адресу 401988 имя файла загоняется в edi,
само имя файл берется с адреса 60a23d, а затем идет вызов функции _execvp (адрес 40198d и переход на 4000e30).
Т.о. по адресу 60a23d записано "/bin/bash"


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

Создано: 17 августа 2015 15:23 New!
Цитата · Личное сообщение · #21

execv одним параметром не ограничивается, почитайте по нему мануал

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


Ранг: 5.7 (гость)
Статус: Участник

Создано: 19 августа 2015 11:04 New!
Цитата · Личное сообщение · #22

reversecode, передается массив параметров, но прошелся в отладчике, и не могу увидеть все остальные параметры. Направьте пожалуйста по какому адресу бегать.

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

Создано: 25 сентября 2015 17:43 New!
Цитата · Личное сообщение · #23

Хотел бы локальные переменные функции разместить в стеке так,
чтобы скалярная flag была над массивом buffer. Для этого в исходном
коде функции задан порядок:
char buffer[16];
int flag;
Однако компилятор gcc размещает их в обратном порядке - flag оказывается
под буфером. Вообще, перестановка строк никак не отражается.
Как тут быть?


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

Создано: 25 сентября 2015 18:01 New!
Цитата · Личное сообщение · #24

окучь их в структуру, хотя смыл мало понятен накой это надо

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

Создано: 25 сентября 2015 18:33 New!
Цитата · Личное сообщение · #25

--- при переполнении буфера флаг может тогда оказаться true
--- это, наверное, gcc оптимизацией стека занимается?
Как бы её отключить?

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

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

reversecode Затолкал переменные а структуру
struct {
char buffer[16];
int flag;} st;
Вот их адреса в стеке
& st.buffer = 0xbf9ac654;
& st.flag = 0xbf9ac664;
То есть всё по-прежнему!


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

Создано: 26 сентября 2015 17:01 New!
Цитата · Личное сообщение · #27

тоесть если поменять местами флаг и буффер будет то что надо?

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

Создано: 26 сентября 2015 17:06 New!
Цитата · Личное сообщение · #28

Я уже это делал в варианте без структуры -
всё оставалось так же.


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

Создано: 26 сентября 2015 17:09 New!
Цитата · Личное сообщение · #29

флудологией заниматься нет желания, я вам специально намекнул на структуру, разжевывать каждое слово нет времени

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

Создано: 26 сентября 2015 17:48 New!
Цитата · Личное сообщение · #30

Вообще - то, я ожидал опцию изменения настройки GCC.
А структура..., проверить, пара пустяков. К сожалению
не так с man'ом по GCC. Ну, да ладно!


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

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

смысл этого всего? цель создания всяких разных CTF для конкурсов ?
в практических целях это ненужно
в ГЦЦ как и в MSVC включается защита стека и досвидос

правда вот касперский это проморгал , и давече залатывал секьюрити хол из за того что защита стека по умолчанию была отключена

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

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

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

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