Сейчас на форуме: -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


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

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

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



Ранг: 102.0 (ветеран), 18thx
Активность: 0.070.02
Статус: Участник

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

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




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

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

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

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





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

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

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

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

-----
IZ.RU




Ранг: 102.0 (ветеран), 18thx
Активность: 0.070.02
Статус: Участник

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

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




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

Создано: 03 августа 2015 20:32 · Поправил: DenCoder
· Личное сообщение · #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

-----
IZ.RU




Ранг: 102.0 (ветеран), 18thx
Активность: 0.070.02
Статус: Участник

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

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




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

Создано: 04 августа 2015 14:57 · Поправил: DenCoder
· Личное сообщение · #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.



-----
IZ.RU


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


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

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

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

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

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



Ранг: 102.0 (ветеран), 18thx
Активность: 0.070.02
Статус: Участник

Создано: 13 августа 2015 17:57
· Личное сообщение · #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.8 (гость)
Активность: 0.010
Статус: Участник

Создано: 14 августа 2015 11:38 · Поправил: eu8cc
· Личное сообщение · #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)
Знаю, что скрипт упакован какой-то программой в среде линукса.

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


3233_14.08.2015_EXELAB.rU.tgz - airgui




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

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

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



Ранг: 5.8 (гость)
Активность: 0.010
Статус: Участник

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

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




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

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

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

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

Ранг: 5.8 (гость)
Активность: 0.010
Статус: Участник

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

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




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

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

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

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

Ранг: 5.8 (гость)
Активность: 0.010
Статус: Участник

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

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

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




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

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

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

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

Ранг: 5.8 (гость)
Активность: 0.010
Статус: Участник

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

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




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

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

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

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

Ранг: 5.8 (гость)
Активность: 0.010
Статус: Участник

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

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



Ранг: 102.0 (ветеран), 18thx
Активность: 0.070.02
Статус: Участник

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

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




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

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

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



Ранг: 102.0 (ветеран), 18thx
Активность: 0.070.02
Статус: Участник

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

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



Ранг: 102.0 (ветеран), 18thx
Активность: 0.070.02
Статус: Участник

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

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




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

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

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



Ранг: 102.0 (ветеран), 18thx
Активность: 0.070.02
Статус: Участник

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

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




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

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

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



Ранг: 102.0 (ветеран), 18thx
Активность: 0.070.02
Статус: Участник

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

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




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

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

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

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

| Сообщение посчитали полезным: ksol
<< . 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 » Выход » ЛС
   Для печати Для печати