ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > Реверсинг
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Cracking в Linux
  #1  
Старый 19.07.2007, 22:40
Un_0
Познающий
Регистрация: 11.04.2007
Сообщений: 43
Провел на форуме:
587081

Репутация: 150
По умолчанию Cracking в Linux

В последнее время наблюдается рост коммерческих приложений в Linux. Таким образом, возникает потребность в реинженеринге защитных механизмов в новых условиях. Крекеры, пришедшие с Windows не находят удобных инструментов, да и «родные» не знают о многих из них.

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

Анализаторы файлов
Прежде чем ломать программу, необходимо проанализировать ее. Для этих целей служат следующие программы:

file
Показывает информацию о файле: тип, архитектуру, факт использования разделяемых библиотек, была ли удалена символьная информация командой strip.

nm
Выводит таблицу внешних символов. Показывает имена переменных, функций, метки. (Это справедливо только для файлов, не обработанных командой strip)

size
Выводит размеры всех секций программы (при указании флага -А).

strings
Выводит все текстовые строки, содержащиеся в файле. Бывает очень полезна при поиске регистрационных кодов, хранящихся в открытом виде. (на практике все еще попадается такая слабая защита).

ldd
Показывает зависимости программы от динамических библиотек. Программистам пользы больше, чем крекерам.



readelf
Исследует файл. Выводит намного больше информации, чем команда file.

Показывает тип файла, архитектуру, точку входа и другие не менее важные для крекера данные.



Дизассемблеры
Objdump
Больше, чем просто дизассемблер.

Показывает заголовки программы, секции файла (флаг -х)
Дизассемблирует файл (флаг -D)
Показывает содержимое секций в шестнадцатеричном виде (флаг -s)
и т.д.

Замечание. При дизассемблировании файла, лучше скидывать листинг в файл: objdump -D > ./file, чтобы хоть как-то уменьшить вероятность вывиха обеих глаз.

Dissy
«Обертка» для утилит nm, readelf и objdump. (из-за этого файлы без символьной информации не анализируются)

Имеет графический интерфейс, работать намного приятнее, чем с objdump. Главное окно разделено на две части, в верхней – имена функций, в нижней – их дизассемблерный листинг. Программа показывает переходы, осуществляет навигацию по ним и по вызовам процедур.



Сравнение objdump и Dissy:



Lida (Linux Interactive DisAssembler)

Довольно интересный дизассемблер, включающий в себя модули поиска по строкам, криптоанализ, возможность ставить закладки и пр.

LDasm (Linux Disassembler)

Еще одна оболочка для objdump/binutils, написанная на Perl/Tk. По словам автора, "to imitate the look'n'feel of W32Dasm" Так что не мешает ознакомиться.
К сожалению, не обновлялся с декабря 2002 года.

Bastard
Дизассемблер под Linux&FreeBSD, понимаетELF/PE/bin-форматы.

Шестнадцатеричные редакторы
Отобразить в шестнадцатеричном виде файлы могут утилиты objdump, hexdump, od.

KHexEdit
Входит в среду KDE. Имеет графический интерфейс.

Bless
Написанный на моно шестнадцатеричный редактор. Поддерживает вкладки.

Biew
Консольный редактор. Позволяет просматривать и редактировать файлы в текстовом, шестнадцатеричном, ассемблерном виде.

HTE
Также консольный редактор, но функционально на голову выше прочих. Дизассемблирует файлы, поддерживает перекрестные ссылки, указывает имена функций и пр.

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

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

Я нашел только два достойных дампера.

PD by ilo
Опубликованный в журнале Phrack. Мне так и не удалось получить запускаемый дамп с помощью этой программы.

Process Dumper (pd)
Программа довольно неплохо снимает дамп с запущенных процессов.
Запуск: pd -p pid > dump

Далее нужно обработать файл напильником. Например, в KHexEdit



Удаляем символьный мусор до заголовка.

Таким образом мне получилось сделать запускающийся дамп с программой, запакованной UPX.

Отладчики
Тяжелая артиллерия:
gdb и все, все, все (графические оболочки)
Довольно мощный отладчик, но при работе можно вывихнуть руки (А без рук и без глаз какой же вы крекер?). Работать с ним довольно сложно, но можно.

Вердикт: для гуру.

EDB
Сравнительно недавно появился отладчик, напоминающий OllyDbg, только для Linux. Причем он написан с нуля, а не является оберткой для других утилит.

Окно разделено на 4 части: дизассемблер, стек, дамп памяти со вкладками, содержание регистров.

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



Linice
Неофициальный порт Softice под Linux. При установке требует древнее ядро и квалифицированного шамана с бубном. (Даже не стал париться)

В заключение несколько скринов с примерами работы:

Поиск по строкам утилитой strings:




Отладка в EDB, сравнение паролей:



Исследование файла при помощи nm & hte:



Также не помешает исследовать виртуальную файловую систему /proc для взлома программ.

================

LINKS:
PD by ilo: http://www.reversing.org
Process Dumper: http://www.trapkit.de/research/forensic/pd/
Dissy: http://www.ipd.bth.se/ska/sim_home/dissy.html
EDB: http://www.codef00.com
Linice: www.linice.com
HTE: www.hte.sourceforge.net
LDasm: http://www.feedface.com/projects/ldasm.html
Lida: http://lida.sourceforge.net/
Bastard: http://bastard.sourceforge.net/

Другие утилиты входят в поставку стандартного дистрибутива.

Последний раз редактировалось Un_0; 23.07.2007 в 10:32..
 
Ответить с цитированием

  #2  
Старый 30.10.2007, 20:12
0x0c0de
Постоянный
Регистрация: 25.05.2007
Сообщений: 448
Провел на форуме:
4226446

Репутация: 1564
Отправить сообщение для 0x0c0de с помощью ICQ
По умолчанию

Итак, вновь поднимаю эту тему, так как материал в ней представленный представляет ценность и не заслуживает быть затерянным в ряду всех остальных тем. Оффтоп потерт - теперь только дополнения к обзору, ссылки на мануалы etc.
Дополняю

Hex editors

HexCurse
hexedit
shed

http://www.sourcefiles.org/Editors/Hex/

Последний раз редактировалось 0x0c0de; 08.07.2008 в 20:34..
 
Ответить с цитированием

  #3  
Старый 31.10.2007, 00:08
Ky3bMu4
Постоянный
Регистрация: 03.02.2007
Сообщений: 520
Провел на форуме:
1777536

Репутация: 932


Отправить сообщение для Ky3bMu4 с помощью ICQ
По умолчанию

Debuggers:


Port: acpicatools
Path: /usr/ports/devel/acpicatools
Info: Some utilities for Intel ACPICA (Debugger, ASL Compiler and etc.)
WWW: http://developer.intel.com/technology/iapc/acpi/index.htm

Port: ald
Path: /usr/ports/devel/ald
Info: Debugger for assembly level programs
WWW: http://ald.sourceforge.net

Port: cgdb
Path: /usr/ports/devel/cgdb
Info: A curses-based interface to the GNU Debugger
WWW: http://cgdb.sourceforge.net/

Port: ddd
Path: /usr/ports/devel/ddd
Info: Data Display Debugger -- a common graphical front-end for GDB/DBX/XDB
WWW: http://www.gnu.org/software/ddd/

Port: kodos
Path: /usr/ports/devel/kodos
Info: The Python Regular Expression Debugger
WWW: http://kodos.sourceforge.net/

Port: ups
Path: /usr/ports/devel/ups-debug
Info: X based source level debugger for C, C++, and Fortran
WWW: http://ups.sourceforge.net/

Port: bfe2
Path: /usr/ports/emulators/bfe
Info: X11 GUI for the bochs debugger (revision 2)
WWW: http://bfe.sourceforge.net/
 
Ответить с цитированием

  #4  
Старый 07.01.2008, 20:57
Un_0
Познающий
Регистрация: 11.04.2007
Сообщений: 43
Провел на форуме:
587081

Репутация: 150
По умолчанию

Дополняю)

http://www.cs.utexas.edu/~ygz/378-03S/IBM-debug.pdf - статья про отладку. Ничего так, есть описание дебаггеров. На английском.

http://www.opennet.ru/prog/sml/28.shtml - много интересного по отладке и оценке кода, хотя многое уже имеется в этой теме.

http://www.jbixbe.com/ - ява-отладчик. Платный, но вроде триал есть)
 
Ответить с цитированием

  #5  
Старый 14.06.2008, 14:51
Ky3bMu4
Постоянный
Регистрация: 03.02.2007
Сообщений: 520
Провел на форуме:
1777536

Репутация: 932


Отправить сообщение для Ky3bMu4 с помощью ICQ
По умолчанию

mitya.pp.ru/gdb/gdb_toc.html - офф ман про gdb переведённый на русский
linuxforum.ru/index.php?showtopic=69439 - информация к размышлению
 
Ответить с цитированием

  #6  
Старый 14.06.2008, 14:59
xcedz
Познавший АНТИЧАТ
Регистрация: 14.01.2008
Сообщений: 1,165
Провел на форуме:
7229141

Репутация: 3099


По умолчанию

asmlinux.by.ru
информация к размышлению +1 =)
 
Ответить с цитированием

  #7  
Старый 27.05.2009, 17:23
TruPAC
Познающий
Регистрация: 20.12.2007
Сообщений: 36
Провел на форуме:
71113

Репутация: 20
По умолчанию

strace - trace system calls and signals

Последний раз редактировалось TruPAC; 27.05.2009 в 17:27..
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Верхушка Linux Foundation собралась в стенах штабквартиры Google scrat Мировые новости 0 18.06.2007 11:31
Обзор дистрибутивов Linux. rijy *nix 20 31.05.2007 19:29
Cracking Unix password files for beginners bxN5 Forum for discussion of ANTICHAT 2 03.04.2007 23:45
«Лаборатории Касперского»: Количество вредоносных программ под Linux резко возросло dinar_007 Мировые новости 9 20.08.2006 20:50



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ