![]() |
Модераторы: LSD |
![]() ![]() ![]() |
|
Kaskad |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 324 Регистрация: 24.9.2004 Репутация: нет Всего: 3 |
Вопрос. Стоит ли изучать Assembler? То говорят, что это полная ерунда, мол, устарел и т.п. Иногда читаешь... Да это самый крутой язык, любимец хакеров...
Говорят, что Assembler УСТАРЕЛ И НЕ НУЖЕН. Кому верить? ![]() Добавлено @ 11:56 Ещё, какие возможностипредоставляет ASSEMBLER кроме взаимодействия с аппаратурой? ![]() -------------------- Well come to America! |
|||
|
||||
maxim1000 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: нет Всего: 110 |
ответ можно получить, если подумать, что и под что хочется программировать
если писать интерфейсы к базам данных, к примеру, то, конечно. не стоит а если писать встроенное программное обеспечение для узкоспециализированных устройств - без ассемблера не обойтись это, конечно, два крайних случая, но вообще все зависит от задач Добавлено @ 12:00
ассемблер позволяет напрямую использовать процессор бОльшая часть (если не вся) его ресурсов доступно и из языков высокого уровня, ассемблер часто используют для ускорения чего-либо -------------------- qqq |
|||
|
||||
cardinal |
|
|||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: нет Всего: 99 |
Ну к словам maxim1000 осталось добавить только одно прикольное сравнение ассемблера с С/C++, которое я где-то вычитал.
С/C++: пробежать сто метров после выстрела. Ассемблер: дышать спокойно ждать выстрел сделал толчок label: дышать делать шаг шаг счетчик = шаг счетчик + 1 jump label, if шаг счетчик < 100 И это все дает понять, что если во втором случае спортсмен будет бежать сто метров не тратя ни на что время (потому, что ты ему все рассказал как делать), то в первом он может через 50 метров остановиться и отдохнуть ![]() ![]() Ну и в конце:
Да. -------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: нет Всего: 454 |
Изучать? Основы - непременно. По крайней мере будешь знать как работает компьютер "изнутри" - кодеру это более чем полезно независимо от того что и на чем он кодит.
А остальное - see above. Это сообщение отредактировал(а) Akina - 1.10.2004, 12:39 -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
Chingachguk |
|
||||||
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1232 Регистрация: 25.3.2002 Где: Москва Репутация: нет Всего: 18 |
Не. Все немного не так ![]() С/C++
Ассемблер
-------------------- I don't like the drugs (but the drugs like me). M.Manson. |
||||||
|
|||||||
-=::BlackCat::=- |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1456 Регистрация: 12.7.2003 Где: растёт анаша? Репутация: нет Всего: 6 |
5 баллов, есть над чем задуматся ![]() -------------------- -=::BlackCat::=- ![]() такой дуратцкий аватар потому как мой 100х100, а такие подгрузить нелзя, движок форума чо сам не может его переделать?? гррр, админ, форум косячит |
|||
|
||||
cardinal |
|
|||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: нет Всего: 99 |
Chingachguk
Думаю не всем смогут понять написанное ![]() -=::BlackCat::=- Ага... ![]() -------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
|||
|
||||
Ruterian |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 68 Регистрация: 9.1.2004 Где: Вязьма, Минск Репутация: нет Всего: нет |
К сожалению, уже и для микропроцессорных систем, таких как мобильные телефоны, винчестеры, mp3 плейеры итп. фирмварь пишется на СИ (в коде есть логотип компилятора). |
|||
|
||||
maxim1000 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: нет Всего: 110 |
я не говорю, что ВСЕ программное обеспечение пишется на ассемблере но учитывая частый дефицит ресурсов в таких устройствах приходится использовать ассемблер, например, для ускорения некоторых частей алгоритма специализированные процессоры имею настолько сложные команды, что компилятор, скорее всего не сможет оптимизировать код с их использованием (или придется немного расширять C) -------------------- qqq |
|||
|
||||
Улисс |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 7.10.2004 Где: за зелено-синим м орем, в длинном темном коридоре Репутация: нет Всего: нет |
Chingachguk, какой-то странный у тебя C\C++, да и ассемблер тоже.
ИМХО, ассемблер надо учить хотя бы ради удовольствия! Нет ничего прикольнее и интереснее программирования на ассемблере... Вообще, творятся странные вещи! Вырастает новое поколение программеров, взращенных и извращенных VCL-ом, VB и прочими RAD-средствами... Неужели когда-нибудь случится старый анекдот про COBOL-программиста и y2k? |
|||
|
||||
Kurt |
|
|||
Увлеченный ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1662 Регистрация: 22.8.2003 Где: Краснодар Репутация: нет Всего: 36 |
to Улисс
Хе, да ведь нужда заставляет! Когда тебе говорят, сделай-ка вот это и то как можно быстрее (имеется ввиду время разработки) - тут уже не до ASM'a. З.Ы. Хотя я за асм обоими руками и ногами. Тока нормальной работы с ним пока не найду. ![]() -------------------- Для корабля, который не знает куда плыть, нет попутного ветра... ((С) Архимед) ... Все знают, что это невозможно. Но случайно находится невежда, который этого не знает. Он-то и делает открытие.. ((С) А. Эйнштейн) |
|||
|
||||
Улисс |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 7.10.2004 Где: за зелено-синим м орем, в длинном темном коридоре Репутация: нет Всего: нет |
Kurt, я сам сейчас два проекта пишу, один на Delphi, другой -- на C++ Builder... А насчет нормальной работы -- ты плохо ищешь, спецов с хорошим уровнем знания C\C++ и ассемблера отрывают с руками, они (т.е. мы
![]() ![]() |
|||
|
||||
Улисс |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 7.10.2004 Где: за зелено-синим м орем, в длинном темном коридоре Репутация: нет Всего: нет |
Но безграмотность относительно ассемблера -- не самое страшное... Я уверен, что 9 дельфистов из 10 не отличат сортирвку пузырьком от сортировки Хоара! Насчет VB-программистов и говорить страшно. Или смешно...
|
|||
|
||||
cardinal |
|
||||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: нет Всего: 99 |
Не приобобщай ![]() А во-вторых я знаю (не лично) достаточно много примеров "VB-программистов", как ты их называешь, которые такие вещи пишут, посмотрев на которые я думаю ты перестанешь смеятся и изменишь свое мнение.
А все алгоритмы знать нельзя. А если интересует именно сортировка, то смотришь на сравнения этих алгоритмов (особенно классно если есть графики) и выбираешь самый подходящий. -------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
||||
|
|||||
chipset |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4071 Регистрация: 11.1.2003 Где: Seattle, US Репутация: 4 Всего: 165 |
Chingachguk
Не пойму где ты там увидел С++... ![]() Я например не очень понимаю зачем учить АСМ если есть Си С++. И быстрее разрабатать и работает не намного медленее ИММХО. А то что программер не может сделать быстрый код на С++, дело не в С++ а кривизне рук программиста. А ООП у асма есть? ![]() Вот и я о чем.. ![]() --------------------
|
|||
|
||||
krid24 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 19 Регистрация: 23.9.2004 Где: Москва Репутация: нет Всего: 2 |
ООП - просто еще один уровень абстрагирования. Такая же надстройка над ЯВУ, как ЯВУ - надстройка над asm. А основа - это asm. А профессионал должен знать основы. Так что Kaskad, делай выводы. |
|||
|
||||
Chingachguk |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1232 Регистрация: 25.3.2002 Где: Москва Репутация: нет Всего: 18 |
Есть. Есть такая книга Тома Свана - в ней подробно рассказывается, как писать на асме с использованием объектов. Этот Том Сван о чем только не писал. Кажется, что-то есть на эту тему на wasm.ru. А по поводу моего поста C++ vs ASM - это был ответный наезд ![]() -------------------- I don't like the drugs (but the drugs like me). M.Manson. |
|||
|
||||
cardinal |
|
||||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: нет Всего: 99 |
А ты в asm листинги посмотри, которые тебе копилятор может сделать и поймешь. ![]()
Chingachguk, ну ты даешь... Может ты еще раз прочитаешь то, что я написал? Я говорил о том, что ты не знаешь, что из написанного делает компилятор C/C++. Где я писал о размере программы? ![]() -------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
||||
|
|||||
Chingachguk |
|
||||
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1232 Регистрация: 25.3.2002 Где: Москва Репутация: нет Всего: 18 |
Или я не так понял что-то ? -------------------- I don't like the drugs (but the drugs like me). M.Manson. |
||||
|
|||||
cardinal |
|
|||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: нет Всего: 99 |
-------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
|||
|
||||
chipset |
|
||||||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4071 Регистрация: 11.1.2003 Где: Seattle, US Репутация: 4 Всего: 165 |
И что? АСМ как АСМ.... ![]() Я всецело доверяю оптимизирущему компилятору. ![]() Мы помойму где то спорили C++ vs ASM, никто не помнит чем соревнование закончилось и закончилось ли вообще? Добавлено @ 17:27
Ты уверен что это удобно, писать на асме с использованием обьектов? И соблюдаются все три основы? Добавлено @ 17:28 Давайте перенесем это в Религиозные войны ![]() --------------------
|
||||||
|
|||||||
Chingachguk |
|
||||
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1232 Регистрация: 25.3.2002 Где: Москва Репутация: нет Всего: 18 |
cardinal
Я это тоже читал. Все равно мне не нравится такого рода сравнения, даже в виде шутки... Этой идее преподносить HLL vs asm в виде там понятнее - но медленне, а там - непонятнее, но иногда лучше - лет десять с лишним... Вряд ли тот, кто серьезно писал на асм, согласится с этим.
Я не знаю, удобно это или нет, я даже не знаю толком ни одной из этих основ. Я просто видел это в виде конечного результата - в виде машинных кодов - это ужас.
А что спорить - слова тратить ? Все равно никто не изменит свою точку зрения. Я уж точно не поменяю, пока мои оппоненты не попробуют написать что-нибудь более десяти строк на асме. Я ведь писал на HLL много и пробовал т.е. предмет спора с двух сторон. Имеет смысл соревнование типа "кто круче прогу напишет" - проводил было oleg1973 такое - да что-то подсдулись вроде все "адепты языков высокого уровня". -------------------- I don't like the drugs (but the drugs like me). M.Manson. |
||||
|
|||||
maxim1000 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: нет Всего: 110 |
если писать приложения под Windows c интерфейсом и прочим - я тоже с удовольствием доверюсь компилятору ![]() однако, грамотное переписывание на ассемблер специализированного процессора функции, ему подходящей, можно добиться ускорения в десятки раз все дело в том, что C разработан как универсальный язык, в нем нет, например оператора скалярного произведения двух векторов (ну очень часто встречается при обработке аудио и видео), а в специализированных процессорах на каждую итерацию можно вообще тратить по одному такту на шаг цикла, что в C достичь довольно-таки сложно -------------------- qqq |
|||
|
||||
Chingachguk |
|
||||
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1232 Регистрация: 25.3.2002 Где: Москва Репутация: нет Всего: 18 |
Читал про какой-то компиллер (кажется, что-то типа C от MS). Так там был такой прикол:
Так вот, оптимизирующий компиллятор удалял последнее действие в этой функции ;) -------------------- I don't like the drugs (but the drugs like me). M.Manson. |
||||
|
|||||
cardinal |
|
||||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: нет Всего: 99 |
Да, но именно это там было написано, а не то, что что-то компактней написано, а что-то нет...
У меня есть одна процедурка, которая делает из 24 битного bmp 1 битный (пример ниже) так она размером в 1200 строк. Я не могу сейчас сказать точно, но я переписав изначальный вариант в 100 строк написанный на Си, ускорил эту процедурку раз в 100. Может будешь меня за достойного оппонента считать? ![]() p.s. Сейчас придут девушки и скажут: "Ну вот, опять %:№ сравнивать начали." ![]() Присоединённый файл ( Кол-во скачиваний: 1 ) ![]() -------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
||||
|
|||||
Chingachguk |
|
||||
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1232 Регистрация: 25.3.2002 Где: Москва Репутация: нет Всего: 18 |
Где ?
Ну так это прекрасно ! Что ж ты такие шаблонные сравнения делаешь ? ;) Неужели достигнув такого результата (100 раз по твои словам !) ты не оценил мощи асма ? ВСЕМ: не обижайтесь, парни ! Добавлено @ 21:37 А, у меня сразу картинка не загрузилась ![]() -------------------- I don't like the drugs (but the drugs like me). M.Manson. |
||||
|
|||||
cardinal |
|
||||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: нет Всего: 99 |
Ты хочешь, чтобы я сюда исходник выкинул? ![]()
Конечно оценил ![]() -------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
||||
|
|||||
Chingachguk |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1232 Регистрация: 25.3.2002 Где: Москва Репутация: нет Всего: 18 |
Ну объясни тогда, что делает мой вариант ассемблера про "бегуна на 100 метров", который тебе не понравился ;) -------------------- I don't like the drugs (but the drugs like me). M.Manson. |
|||
|
||||
cardinal |
|
||||||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: нет Всего: 99 |
А это я где сказал? ![]()
Ну попробую ![]()
-------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
||||||
|
|||||||
Chingachguk |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1232 Регистрация: 25.3.2002 Где: Москва Репутация: нет Всего: 18 |
Не, смотри:
Таким образом, это - самокопирующийся код, который будет выполняться следующим образом: пока счетчик (edx) не равен 0, он будет копировать себя далее по коду и опять выполняться. Естественно, внутри него можно разместить любую полезную нагрузку. Команды: call @@GetCurrentOffset @@GetCurrentOffset: pop ebx Предназначены для вычисления текущего смещения кода, поскольку он не фиксирован в памяти. Это так называмое "дельта-смещение", а такой код называется "базонезависимым" - он может выполянться в любом месте памяти без предварительной настройки. Используется в практически любой современной защите, вирусах, в коде загрузчика (MBR, BOOT сектора). -------------------- I don't like the drugs (but the drugs like me). M.Manson. |
|||
|
||||
Akina |
|
||||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: нет Всего: 454 |
ну т.к. для ХТ 32-битных операндов не существует, то вероятно
Это сообщение отредактировал(а) Akina - 12.10.2004, 14:55 -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
||||
|
|||||
cardinal |
|
|||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: нет Всего: 99 |
Что-то прикольное, надо будет поиграться с этим, чтобы получше понять смысл ![]() Я вот только одно не понимаю. ret же берет то, что лежит наверху стека или нет? А если мы делаем pop, то там уже ничего лежать не будет. Спрашивается - куда мы вернемся? -------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
|||
|
||||
Girder |
|
|||
![]() Лентяй 2 ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1993 Регистрация: 12.5.2004 Репутация: нет Всего: 155 |
cardinal стандартная фичка для получения регистра EIP(особенно полезен для кодов выполняемых в стеках, полиморфных программ и т.п. - то есть текущее расположение кода в памяти не известно, а знать хочется
![]() Смотри: при Call в стек заносится адресс возврата. При pop стек освобождается и адресс возврата помещается в данном случаии в ebx Для лудшего понимания:
Удачи. Это сообщение отредактировал(а) Girder - 12.10.2004, 10:22 -------------------- Как слышим, так и пишим. Истина где-то там... |
|||
|
||||
Girder |
|
||||
![]() Лентяй 2 ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1993 Регистрация: 12.5.2004 Репутация: нет Всего: 155 |
Глянул предыдущию страницу... оказывается Chingachguk уже тебе это расписал...
![]() Единственно где он ошибся, это здесь:
Удачи. Это сообщение отредактировал(а) Girder - 12.10.2004, 13:53 -------------------- Как слышим, так и пишим. Истина где-то там... |
||||
|
|||||
cardinal |
|
||||||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: нет Всего: 99 |
Girder, вот теперь я допер, спасибо... ![]()
Я тоже самое делал проще... Приду домой гляну и напишу как, но что-то там с offset'ом. Операции call, pop не особо быстро выполняются и поэтому я тогда такой вариант не рассматривал.
А в MS Visual C++, такая вставка у меня не прокатила... Chingachguk, а зачем тут такие навороты с самокопирующимся кодом, когда ведь можно цикл сделать? ![]() -------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
||||||
|
|||||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: нет Всего: 454 |
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
cardinal |
|
|||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: нет Всего: 99 |
Я делал так:
Никаких call и pop и соответственно намного быстрее работает... -------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
|||
|
||||
Kaskad |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 324 Регистрация: 24.9.2004 Репутация: нет Всего: 3 |
![]() Люди. А как вирсы писать на асме? Очень уж хочется пошкодничать ![]() а ещё слышал, что АСМ-любимый язык хакеров! Это правда? ![]() -------------------- Well come to America! |
|||
|
||||
cardinal |
|
|||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: нет Всего: 99 |
http://forum.vingrad.ru/index.php?act=SR&f=27 Такое на форуме не обсуждать запрещено! -------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
|||
|
||||
Chingachguk |
|
||||||
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1232 Регистрация: 25.3.2002 Где: Москва Репутация: нет Всего: 18 |
То, что ты привел - не самокопирующийся код.
wasm.ru, раздел статей про вирусы. Сайт Z0mbie. VX-ORG.ua. etc.
Насчет "любимый" не обязательно, некоторые любят C. Дело в том, что хакер хочет знать, что происходит на самом деле, а на самом деле выполняются машинные инструкции. -------------------- I don't like the drugs (but the drugs like me). M.Manson. |
||||||
|
|||||||
cardinal |
|
|||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: нет Всего: 99 |
Я же про "дельта-смещение" говорил... -------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
|||
|
||||
Chingachguk |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1232 Регистрация: 25.3.2002 Где: Москва Репутация: нет Всего: 18 |
cardinal
А при чем тут дельта-смещение ? Просто offset-ом ты не получишь, где в данный момент выполняется твой код,. -------------------- I don't like the drugs (but the drugs like me). M.Manson. |
|||
|
||||
cardinal |
|
||||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: нет Всего: 99 |
Может я на ручнике (что я пока не исключаю
![]()
-------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
||||
|
|||||
Chingachguk |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1232 Регистрация: 25.3.2002 Где: Москва Репутация: нет Всего: 18 |
Это КОНСТАНТА. В edi помещается константа. В случае call+pop помещается ~ТЕКУЩЕЕ значение EIP. -------------------- I don't like the drugs (but the drugs like me). M.Manson. |
|||
|
||||
cardinal |
|
|||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: нет Всего: 99 |
Вот теперь начинает допирать потихоньку, но вот Chingachguk что я еще не понимаю:
Если ты где то написал call, то в stack попадет eip в момент call. Это так? -------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
|||
|
||||
Chingachguk |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1232 Регистрация: 25.3.2002 Где: Москва Репутация: нет Всего: 18 |
Нет. В стек попадает тот адрес, куда нужно вернуться после выполнения подпрограммы - команда, следующая за call.
-------------------- I don't like the drugs (but the drugs like me). M.Manson. |
|||
|
||||
cardinal |
|
|||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: нет Всего: 99 |
Я это и имел в виду... ![]() Так вот вопрос: константа, не константа... В чем преимущество? Что можно сделать с call, что нельзя сделать так как я сделал? -------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
|||
|
||||
Chingachguk |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1232 Регистрация: 25.3.2002 Где: Москва Репутация: нет Всего: 18 |
БЛИН ! Представь себе, что твой код выполняется в ПРОИЗВОЛЬНОЙ области памяти. Ты не можешь привязываться к тому, что программа начала выполнение с такого-то адреса и т.п.
-------------------- I don't like the drugs (but the drugs like me). M.Manson. |
|||
|
||||
Girder |
|
||||
![]() Лентяй 2 ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1993 Регистрация: 12.5.2004 Репутация: нет Всего: 155 |
Chingachguk не кипятись, тут надо на примере...
cardinal к примеру возмем какую-нить функцию(и твой случай ![]()
Т.в. к примеру тебе потребовалось размножить этот счетчик, т.е. несколько счетчиков под разные задачи... под каждую задачу свой уникальный счетчик! Память выделяется динамически... к примеру под второй выделение по адрессу: 8130h Т.о. второй код будет выглядит так: :
Итог: без корекции адресов и та и другая(и т.д.) будут всегда изменять значение по адрессу 000Eh(работать с этим адрессом) - т.е. счетчики не уникальные и в принципи все копии счетчика не нужны. PS: А теперь представь что вторая копия вообще нужно забросить в другой процесс! А когда ты будеш писать независящий код от его место выполнения, то... .... далее сам ![]() Это сообщение отредактировал(а) Girder - 14.10.2004, 21:48 -------------------- Как слышим, так и пишим. Истина где-то там... |
||||
|
|||||
cardinal |
|
|||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: нет Всего: 99 |
Girder, спасибо...
Ладно. Понял я. Но вот кто мне объяснит: зачем такие вещи писать на асме? Я то думал о том, что речь идет о том, что мы хотим "прыгнуть" по определеннуму адресу в программе и все. Для этого можно хоть так, хоть так поступить. Я даже не думал о динамическом выделении памяти, не о самокопирующимся коде и т.д. Для этого помоему можно с таким же успехом использовать Си. Для меня asm является возможностью ускорить процесс, а push, pop и похожее я стараюсь не использовать вообще (пока такое возможно конечно), т.к. тут я проигрываю (тому же компилятору Си)... Динамическое выделение памяти и ассемблер вместе я пока не разу не использовал, а тем более влезание в другие процессы... Не было необходимости. Я занимался пока больше embedded systems, а там каждый чих может дорого обойтись. Вместо динамического выделения памяти гораздо лучше бывает просто сделать буффер побольше и им пользоваться, а о нескольких процессах и речи быть иногда не может. Переключение между ними занимает слишком долго... Chingachguk, вообще это интересный ход (в котором я не вижу пока никакого преимущества в сравнении с другими языками; то есть не вижу возможности исплоьзовать), с которым я еще с удовольствием на практике поиграюсь. Спасибо за терпение. Не обижайся! Если честно я твои сообщения всегда с интересом читаю... Прославился ты своими уроками у нас на форуме ![]() -------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
|||
|
||||
Girder |
|
|||
![]() Лентяй 2 ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1993 Регистрация: 12.5.2004 Репутация: нет Всего: 155 |
![]() Ну а для чего это нужно: 1)Защита (в том числе разпакеры ![]() 2)Обход защиты (когда ни зя, а очень хочется ![]() 3)Атака (Имхо: 2 и 3 за частую одно и тоже); 4)Показать себя ![]() -------------------- Как слышим, так и пишим. Истина где-то там... |
|||
|
||||
cardinal |
|
|||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: нет Всего: 99 |
Я не очень понял. То есть если сделать как я и перебросить процедуры в другое место в памяти, то они перестанут работать? Ты о том, что значение регистра может уползти? -------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
|||
|
||||
oleg1973 |
|
|||
![]() asm fanat ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3283 Регистрация: 16.7.2003 Где: Italy Репутация: 1 Всего: 34 |
в некоторых случаях асм незаменим
![]() к примеру для борьбы с отладкой простой и всем известный пример для дебугеров пользовательского уровня работающих на int3
всем известно что данные трасировшики втыкают int3 после обрабатываемой команды, в данном случае после mov al,[met] там у нас стоит NOP (код 0х90) ну а далше делаем проверку и все такое ![]() -------------------- SST 465555 icq 200-512-712 |
|||
|
||||
Girder |
|
||||
![]() Лентяй 2 ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1993 Регистрация: 12.5.2004 Репутация: нет Всего: 155 |
Не совсем... Смотри к примеру пример oleg1973 - в твоем случаи при переносе кода и передачи управления в новое место AL=90h, т.е. защита не сработает ![]() -------------------- Как слышим, так и пишим. Истина где-то там... |
||||
|
|||||
oleg1973 |
|
|||
![]() asm fanat ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3283 Регистрация: 16.7.2003 Где: Italy Репутация: 1 Всего: 34 |
Girder
![]() ![]()
-------------------- SST 465555 icq 200-512-712 |
|||
|
||||
Girder |
|
|||
![]() Лентяй 2 ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1993 Регистрация: 12.5.2004 Репутация: нет Всего: 155 |
oleg1973 кто б спорил... Как раз именно это и пытаемся объяснить cardinal-у. О преимуществах и областях применения подобного кода(что ты привел выше) и ассемблера по сравнению с языками высокого уровня
![]() ![]() Это сообщение отредактировал(а) Girder - 16.10.2004, 21:09 -------------------- Как слышим, так и пишим. Истина где-то там... |
|||
|
||||
bagira |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2858 Регистрация: 25.10.2003 Где: в тайге Уральских гор Репутация: нет Всего: 123 |
![]() ![]() -------------------- Сегодня ты не бродил, не искал, не любил - можно сказать - и не жил... Ф.Х. Дагларджа (Турция) http://zveriolginovour.ru/ https://vmeste.yandex.ru/zveriolginovour |
|||
|
||||
Chingachguk |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1232 Регистрация: 25.3.2002 Где: Москва Репутация: нет Всего: 18 |
1. Я не обижался ;) 2. Преимущества тебе объяснили ! Есть задачи, в которых без таких трюков тяжеловато; я бы еще упомянул "полезные" приложения типа монитра реестровых функций, сетевого обмена, антивирусы всякие - почитай, как делается перехват апи-функций и т.п., еще бы я про анализ аварийных дампов добавил. Или вот еще: на васме.ru недавно человек пост сделал: так он с целью повышения быстродействия на ходу перестраивает выполнимый код наиболее оптимальным способом. -------------------- I don't like the drugs (but the drugs like me). M.Manson. |
|||
|
||||
oleg1973 |
|
|||
![]() asm fanat ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3283 Регистрация: 16.7.2003 Где: Italy Репутация: 1 Всего: 34 |
Chingachguk
не вполне по "правилам" на лету код перестраивать ![]() ![]() ![]() код должен быть лехкочитаемым ![]() ![]() ![]() последний раз я такое на z80 делал ![]() -------------------- SST 465555 icq 200-512-712 |
|||
|
||||
Chingachguk |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1232 Регистрация: 25.3.2002 Где: Москва Репутация: нет Всего: 18 |
oleg1973
Для асма ;) -------------------- I don't like the drugs (but the drugs like me). M.Manson. |
|||
|
||||
Се ля ви |
|
|||
![]() Java/SOAрхитектор ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 2016 Регистрация: 5.6.2004 Где: place without tim e and space Репутация: 8 Всего: 127 |
IMHO, основная функция ASM`а в наше время - это низкоуровневая отладка откомпилёного кода и асемблерные вставки в программах для убыстрения работы всяких циклов и рекурсии, связанных с вычислениями...
А писать на асме сложные современные приложения - рехнёшься, к тому же никаких сроков не хватит! ![]() -------------------- |
|||
|
||||
.RADIX |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 536 Регистрация: 19.11.2003 Репутация: нет Всего: 0 |
Асм ещё долго не сойдёт со сцены.
-------------------- ASM Forever |
|||
|
||||
bagira |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2858 Регистрация: 25.10.2003 Где: в тайге Уральских гор Репутация: нет Всего: 123 |
А также - работа с железом напрямую. Эта область довольно узкая, но еще долго будет нужна.
Да, ассемблер не для этого предназначен. -------------------- Сегодня ты не бродил, не искал, не любил - можно сказать - и не жил... Ф.Х. Дагларджа (Турция) http://zveriolginovour.ru/ https://vmeste.yandex.ru/zveriolginovour |
||||
|
|||||
chipset |
|
||||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4071 Регистрация: 11.1.2003 Где: Seattle, US Репутация: 4 Всего: 165 |
Есть такая вещь как Driver Development Kit Добавлено @ 19:08 А из LPT порта вообще можно при помощи бэйсика элементарно читать.. ![]() Это сообщение отредактировал(а) chipset - 27.11.2004, 19:10 --------------------
|
||||
|
|||||
bagira |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2858 Регистрация: 25.10.2003 Где: в тайге Уральских гор Репутация: нет Всего: 123 |
Да, но я со стандартными портами не работаю. -------------------- Сегодня ты не бродил, не искал, не любил - можно сказать - и не жил... Ф.Х. Дагларджа (Турция) http://zveriolginovour.ru/ https://vmeste.yandex.ru/zveriolginovour |
|||
|
||||
Medved |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 7209 Регистрация: 15.9.2002 Где: Kazakhstan, Astan a Репутация: 2 Всего: 154 |
Интересная дисскусия.
-------------------- |
|||
|
||||
![]() ![]() ![]() |
Правила ведения Религиозных войн | |
|
1. Уважайте собеседника 2. Собеседник != враг 3. Старайтесь воздерживаться от тем вида "Windows Rulez" или "Linux Rulez" С уважением, Smartov. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Религиозные войны | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |