Страница: 1 | 2 | 3 | 4 | 5 |
Вопрос: Адрес функции
Добавлено: 14.11.05 21:29
Автор вопроса: Yurio
Ответы
Всего ответов: 73
Номер ответа: 31
Автор ответа:
LamerOnLine
ICQ: 334781088
Вопросов: 108
Ответов: 2822
Профиль | | #31
Добавлено: 15.11.05 16:03
Не перепутал. В MSDN декларации сяшного типа
Кажись ты немного запутался.
WriteProcessMemory cProc, aMSGBA, newData(0), 6&, 0& - это прикол что ли?
Пытаешься заменить код функции? Флаг тебе в руки - только вот Microsoft не позволит.
Номер ответа: 32
Автор ответа:
CyRax
Разработчик Offline Client
ICQ: 204447456
Вопросов: 180
Ответов: 4229
Web-сайт:
Профиль | | #32
Добавлено: 15.11.05 16:26
Указатель это Long, хр над ламером прикалываться, лучше поясните почему.
Номер ответа: 33
Автор ответа:
LamerOnLine
ICQ: 334781088
Вопросов: 108
Ответов: 2822
Профиль | | #33
Добавлено: 15.11.05 16:54
Да уж...
Пост 13:
Оч-ч-чень смешно
BYTE* - это не Long
Пост 29:
Когда я в этом сомневался?
Это разве не прикол? По-моему очень даже неслабый
Номер ответа: 34
Автор ответа:
Yurio
Вопросов: 2
Ответов: 31
Профиль | | #34
Добавлено: 15.11.05 21:14
Уже позволила
Я не имел ввиду, что значение указателя - это не Long, я писал о типе переменной. Неужели до сих пор непонятно?
Да, куда уж нам, смертным...
А богам знание абсолютной истины не давит на голову? Да так давит, что скромность и уважение к другим просто прет во все стороны.
Но достаточно флуда, здесь его и так уже на 3 темы хватит.
У меня прекрасно работает следующее (делал дней 5):
DLL (для инжектирования в процесс).
Инжектор.
Тестовый exe-шник, в процессе работы которого и происходит перехват и подмена функции.
Все написано на VB6.
Номер ответа: 35
Автор ответа:
CyRax
Разработчик Offline Client
ICQ: 204447456
Вопросов: 180
Ответов: 4229
Web-сайт:
Профиль | | #35
Добавлено: 15.11.05 22:28
Ну теперь хоть понятно отчего пропадает желает давать вразумительные объяснения.
Yurio,
Ламер - это не только тот кто нефига не знает (это просто чайник), а ещё и тот кто знать нефига не хочет.
А богам знание абсолютной истины не давит на голову? Да так давит, что скромность и уважение к другим просто прет во все стороны.
Чего спрашивать если "ответ" тебе известен заранее? Да и вообще на все твои посты есть один ответ: ЗАЧЕМ СПРАШИВАТЬ ЕСЛИ ТЫ И ТАК ВСЁ ЗНАЕШЬ?
Номер ответа: 36
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #36
Добавлено: 15.11.05 22:54
Основание весь тот флуд что ты разводишь.
А тебе не пофигу-ли на чем декларация, смысл все равно ясен.
Как надо мы знаем не хуже... возможно даже чуточку лучше, мы не спрашивали как писать декларацию, к чему бы тогда твой пост выше...
ЗЫ
Объявление этой функции я смогу 10-тью способами записать и она будет работать... как ни странно...
ЗЗЫ
Зачем тебе прибавлять эти несчастные &H68, &HC3 байты к указателю и к какому месту этого указателя?
Номер ответа: 37
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #37
Добавлено: 15.11.05 23:00
Указатель не имеет типа, это все вымыслы тех кто пишет на Си...
Почем знаешь? Мучают головные боли ?
Че, статеечку на vbstreets прочитал ? Герой, твоя заслуга, признаю!
Номер ответа: 38
Автор ответа:
CyRax
Разработчик Offline Client
ICQ: 204447456
Вопросов: 180
Ответов: 4229
Web-сайт:
Профиль | | #38
Добавлено: 15.11.05 23:59
Я там опечатался
нужно:
Ну теперь хоть понятно отчего пропадает желание давать вразумительные объяснения.
Номер ответа: 39
Автор ответа:
CyRax
Разработчик Offline Client
ICQ: 204447456
Вопросов: 180
Ответов: 4229
Web-сайт:
Профиль | | #39
Добавлено: 16.11.05 00:19
Слушайте, а чего такой флейм то? Человеку нужно записать в другой процесс опкоды от
push <Адрес функции>
ret
Причём адрес будет верным для другого процесса, т.к. у библиотек фиксированные адреса (простите за банальность).
По краям ставь опкоды, а внутри 4 байта адреса. Пойдёт как CopyMemory так и PutMem, главное адрес первого (от нуля) байта укажи приёмником.
И вообще на время работы в ВБ я бы советовал забыть об указателях - их тут нет. Есть разве что адреса.
Номер ответа: 40
Автор ответа:
CyRax
Разработчик Offline Client
ICQ: 204447456
Вопросов: 180
Ответов: 4229
Web-сайт:
Профиль | | #40
Добавлено: 16.11.05 00:40
ret
Т.е. надо записать команду перехода на эту функцию.
Гы, push - это команда перехода по твоему? Сразу за ней должен идти Ret(С3), а потом уже 4 байта адреса? Ну тогда я как и все - пацтулам
Номер ответа: 41
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #41
Добавлено: 16.11.05 10:42
а... ну вот теперь все встает на свои места, теперь ясно зачем ему разложить нужно было адрес на 4 байта... чтобы поменять порядок следования их в памяти )) Только видимо неизвестно ему можно писать было прямо Long'ом а не побайтово...
Номер ответа: 42
Автор ответа:
Yurio
Вопросов: 2
Ответов: 31
Профиль | | #42
Добавлено: 16.11.05 12:09
Нет.
http://vbstreets.ru/VB/Articles/66227.aspx
прочитал только сейчас.
А недельку назад читал вот это:
http://rsdn.ru/article/baseserv/IntercetionAPI.xml
Заметьте, уважаемые, что там о VB - ни слова.
Доказательства? У меня:
1. Никаких ассемблерных вставок и файлов ресурсов.
2. Библиотека - не ActiveX.
3. Создание *.tlb через midl.exe
Итог - все намного проще и понятнее, исходники меньше. Наверное, можно и еще проще, но я не програмист. Просто мне было это интересно.
Знаешь, меня Visual Basic'у никто не учил. До всего дохожу самостоятельно.
P.S. Я не сомневаюсь, что языки программирования в целом и VB в частности все вы знаете лучше меня. Но в данном конкретном случае никто не вник в суть проблемы - в результате столько флуда. Помощи - 0, но я смог разобраться и сам. Очнитесь и посмотрите свежим взглядом, беспристрастно.
P.P.S. На флуд прошлый и, возможно, будущий, перестаю обращать внимание.
Номер ответа: 43
Автор ответа:
CyRax
Разработчик Offline Client
ICQ: 204447456
Вопросов: 180
Ответов: 4229
Web-сайт:
Профиль | | #43
Добавлено: 16.11.05 13:54
Прошу прощения, это я проглядел. Конечно же это будет переходом. Запушеный адрес будет извлечён ретом из стека. Просто нестандартная запись, вот я сбойнул
Номер ответа: 44
Автор ответа:
CyRax
Разработчик Offline Client
ICQ: 204447456
Вопросов: 180
Ответов: 4229
Web-сайт:
Профиль | | #44
Добавлено: 16.11.05 13:57
По моему только извращенец добровольно согласится использовать такой код. Хотя если приспичет...
Номер ответа: 45
Автор ответа:
Yurio
Вопросов: 2
Ответов: 31
Профиль | | #45
Добавлено: 16.11.05 17:12
Чуть не забыл
ТАМ нет ничего о перехвате API-функций!
А создавать на VB6 stdcall-библиотеки и инжектировать их практически в любой процесс (получив, если нужно, Debug-привилегии) я умею достаточно давно. За перевод на VB6 механизма инжектирования спасибо SCINER'у (правда, о Type Library он ничего не написал - без них внедрение подобной библиотеки не получится), за возможность создания stdcall dll - DanSoft Australia.
Если ты о объявлении функции в *.tlb и, впоследствии , указателях, ответ на мой вопрос был получен на другом форуме (vbstreets) до открытия этой темы. А здесь все началось с поста GSerg'а - наверное, слегка перепутал тему с соседней, в которой, например, sne ничего вразумительного так и не предложил.
А с адресом функции я разобрался - между ответами #33 и #34 - вот вопрос и отпал.
А с этим я разберусь, хотя и с 4 байтами все работает.