Сейчас на форуме: -Sanchez- (+7 невидимых) |
eXeL@B —› Основной форум —› Реверсинг под Linux |
<< . 1 . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 10 . >> |
Посл.ответ | Сообщение |
|
Создано: 18 февраля 2014 21:54 · Поправил: ARCHANGEL · Личное сообщение · #1 Уважаемые форумчане. Знаю, что данный ресурс создавался для обсуждения тем, связанных с ОС Windows. Но ведь есть уже разделы по андроиду, по flash, по дотнету. Эти все темы не совсем связаны с Windows, точнее сказать, весьма далеки от исследования нативных приложений под винду, поэтому мне кажется логичным обсуждение ос семейства Linux. Так исторически сложилось, что мне приходится тратить некоторое время на изучение этой темы, а изучать-то и нечего. Есть литература по администрированию Linux, но вот хорошей добротной (и свежей) инфы по линуксу практически нет. Есть мысли разделить найденный материал на несколько категорий, т.к. благодаря людям с форума и гуглу появилась хоть какая-то инфа. Настройка рабочей среды Подраздел охватывает темы, прямо или косвенно связанные с установкой, настройкой и подготовкой к работе ОС Linux. Введение в устройство ОС Подраздел в общем и целом, без низкоуровневых деталей и кода, описывает устройство ОС. Поверхносто, но нужно для общего представления. Программирование Подраздел посвящён системному программированию под Linux. Статьи по реверсингу 2002-2004 год: Другие статьи: Разное Касперски ----- 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 |
|
Создано: 06 марта 2015 16:05 · Личное сообщение · #2 |
|
Создано: 06 марта 2015 16:11 · Личное сообщение · #3 |
Ранг: 419.0 (мудрец), 647thx Активность: 0.46↗0.51 Статус: Участник "Тибериумный реверсинг" |
Создано: 08 марта 2015 10:01 · Личное сообщение · #4 |
|
Создано: 08 марта 2015 20:35 · Личное сообщение · #5 |
|
Создано: 16 июля 2015 23:11 · Личное сообщение · #6 Возникала необходимость завести GDBserver на устройство с процом xscale PRIXP420ABD(armv5t(big endian)) которая крутиться на linuxe(древнем busybox) c ядром 2.4.24. google готового статически слинкованого решения не предоставил. http://habrahabr.ru/post/114230/ , http://download.ronetix.info/toolchains/arm/kaeilos-2010.1/ при проверке требует наличия огромного количества танцев с бубнами(QEMU не поддерживает среду эмуляции для big endian(armeb), только запуск одиночного приложения, linaro arm toolchain работает с big endian только с ARM7). В связи с этим вопрос - может кто нибудь с готовым и настроенным toolchain построить GDBserver или возможно дадут вектор(тыкнут носом) куда еще посмотреть? |
|
Создано: 17 июля 2015 02:27 · Личное сообщение · #7 sats пишет: linaro arm toolchain работает с big endian только с ARM7 Так ARM v5T архитектура обратно совместима с ARM v7, другими словами v5t - некоторое подмножество v7. Не пользовался пока тулчейном, но не пробовали просто указать ему v7? ----- IZ.RU |
|
Создано: 17 июля 2015 03:01 · Личное сообщение · #8 |
|
Создано: 17 июля 2015 23:31 · Личное сообщение · #9 |
|
Создано: 18 июля 2015 00:06 · Личное сообщение · #10 |
|
Создано: 18 июля 2015 13:48 · Поправил: DenCoder · Личное сообщение · #11 DenCoder пишет: Поменяйте порядок байт в нужных elf-файлах sats пишет: в таком случае родные программы будут глючит Ну если грамотно пройти по всему коду, пройтись анализатором, заменить некоторые команды, где возможно и данные перевернуть... о таком только мечтать, наверное, пока, хотя не искал. Вполне осуществимо, и может есть у кого-то такая поделка. Если код не накрыт пакером (что редкость для arm), то какая-нибудь тулза а-ля endian_B2L должна справиться. sats пишет: видимо никто здесь подобной ерундой не занимается Да я тоже мучаюсь, с qemu. Благо исходники есть, до логики работы, чего нужно, какие опции ему подсунуть, благодаря им можно догадаться. Окружение главное сэмулировать, а для этого, как я понимаю, лучше всего настроить qemu так, чтобы он грузил и правильно выполнял бутлоадер, конфигурацию подобрать, чтобы mrc, mcr, vfp, неоновские расширения правильно выполнялись(хотя расширения - это конечная цель, в последнюю очередь, поскольку только для целевого модуля минимальная архитектура - ARMv7-A - от Cortex A5 до A17, но эта часть уже решена) Добавлено спустя некоторое время Интересно, что в Cortex-R, v6 и в некоторых v5 с поддержкой BE32 есть управление endian, то есть начинается код в одном порядке байт, спустя какую-то инициализацию - в другом порядке. Никто не сталкивался с подобным? ----- IZ.RU |
|
Создано: 21 июля 2015 11:31 · Поправил: sats · Личное сообщение · #12 в общем ситуация с cross-ng следующая : построил gdbserver на базе armeb-unknown-linux-gnueabi - результат следующий: root@ubuntu:~/gdb/builds/armeb/gdbserver/bin# file gdbserver gdbserver: ELF 32-bit MSB executable, ARM, version 1 (SYSV), statically linked, for GNU/Linux 4.1.0, not stripped Железо на котором нужно запустить: Linux version 2.4.24-uc0 (root@EmbEserver75) (gcc version 3.3.2) armv5b #1 Wed Jun 15 12:44:25 EDT 2011 CPU: XScale-IXP4xx/IXC11xx revision 2 При запуске little endian дает error:./gdbserver: line 1: syntax error: word unexpected (expecting ")") При запуске скомпиленого с помощью cross-ng: # ./gdbserver Segmentation fault В связи с этим вопрос: (на сайте cross-ng присутствует следующая информация : для armeb-unknown-linux-gnueabi Kernel headers version linux 3.12 gcc version 4.4.3) подойдет ли cross-ng для компиляции под железку в общем? Или ,возможно, нужно намного старее версии кросс компилятора брать? компилировал следующим образом : export RANLIB=/home/stas/x-tools/armeb-unknown-linux-gnueabi/bin/armeb-unknown-linux-gnueabi-gcc-ranlib export CC=/home/stas/x-tools/armeb-unknown-linux-gnueabi/bin/armeb-unknown-linux-gnueabi-gcc ./configure --target=armeb-unknown-linux-gnueabi --prefix=~/gdb/builds/armeb/gdbserver --disable-werror # && возможно необходимо указать дополнительный флаг типа mcpu или march, но при попытке их вставить - configure: error: -mcpu=xscale: invalid option; | Сообщение посчитали полезным: DenCoder |
|
Создано: 24 июля 2015 02:03 · Личное сообщение · #13 sats пишет: Или ,возможно, нужно намного старее версии кросс компилятора брать? В большинстве случаев новые версии компиляторов включают возможности старых. Единственное что - некоторые опции в новых версиях могут быть omitted, deprecated, ignored... см. мануалы, гугл, форумы sats пишет: возможно необходимо указать дополнительный флаг типа mcpu или march, но при попытке их вставить - configure: error: -mcpu=xscale: invalid option; уточняй по хелпу ----- IZ.RU |
|
Создано: 01 августа 2015 17:27 · Личное сообщение · #14 Похоже, отладчик gdb не для всех функций выполняет команду break. В приведённом ниже примере он останавливается на printf() и проскальзывает strcpy(). Может кто скажет - почему так? Code:
|
|
Создано: 01 августа 2015 18:28 · Личное сообщение · #15 |
|
Создано: 01 августа 2015 18:33 · Личное сообщение · #16 |
|
Создано: 01 августа 2015 22:16 · Поправил: DenCoder · Личное сообщение · #17 ksol пишет: Похоже, отладчик gdb не для всех функций выполняет команду break. пользовался gdb 7.7, сама версия нормальная, много различных возможностей. Есть gdbtui (с псевдографическим интерфейсом), есть insight с нормальным гуи. Связка Ида(хоть какой версии) + gdbserver тупит на ARM Linux по части точек останова. armlinux_server, что идёт в комплекте с идой, также тупит, но на многопоточных приложениях. apt-get upgrade делали? ksol пишет: Function "strcpy" not defined. В таких случаях возможно символов не хватает. Как их ставить ksol У вас есть исходник, тогда break на line должно работать. Чаще всего исходника нет и символов нет - break *0x(addr) ----- IZ.RU | Сообщение посчитали полезным: ksol |
|
Создано: 02 августа 2015 11:22 · Поправил: eu8cc · Личное сообщение · #18 Извините, может и не по теме, подскажите пожалуйста каким образом можно распаковать исполняемый файлик из линукса. При запуске требует мыло и id. Скорей всего внутри скрипт sh. Подскажите как его достать. Пробовал IDA с под винды, но там мало что есть, не получилось установить сервер для иды на сторонний линукс (я не спец в линуксе, может нужен определенный тип линукс os) поэтому в режиме выполнения не увидел. Извиняюсь если ошибся разделом. |
|
Создано: 02 августа 2015 11:34 · Личное сообщение · #19 - ставил! пробовал! не получается! это не вариант, что именно пробовали? что именно ставили? что именно не получается? там нужен linux_serverx64, потому что прога x64 Добавлено спустя 11 минут вариант нейтивного gdb который идет в поставке, тоже надо рассмотреть, на хабре есть примеры общения с gdb, да и ида тоже умеет с ним работать | Сообщение посчитали полезным: eu8cc |
|
Создано: 02 августа 2015 11:46 · Личное сообщение · #20 Запускал на линуксе 64 битном. Я в курсе что там нужен linux_serverx64, пробовал его запустить на портативном porteus linux os но вообще в ответ тишина. Пробовал на тот же porteus закачать и запустить IDA(для linux), ноль реакции(не запускается). Я не силен в этих linux os. Хочу распаковать и достать скрипт. Но из под винды без сервера линукса ничего не выходит. Может там еще какие грабли, пока не знаю. |
|
Создано: 02 августа 2015 11:50 · Личное сообщение · #21 поставте gdbserver который входит в поставку с линуксом ида тоже умеет сним общаться либо выберите более правильный линукс, как готовую сборку а может быть уже и во всем настроенную посоветовать никаких сборок не могу, так как ставлю сам с нуля для себя, но слышал что народ использует готовые сборки во всю |
|
Создано: 02 августа 2015 12:13 · Личное сообщение · #22 reversecode пишет: поставте gdbserver который входит в поставку с линуксом ида тоже умеет сним общаться Зачем вы травите? Все знают что ида умеет gdbserver только определённых версий(а вот тут уже возникает вопрос кто виноват: gdbserver или именно gdb), каких именно - разбираться не стал, просто вычеркнул для себя такой вариант как ненадёжный. ----- все багрепорты - в личные сообщения | Сообщение посчитали полезным: DenCoder |
|
Создано: 02 августа 2015 12:17 · Личное сообщение · #23 |
|
Создано: 02 августа 2015 12:33 · Поправил: eu8cc · Личное сообщение · #24 Запустил отладку через win64_remotex64.exe В консоли пишет: accepting connection from 192.164.1.2 ... could not establish the connection closing connection from 192.164.1.2 принимая соединение от 192.164.1.2 ... не удалось установить соединение закрытие соединения с 192.164.1.2 Затем в ида выскакивает окошка с сообщением: the file can'tbe loaded by the debugger plugin. Please verify that the parameters are valid файл может быть загружен в отладчик плагин. Пожалуйста, убедитесь, что параметры являются действительными После нажатия ок моргает курсор в строчке Parameters(там у меня пусто) следующего окна. Какие параметры нужно вбить не знаю, в инете так на вскидку ничего не выскочило. Я просто не в курсе вообще на каких сборках linux os можно установить линуксовскую ида работает. Может есть какие сборки с предустановленной ida? |
|
Создано: 02 августа 2015 12:46 · Личное сообщение · #25 win64_remotex64.exe нужен что бы отлаживать на иде windows x64 программы для линукса нужен 1) линукс x64 2) закинуть на этот линукс x64 - linux_serverx64 от ида той версии под которой будете отлаживать 3) проверить доступность сети с того компьютера где ида и тем компьютером где запущен линукс 4) запустить linux_serverx64 на линуксе в нужными параметрами 5) подсоеденится из ida к машине где линукс, указав пути запускаемой программы которая лежит на линукс машине вроде так |
|
Создано: 02 августа 2015 14:39 · Поправил: DenCoder · Личное сообщение · #26 reversecode пишет: первый раз слышу что ида умеет gdb только определенных версий, видимо у меня другой опыт Реально, есть такая проблема на иде 6.5 и 6.6 - back-end в иде довольно урезан, и видимо протокол gdb от gdb7.7 плохо понимает. Проблема заключается в невозможности остановиться на какой-то точке больше одного раза. То есть если один бряк сработал, второй не срабатывает. Не разбирал пока(и вряд ли время будет), но кажется, что Иде не удаётся правильно стартовать от последней точки и потом правильно принять состояние при остановке программы. Но вот неизвестно, так ли это со всеми gdbserver'ами. Тестировался мной только gdbserver 7.7 под arm, linux - debian 3.2 ----- IZ.RU | Сообщение посчитали полезным: HandMill |
|
Создано: 02 августа 2015 15:28 · Личное сообщение · #27 DenCoder - функции "strcpy" , "printf" до запуска программы not defined - ещё нет загрузки, поэтому их имена not resolved. После запуска программы, как видно из приведённого выше кода, gdb успешно загружает обе эти функции, указывает их адреса, но breakpoint 1-й пропускает. а останавливается только на 2-й. reversecode - gdb разрешает имя "strcpy", почему бы ему не остановится на указанном им же адресе? А насчёт break on line всё понятно. DenCoder - я благодарю вас за указание отладчиков с гуи. Не могли бы вы сказать чуть подробнее? |
|
Создано: 02 августа 2015 15:47 · Поправил: reversecode · Личное сообщение · #28 Code:
objdump -d a.out Code:
gcc -v gcc version 4.7.2 (Ubuntu/Linaro 4.7.2-2ubuntu1) Добавлено спустя 9 минут и еще один пример только компиляция Code:
Code:
Code:
|
|
Создано: 02 августа 2015 16:03 · Поправил: DenCoder · Личное сообщение · #29 reversecode Гы-гы! Точно! ksol Всё очень просто - чтобы брякнуться именно на strcpy(), не изменяя флагов компилятора, измените код так, чтобы в функцию передавались 2 переменных )) я благодарю вас за указание отладчиков с гуи. Не могли бы вы сказать чуть подробнее? Code:
В --target= Можно указать желаюмую конфигурацию, можно и под дос вроде как см. файл configure.ac, как правильно задавать таргет-конфиги далее по SSH можно забрать свой собранный Insight Можно и под CygWin собрать, и под MinGW, можно и без них собрать под git, но в любом из этих 3х случаев ставить придётся достаточно. ИМХО под линуксом проще ----- IZ.RU |
|
Создано: 02 августа 2015 18:47 · Личное сообщение · #30 DenCoder - спасибо за ссылку и команды сборки. Ещё хотел бы спросить: а это самое insight даёт что-либо относительно консоли? reversecode - вы правильно указали на замену функций. В дизассем. соде вместо strcpy стоит memcpy (текст с консоли ниже). Причём gdb останавливается на ВР memcpy() и уже не хочет сходить с неё, пока не уничтожишь её командой clear. В то время как с BP printf() отладчик идёт дальше по continue Code:
|
|
Создано: 02 августа 2015 19:47 · Поправил: DenCoder · Личное сообщение · #31 ksol пишет: insight даёт что-либо относительно консоли? Code:
Собрать можно почти под любую платформу (так заявлено). UPD но не без хитростей это делается Возможны варианты back-end Insight на Windows, front-end gdbserver на linux. back-end Insight на GUI linux, front-end gdbserver на Windows. С gdbserver'ом или без, но на одной системе. Добавлено спустя 1 час 08 минут Вспомнил, что год с небольшим назад я пробовал связку ида/gdbserver - нормально работало, только ида была 5.5, linux - ubuntu 13.10 server x64, То ли эта новая ида тупит, то ли gdbserver не той версии для вообще иды. Автор Иды на старых версиях что ли пашет? В анвтивирусных компаниях тоже? )) Нормально работало и дебажил нормально даже СЕРВИС, который в фоновом режиме, который на запуске 2 раза трёт свой образ новыми процессами Не то, что там 2 треда отладить.... хз, в чём тут дело надо будет найти время, чтоб в этом разобраться ----- IZ.RU |
<< . 1 . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 10 . >> |
eXeL@B —› Основной форум —› Реверсинг под Linux |