Страница: 1 | 2 | 3 | 4 | 5 |
Вопрос: Адрес функции
Добавлено: 14.11.05 21:29
Автор вопроса: Yurio
Адрес функции в переменную типа Long можно получить так:
Как получить адрес этой же функции в виде 4 переменных типа Byte ?
Ответы
Всего ответов: 73
Номер ответа: 1
Автор ответа:
GSerg
Вопросов: 0
Ответов: 1876
Профиль | | #1
Добавлено: 14.11.05 22:03
Скажу.
Но только сначала объясни ЗАЧЕМ...
Номер ответа: 2
Автор ответа:
AgentFire
ICQ: 192496851
Вопросов: 75
Ответов: 3178
Профиль | | #2
Добавлено: 14.11.05 22:39
GSerg толком ничего не знает... только крутого из себя строит. ;/
AddessOf <subname>
Номер ответа: 3
Автор ответа:
AgentFire
ICQ: 192496851
Вопросов: 75
Ответов: 3178
Профиль | | #3
Добавлено: 14.11.05 22:43
ой, млин... (
незаметил самого главного вопроса:
"Как получить адрес этой же функции в виде 4 переменных типа Byte"
Номер ответа: 4
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #4
Добавлено: 14.11.05 22:46
та да... ну конечно смотря что с чем сравнивать, но вообще с твоей стороны, Noviks, это грубый безосновательный наезд...
Номер ответа: 5
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #5
Добавлено: 14.11.05 23:23
CopyMemory на худой конец, если не желаешь пользоваться логикой (я имею ввиду And)
Номер ответа: 6
Автор ответа:
Yurio
Вопросов: 2
Ответов: 31
Профиль | | #6
Добавлено: 15.11.05 00:01
GetProcAddress и AddessOf дают одинаковый результат - типа Long
Напишешь - объясню
Номер ответа: 7
Автор ответа:
GSerg
Вопросов: 0
Ответов: 1876
Профиль | | #7
Добавлено: 15.11.05 00:01
Noviks рулит.
Обоими постами.
Гы гы.
Особенно в контексте ответов оного же.
Афтар, пеши исчо (c)
Private Type arr
b(1 To 4) As Byte
End Type
Private Type addr
addr As Long
End Type
Private Sub Form_Load()
Dim a As arr, ad As addr
ad.addr = GetProcAddress(GetModuleHandle("user32.dll", "MessageBoxA"
LSet a = ad
Debug.Print a.b(1)
Debug.Print a.b(2)
Debug.Print a.b(3)
Debug.Print a.b(4)
End Sub
Несмотря на это, мне до сих пор интересно: ЗАЧЕМ?
Номер ответа: 8
Автор ответа:
Yurio
Вопросов: 2
Ответов: 31
Профиль | | #8
Добавлено: 15.11.05 00:09
для
...
Номер ответа: 9
Автор ответа:
GSerg
Вопросов: 0
Ответов: 1876
Профиль | | #9
Добавлено: 15.11.05 00:19
Ы!
А нафига ей байты???
Ааааа.... я понял...
BYTE*...
Гы гы гы...
гы гы гы гы гы...
Я фигею...
Чел!
BYTE* - это на процессоре x86 как раз Long и есть. А не массив байтов совсем.
Номер ответа: 10
Автор ответа:
Yurio
Вопросов: 2
Ответов: 31
Профиль | | #10
Добавлено: 15.11.05 00:19
Ну и написал же я
Для WriteProcessMemory конечно
К адресу еще добавить бы &H68 и &HC3 ...
Номер ответа: 11
Автор ответа:
Yurio
Вопросов: 2
Ответов: 31
Профиль | | #11
Добавлено: 15.11.05 00:29
Насчет
Проблема была не в Byte / Long и не в массив / не массив, а в ByRef / ByVal
Номер ответа: 12
Автор ответа:
GSerg
Вопросов: 0
Ответов: 1876
Профиль | | #12
Добавлено: 15.11.05 00:31
Судя по тому, что ты переделываешь long в массив, проблема не была, а есть
Номер ответа: 13
Автор ответа:
Yurio
Вопросов: 2
Ответов: 31
Профиль | | #13
Добавлено: 15.11.05 00:48
Оч-ч-чень смешно
BYTE* - это не Long
А проблемы никакой нет - я могу получить как байтовый массив, так и просто переменную типа Byte
Но это все по соседней теме
А что насчет &H68 и &HC3 и Write их в Memory
Номер ответа: 14
Автор ответа:
GSerg
Вопросов: 0
Ответов: 1876
Профиль | | #14
Добавлено: 15.11.05 01:05
Ты не поверишь, но BYTE* - это на 32-битных процессорах таки Long.
Номер ответа: 15
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #15
Добавлено: 15.11.05 02:24
вот целый вечер читаю эту тему и плаачу )))) рябят хр. уже прикалываться, так же убить человека можно )
Это ты какой байт к какойму собрался приплюсовать ?