LINUX.ORG.RU
ФорумTalks

[Asm][Linux] и програмирование

 ,


0

1

Хочу научится программировать на ассемблере в линуксе и фрибсд. Под досом и форточками умею.

Посоветуйте хороший компилятор асма, дизасемблер и отладчик. (и книну про испльзование этого добра в *nix)

Вопросы:

1. В плане реверс-инженеринга вскрытие и отладка FreeBSD и Linux программ сильно отличается??

★★★★

Последнее исправление: ymuv (всего исправлений: 2)

>> В плане реверс-инженеринга вскрытие FreeBSD и Linux программ сильно отличается??

Сильно. Тут есть готовые исходные коды. Но ты ломай-вскрывай, это интереснее.

GotF ★★★★★
()

С асмом под линухом туго. Нормальных ассемблеров нет. А те что есть - в нотации AT&T - то еще вырвиглазие.

Поставь лучше DOSBox и учи ассемлер в нем - TASM, MASM. Или в виртуалку Колибри засунь, там хороший ассемблер.

pat_minus
()

>сильно отличается
Другой формат исполняемых файлов. Немного другой способ работы с динамическими библиотеками (но тут могу ошибаться). Отсутствие недокументированных возможностей ОС.
А вообще процессоры одни и те же, так что ...

P.S. копилировать, вроде бы, одна из утилит gcc умеет. Дизасемблер - вроде бы IDA работает в лине...

trex6 ★★★★★
()

>компилятор асма

nasm или gas. И да, по секрету эти штуки называются не «компиляторы» а «ассемблеры».

дизасемблер

IDA. Можно даже виндовый в вайне (ибо в линупсовом интерфейс то ещё золотце).

отладчик

gdb?

1. В плане реверс-инженеринга вскрытие и отладка FreeBSD и Linux программ сильно отличается??

А зачем ломать то к чему и так есть исходники? BSD и линупс различаются в основном calling convention, подробнее расскажет гугл.

svr4
()

Fasm тебе в помощь, на нём кстати целая операционка написана(KolibriOS которая) :)

xterro ★★★★★
()

> Посоветуйте хороший компилятор асма, дизасемблер и отладчик.

Компилятор - NASM (если нужно как в форточках), а вообще куда ценнее опыт работы с интелловской аннотацией асма, ибо понимается gcc/g++, посему можно делать ассемблерные вставки в С/С++.

Дизассемблер/отладчик - gdb, без вариантов.

В плане реверс-инженеринга вскрытие FreeBSD и Linux программ сильно отличается??

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

segfault ★★★★★
()

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

Посоветуйте хороший компилятор асма

FASM

q11q11 ★★★★★
()
Ответ на: комментарий от segfault

>Ах, да: я слышал про сжатие/преобразование данных в контейнере исполняемых файлов в винде

man upx.

svr4
()
Ответ на: комментарий от pat_minus

>С асмом под линухом туго. Нормальных ассемблеров нет. А те что есть - в нотации AT&T

С нотацией Intel есть fasm и nasm, чего и советую ТСу.

Или в виртуалку Колибри засунь, там хороший ассемблер.

Там как раз fasm.

gentoo_root ★★★★★
()
Ответ на: комментарий от svr4

>Хочу научится программировать на ассемблере в линуксе и фрибсд. Под досом и форточками умею.

научится в линуксе и фрибсд. Под форточками умею.

Я думал он спрашивает про отличие от форточек. Промахнулся маленько.

trex6 ★★★★★
()

>Хочу научится

После освоения возвратного наклонения, тебе будет не страшен и asm под линукс... И фрибсд.

slackwarrior ★★★★★
()
Ответ на: комментарий от slackwarrior

>После освоения возвратного наклонения, тебе

Он-то из Киева, если не врёт. Ему простительно. А вот у тебя лишняя запятая наблюдается, дорогой брат по оружию: «наклонения, тебе». Хайль Розенталь!

massimus ★★★
()
Ответ на: комментарий от trex6

в нотации AT&T

А она действительно так плоха?

Я тебе так скажу. Если бы я вначале при изучении наткнулся на нотацию AT&T, я бы просто дальше первой страницы не стал разбираться.

pat_minus
()
Ответ на: комментарий от trex6

Просто вендузятники сдают себя тем что учили сначала асм на винде и соответственно AT&T синтаксис у них вызывает когнитивный диссонанс. Ну и доков нихрена нету. Когда искал мне инфа даже у эппла по as`у больше понравилась, чем та которая по info as.

vladkuzm
()
Ответ на: комментарий от pat_minus

>А те что есть - в нотации AT&T - то еще вырвиглазие.

Good news are that starting from binutils 2.10 release, GAS supports Intel syntax too. It can be triggered with .intel_syntax directive.

dimon555 ★★★★★
()
Ответ на: комментарий от pat_minus

>Нормальных ассемблеров нет. А те что есть - в нотации AT&T

nasm, yasm, fasm, gas с intel-синтаксисом.

uzbl
()

>дизасемблер

Для начала хватит objdump, для хитро сделанной проприетарщины - ida pro.

uzbl
()
Ответ на: комментарий от segfault

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

4.2

uzbl
()

> Посоветуйте хороший компилятор асма, дизасемблер и отладчик
гнутые не подходят? ;]

книну про испльзование этого добра в *nix

Очень сомневаюсь, что такая есть. Гугл знает туторы и howto по асму под линукс, ищи.

kermzyxer
()
Ответ на: комментарий от kermzyxer

Она не так уж и сильно отличается от intel'овской. Я бы сказал, что она несколько менее наглядна.

Вот именно. В таком деле как ассемблер наглядность превыше всего. В Intel-синтаксисе ассемблер как бы отображает низкоуровневую структуру процессора - пересылки регистр-память видны и понятны, прозрачен индексированный доступ. В AT&T все это очень мутно выглядит в коде. Посему Intel-синтаксис удобен для ассемблера, работающего с Intel Architecture.

Скажу больше - изучая ассемблер в Intel-синтаксисе, ты лучше понимаешь устройство Intel-микропроцессора. Изучая в AT&T синтаксисе, ты себя только больше запутаешь.

pat_minus
()

А ты хочешь выучить все 100500 архитектур? Силен, силен, ничего не скажешь.

shimon ★★★★★
()

А мне нравится нотация AT&T.

Особенно скобочки как разименование, порядок тоже более правильный, когда я пишу mov 1,2, гораздо логичнее двигать из 1 в 2. Постфиксы тоже рулят. Сравните 'mov DWORD PTR [ebp-4], 5' и 'movl $5,-4(%ebp)'.

ЧЯДНТ?

Yareg ★★★
()

Asm: nasm

Disasm: IDA (выхлоп некомпилябелен)

Отладчик: GDB, EDB, ...

Deleted
()
Ответ на: комментарий от pat_minus

> В Intel-синтаксисе ассемблер как бы отображает низкоуровневую структуру процессора
Хочу заметить, что наоборот. Покури intel soft. dev. manual на тему представления команд а памяти. Обрати внимание, что в intel'овском синтаксисе команды с одним названием имеют разные OP-коды, а в AT&T'шном у таких команд разные названия. Но это тоже фигня, т.к. оба синтаксиса нефига не отображаются на низкоур. струкуры initel'овских монстров.

kermzyxer
()

Под досом и форточками умею.

Посоветуйте хороший компилятор асма, дизасемблер и отладчик.

Похоже, ни под досом, ни под форточками ты программировать не умеешь.

Miguel ★★★★★
()

Гууууууууууууголь в помощь.

Deleted
()
Ответ на: комментарий от svr4

А зачем ломать то к чему и так есть исходники?

Да! Лучше дровишки наломай!

ados ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.