Модераторы: LSD

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> СТОИТ ЛИ ПАРИТЬСЯ ? 
:(
    Опции темы
Akina
Дата 12.10.2004, 09:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: нет
Всего: 454



Цитата
так называмое "дельта-смещение"

ну т.к. для ХТ 32-битных операндов не существует, то вероятно
Код
PUSH ESP
POP EBX
если и не быстрее, то нагляднее...

Это сообщение отредактировал(а) Akina - 12.10.2004, 14:55


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
cardinal
Дата 12.10.2004, 09:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: нет
Всего: 99



Код
call @@GetCurrentOffset
@@GetCurrentOffset:
pop ebx

Что-то прикольное, надо будет поиграться с этим, чтобы получше понять смысл smile.gif

Я вот только одно не понимаю. ret же берет то, что лежит наверху стека или нет? А если мы делаем pop, то там уже ничего лежать не будет. Спрашивается - куда мы вернемся?


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
Girder
Дата 12.10.2004, 10:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Лентяй 2
***


Профиль
Группа: Участник Клуба
Сообщений: 1993
Регистрация: 12.5.2004

Репутация: нет
Всего: 155



cardinal стандартная фичка для получения регистра EIP(особенно полезен для кодов выполняемых в стеках, полиморфных программ и т.п. - то есть текущее расположение кода в памяти не известно, а знать хочется smile.gif ).
Смотри: при Call в стек заносится адресс возврата. При pop стек освобождается и адресс возврата помещается в данном случаии в ebx

Для лудшего понимания:
Код
Адресс(EIP)  Команда
0000:               Call $0 :т.е. ESP=ESP-4; => [ESP]=0005;
0005:               pop ebx :т.е. EBX=[ESP]; => ESP=ESP+4;
0006:               ...
Результат: мы знаем что команда pop ebx находится по адрессу 0005 (PS: т.к. команда pop ebx размером один байт - то EIP=0006)

Удачи.

Это сообщение отредактировал(а) Girder - 12.10.2004, 10:22


--------------------
Как слышим, так и пишим.
Истина где-то там...
PM   Вверх
Girder
Дата 12.10.2004, 10:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Лентяй 2
***


Профиль
Группа: Участник Клуба
Сообщений: 1993
Регистрация: 12.5.2004

Репутация: нет
Всего: 155



Глянул предыдущию страницу... оказывается Chingachguk уже тебе это расписал... smile.gif
Единственно где он ошибся, это здесь:
Код
;; - а тут в esi заносится адрес метки @@Run
lea esi,[ebx-(@@Run-@@Go)]
На самом деле в esi заносится адресс метки @@Go

Цитата
Спрашивается - куда мы вернемся?
Туда... кто вызвал данный код(mov edx,100...)

Удачи.

Это сообщение отредактировал(а) Girder - 12.10.2004, 13:53


--------------------
Как слышим, так и пишим.
Истина где-то там...
PM   Вверх
cardinal
Дата 12.10.2004, 14:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: нет
Всего: 99



Цитата(Girder @ 12.10.2004, 09:46)
Туда... кто вызвал данный код(mov edx,100...)

Girder, вот теперь я допер, спасибо... stena.gif Просто давно не программировал на асме.
Цитата(Girder @ 12.10.2004, 09:11)
cardinal стандартная фичка для получения регистра EIP(особенно полезен для кодов выполняемых в стеках, полиморфных программ и т.п. - то есть текущее расположение кода в памяти не известно, а знать хочется  ).

Я тоже самое делал проще... Приду домой гляну и напишу как, но что-то там с offset'ом. Операции call, pop не особо быстро выполняются и поэтому я тогда такой вариант не рассматривал.
Код
; не каждому компилятору понятные вещи, лень
; вникаться :)
;; - это не так, паскаль к примеру это поймет
;; - отлично
;; - а тут в esi заносится адрес метки @@Run
lea esi,[ebx-(@@Run-@@Go)]
...

А в MS Visual C++, такая вставка у меня не прокатила...

Chingachguk, а зачем тут такие навороты с самокопирующимся кодом, когда ведь можно цикл сделать? qstn.gif


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
Akina
Дата 12.10.2004, 14:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: нет
Всего: 454



Код
cseg segment byte public
assume cs:cseg,ds:cseg
org 100h
joke proc far
start:
mov bx,0ffh
xor si,si
call $+2
add dl,bh
lea dx,message
mov ah,9
int 21h
inc byte ptr ds:[pass]
retn
joke endp
message db 'Pass '
pass db '1.',0dh,0ah,24h
cseg ends
end start



--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
cardinal
Дата 12.10.2004, 18:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: нет
Всего: 99



Я делал так:
Код
 ...
 ...
 ...
 mov edi, offset lPixel2
 jmp lPixel  
lPixel2:
 ...
 ...
 ...
lPixel:
 ...
 ...
 ...
jmp edi

Никаких call и pop и соответственно намного быстрее работает...


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
Kaskad
Дата 13.10.2004, 16:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 324
Регистрация: 24.9.2004

Репутация: нет
Всего: 3



yasno.gif
Люди. А как вирсы писать на асме? Очень уж хочется пошкодничать adv/party.gif
а ещё слышал, что АСМ-любимый язык хакеров! Это правда? adv/camper.gif


--------------------
Well come to America!
PM MAIL   Вверх
cardinal
Дата 13.10.2004, 19:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: нет
Всего: 99



Цитата(Kaskad @ 13.10.2004, 15:59)
Люди. А как вирсы писать на асме? Очень уж хочется пошкодничать

http://forum.vingrad.ru/index.php?act=SR&f=27

Такое на форуме не обсуждать запрещено!


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
Chingachguk
Дата 14.10.2004, 08:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1232
Регистрация: 25.3.2002
Где: Москва

Репутация: нет
Всего: 18



Цитата
Никаких call и pop и соответственно намного быстрее работает...


То, что ты привел - не самокопирующийся код.

Цитата
Люди. А как вирсы писать на асме?


wasm.ru, раздел статей про вирусы. Сайт Z0mbie. VX-ORG.ua. etc.

Цитата
а ещё слышал, что АСМ-любимый язык хакеров!


Насчет "любимый" не обязательно, некоторые любят C. Дело в том, что хакер хочет знать, что происходит на самом деле, а на самом деле выполняются машинные инструкции.


--------------------
I don't like the drugs (but the drugs like me). M.Manson.
PM MAIL ICQ   Вверх
cardinal
Дата 14.10.2004, 09:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: нет
Всего: 99



Цитата(Chingachguk @ 14.10.2004, 07:33)
То, что ты привел - не самокопирующийся код.

Я же про "дельта-смещение" говорил...



--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
Chingachguk
Дата 14.10.2004, 10:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1232
Регистрация: 25.3.2002
Где: Москва

Репутация: нет
Всего: 18



cardinal

А при чем тут дельта-смещение ? Просто offset-ом ты не получишь, где в данный момент выполняется твой код,.


--------------------
I don't like the drugs (but the drugs like me). M.Manson.
PM MAIL ICQ   Вверх
cardinal
Дата 14.10.2004, 14:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: нет
Всего: 99



Может я на ручнике (что я пока не исключаю smile.gif), но в чем же разница в этих двух отрывках кода:
Код
...
...
...
mov edi, offset lPixel2
jmp lPixel  
lPixel2:
...
...
...
lPixel:
...
...
...
jmp edi

Код

...
...
...
call @@GetCurrentOffset
jmp lPixel
@@GetCurrentOffset:
...
...
...
lPixel:
...
...
...
pop ebx
jmp ebx



--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
Chingachguk
Дата 14.10.2004, 14:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1232
Регистрация: 25.3.2002
Где: Москва

Репутация: нет
Всего: 18



Код
mov edi, offset lPixel2


Это КОНСТАНТА. В edi помещается константа. В случае call+pop помещается ~ТЕКУЩЕЕ значение EIP.



--------------------
I don't like the drugs (but the drugs like me). M.Manson.
PM MAIL ICQ   Вверх
cardinal
Дата 14.10.2004, 14:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: нет
Всего: 99



Вот теперь начинает допирать потихоньку, но вот Chingachguk что я еще не понимаю:
Если ты где то написал call, то в stack попадет eip в момент call. Это так?


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
Страницы: (5) Все 1 2 [3] 4 5 
Ответ в темуСоздание новой темы Создание опроса
Правила ведения Религиозных войн
Smartov
1. Уважайте собеседника
2. Собеседник != враг
3. Старайтесь воздерживаться от тем вида "Windows Rulez" или "Linux Rulez"

С уважением, Smartov.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Религиозные войны | Следующая тема »


 




[ Время генерации скрипта: 0.0989 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.