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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> VB + asm, subj 
:(
    Опции темы
oleg1973
Дата 4.4.2004, 02:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


asm fanat
****


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

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



был тут флейм по поводу сабжа smile.gif
был даже прикол по поводу smile.gif (шутка типа )
вот я тоже решил подумать (я в VB баран бараном так что если че не так поправьте, это теоретические предпосылки к реализации)
кароче нада делать так
делаем некий массив с нашим откомпилированым кодом
типа char[] так далее
дальше нам нужна внешняя либа которая собственно и запустит код
тоесть прога на ВБ вызывает эту либу и передает ей в качестве параметра адрес массива
либа в свою очередь делает виртуал протект для того сегмента в котором массив ( сто пудово дата сегмент и не имеет атрибута ехе) и устанавливает ему окромя реад-врите еще и ехе флажок, ну и делает jmp туда
все чики поки smile.gif код будет запущен smile.gif


--------------------
SST 465555
icq 200-512-712
PM MAIL WWW ICQ   Вверх
cardinal
Дата 4.4.2004, 13:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


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

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



Цитата
ну и делает jmp туда

Тут не уверен. Было предположение, что она отдельный поток вызывает с этой процедурой. Просто кто-то сказал если я не ошибаюсь, что также можно хуки ставить. Не проверял и не обдумывал, пока не до того...
Цитата
код будет запущен

И к чему это? Конечно будет запущен smile.gif
p.s. как ты понял тоже самое можно провернуть и в любом другом языке, который разрешает вызовы API


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

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


asm fanat
****


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

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



cardinal
да я это давно понял smile.gif
тода уж нада упростить все
в теории нада обработчик исключений на адрес массива переставить
потом ченить на ноль к примеру поделить
smile.gif


--------------------
SST 465555
icq 200-512-712
PM MAIL WWW ICQ   Вверх
cardinal
Дата 4.4.2004, 14:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


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

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



Если честно: я ни хрена не понял wink.gif


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

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


asm fanat
****


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

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



cardinal
ну что происходит когда на ноль делиш к примеру? или ud2 делаеш?
вылазит окошко о том что прога выполнила ..... и так далее, тоесть срабатывает вындосовский обработчик
если к примеру адрес этого самого обработчика перенести на адрес массива с нашим кодом
то полсе тогоже самого деления на ноль будет выполнен наш код
smile.gif


--------------------
SST 465555
icq 200-512-712
PM MAIL WWW ICQ   Вверх
cardinal
Дата 4.4.2004, 17:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


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

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



Цитата
ну что происходит когда на ноль делиш к примеру?

вылазит ошибка... (это я думаю про себя)...
Цитата
или ud2 делаеш?

не знаю, что такое ud2...
Цитата
вылазит окошко о том что прога выполнила

в смысле выполнила ошибку?
Цитата
то полсе тогоже самого деления на ноль будет выполнен наш код

Ииииии что это нам даст? smile.gif

p.s. извини если сильно торможу - у меня от pn переходов сейчас голова пухнет wink.gif


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

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


Опытный
**


Профиль
Группа: Участник
Сообщений: 329
Регистрация: 22.2.2004
Где: Казахстан, Алматы

Репутация: 4
Всего: 6



Есть прекрасные исходники по этой теме, кто интересуется - Сюда
PM MAIL   Вверх
cardinal
Дата 4.4.2004, 21:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


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

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



Это я изучал, когда писал свою собственную статейку на этот счет. Можешь посмотреть:
http://forum.vingrad.ru/index.php?showtopic=15962
А вообще на том сайте, который ты указал, есть еще пара интересных вещей... Надо будет почитать.


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

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


asm fanat
****


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

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



bom
ну и мы про то же
Цитата
Кроме того в программе есть несложные (уже не на ассемблере, а на API) реализации диалоговых окон отрытия и сохранения файлов,

а это просто изумительная фраза smile.gif



--------------------
SST 465555
icq 200-512-712
PM MAIL WWW ICQ   Вверх
bom
Дата 5.4.2004, 09:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 329
Регистрация: 22.2.2004
Где: Казахстан, Алматы

Репутация: 4
Всего: 6



oleg1973

Цитата
это просто изумительная фраза


Для справки.
Юзанье API функций в VB довольно геморойное дело по сравнению с теми же Дельфями.
PM MAIL   Вверх
oleg1973
Дата 5.4.2004, 15:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


asm fanat
****


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

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



bom
для справки
Цитата
(уже не на ассемблере, а на API)

API не язык програмирования smile.gif


--------------------
SST 465555
icq 200-512-712
PM MAIL WWW ICQ   Вверх
p0s0l
Дата 5.4.2004, 15:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Г-н Посол
****


Профиль
Группа: Экс. модератор
Сообщений: 3668
Регистрация: 13.7.2003
Где: 58°38' с.ш. 4 9°41' в.д.

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



Цитата(oleg1973 @ 4.4.2004, 02:02)
был тут флейм по поводу сабжа smile.gif
был даже прикол по поводу smile.gif (шутка типа )
вот я тоже решил подумать (я в VB баран бараном так что если че не так поправьте, это теоретические предпосылки к реализации)
кароче нада делать так
делаем некий массив с нашим откомпилированым кодом
типа char[] так далее
дальше нам нужна внешняя либа которая собственно и запустит код
тоесть прога на ВБ вызывает эту либу и передает ей в качестве параметра адрес массива
либа в свою очередь делает виртуал протект для того сегмента в котором массив ( сто пудово дата сегмент и не имеет атрибута ехе) и устанавливает ему окромя реад-врите еще и ехе флажок, ну и делает jmp туда
все чики поки smile.gif код будет запущен smile.gif

И чем это дело-то уростит ? Пару ненужных лишних параметров не придется передавать ?
Цитата
тоесть прога на ВБ вызывает эту либу и передает ей в качестве параметра адрес массива

Как раз то и делается в примере, внешняя либа - это user32.dll, вызывает CallWindowProcA, и в качестве параметра передаёт адрес массива, а также и доп. параметры, которые могут понадобится в функции...
Добавлено @ 15:39
Насчет виртуал протекта - можно 1 раз вначале проги это сделать на все данные и всё. Но раз Cardinal ничего не делал, значит и так доступно для исполнения...

Добавлено @ 15:43
Или же, Олег, я тебя не понял ? smile.gif


--------------------
С уважением, г-н Посол.
PM   Вверх
cardinal
Дата 5.4.2004, 15:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


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

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



biggrin.gif
oleg1973, ну хватит тут прикалываться tounge.gif . Лучше бы объяснил, что ты выше имел в виду с делением на ноль и т.д. и смысл сего...


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

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


Г-н Посол
****


Профиль
Группа: Экс. модератор
Сообщений: 3668
Регистрация: 13.7.2003
Где: 58°38' с.ш. 4 9°41' в.д.

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



cardinal, он имеет в виду, что надо поставить обработчик исключений.
Например, поделил ты на 0 - и управление передастся этому обработчику. А в обработчике, например, сидит твоя асм-функция, или же происходит её вызов.
В Delphi это выглядит так:
Код

try // - тут устанавливается адрес нового обработчика ошибок
 ...
 a := b / 0; // происходит исключение
except
 < обработчик >; // при исключении (ошибке) это выполняется
end; // - восстанавливается адрес старого обработчика

Только не знаю, насколько это дело упростит, по-моему, даже усложнит, т.к. Васик может и сам время от времени ставить свои обработчики Exception'ов...


--------------------
С уважением, г-н Посол.
PM   Вверх
Mephisto
  Дата 5.4.2004, 17:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Волкъ
***


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

Репутация: 2
Всего: 34



Код
try // - тут устанавливается адрес нового обработчика ошибок
...
a := b / 0; // происходит исключение
except
< обработчик >; // при исключении (ошибке) это выполняется
end; // - восстанавливается адрес старого обработчика

Если это так, то я не пойму зачем. Чем не устраивает:
Код
CallWindowProc pLShiftCode, VarPtr(value), shift, 3&, 4&

Лично я так юзаю. Меня вполне устраивает. Даже больше.

P.s.
Обработчик ошибок в барсике
Код
Sub Tratata()
    On Error Goto Eric
    ..........
    ..........
    ..........
    Exit Sub
Eric:
    'Obravbotka oshibki
end sub


Че-то я даже тута ничего не понял по поводу UD2! withstupid.gif

Это сообщение отредактировал(а) Mephisto - 5.4.2004, 17:33
PM   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по VB обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

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


 




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


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

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