Гость
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / юзаем dllки втихаря / 9 сообщений из 9, страница 1 из 1
14.07.2012, 23:21
    #37879549
Qlewer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
юзаем dllки втихаря
хочу использовать функцию GetAsyncKeyState из библиотеки user32 в обход этой самой dllки. т.е. я копирую библиотеку user32.dll, называю её user33.dll. пишу в модуле
Код: vbnet
1.
2.
3.
4.
Public Function dllka(number As Long)
Public Declare Function GetAsyncKeyState Lib "user33" (ByVal vKey As Long) As Integer 'ôóíêöèÿ äëÿ êåÿ
dllka = GetAsyncKeyState(number) 'вылет проги с ошибкой$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
End Function

вызываю так
Код: vbnet
1.
keyresult = dllka(13)

нифига не получается. помогите плз. пытался сделать, используя опыт 11835951 , но что-то "не взлетает"
...
Рейтинг: 0 / 0
14.07.2012, 23:36
    #37879559
Казанский
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
юзаем dllки втихаря
1. Декларацию в начало модуля.
2. Полный путь к библиотеке
Код: vbnet
1.
2.
3.
4.
5.
Public Declare Function GetAsyncKeyState Lib "c:\temp\user33.dll" (ByVal vKey As Long) As Integer

Public Function dllka(number As Long)
dllka = GetAsyncKeyState(number)
End Function
...
Рейтинг: 0 / 0
14.07.2012, 23:51
    #37879572
Qlewer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
юзаем dllки втихаря
Казанский1. Декларацию в начало модуля. в коде всё норм, просто когда создавал топик не туда мышкой тыкнул втор2. Полный путь к библиотеке пробовал. тут неполный, чтобы не отвлекать форумчан от общего вида
...
Рейтинг: 0 / 0
15.07.2012, 01:25
    #37879644
юзаем dllки втихаря
попробовал
действительно не работает
с буквой A работает а с шифтом код 16 и кодом 13 не работает и вылетает с GPF
но указанный способ не выполняет инициализацию длл
и можно пользоваться только теми функциями которым не нужна инициализация
получается шифту код 16 и коду 13 нужна инициализация

ради интереса посмотрел дизассемблером
действительно при кодах меньших 32 вызывается код
который обращается к памяти которая похоже инициализируется при загрузке длл
...
Рейтинг: 0 / 0
15.07.2012, 01:29
    #37879647
юзаем dllки втихаря
вот ассемблер


7677A256 mov edi,edi
7677A258 push ebp
7677A259 mov ebp,esp
7677A25B mov eax,dword ptr fs:[00000018h]
7677A261 cmp dword ptr [eax+40h],0
7677A265 push esi
7677A266 je 7678F4DC
7677A26C mov edx,dword ptr [ebp+8]
7677A26F cmp edx,2
7677A272 je 7679F5F2
7677A278 cmp edx,1
7677A27B je 7679F5F2
7677A281 cmp edx,20h
7677A284 jae 7677A2E6
7677A286 mov esi,dword ptr fs:[18h]
7677A28D mov eax,dword ptr [esi+71Ch]
7677A293 mov ecx,dword ptr ds:[767D90F4h] чтение
7677A299 add esi,6CCh
7677A29F cmp eax,dword ptr [ecx+0B04h] использование
...
Рейтинг: 0 / 0
15.07.2012, 11:51
    #37879727
юзаем dllки втихаря
Qlewer,

А должно взлетать то?
...
Рейтинг: 0 / 0
15.07.2012, 20:41
    #37879942
Qlewer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
юзаем dllки втихаря
да не работает,

спасибо за точные и понятные ответы) можешь рассказать про инициализацию? т.е. что это вообще такое? я понимаю, что dllки нужно регистрировать, чтобы система воспринимала новые библиотеки. а инициализацию я как-то не очень представляю. p/s инициализировать их никак?
...
Рейтинг: 0 / 0
15.07.2012, 21:42
    #37879970
юзаем dllки втихаря
стандартная длл грузится с помощью LoadLibrary()
а если так загрузить user32 то получим GPF
значит это не стандартная длл и только ms знает как она работает

когда вызывается LoadLibrary то в самой библиотеке вызывается код в этот момент
и его можно использовать для иницилизации длл
но это не значит что это единственный способ инициализации длл
можно например сделать
lngModuleHandle = LoadLibraryExWinApi(StrPtr(strModulePath), 0 , WinApiE.DONT_RESOLVE_DLL_REFERENCES)
а потом самостоятельно вызвать код инициализации
просто код инициализации пишется разработчиком длл
и у нас доступа к нему нет
но если бы это была наша длл то мы бы смогли ее инициализировать
ведь в этом случае мы сами пишем код инициализации если он вообще нужен


вообщем
можно пользоваться только теми функциями которым не нужна инициализация
...
Рейтинг: 0 / 0
15.07.2012, 23:06
    #37880018
Qlewer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
юзаем dllки втихаря
смысл замены dllок: я подозреваю, что мой кейлоггер убивается некоторыми антивирями при чрезмерном использовании функции GetAsyncKeyState из библиотеки user32. если будет юзаться другоя библиотека, думаю, проблема исчезнет. но без перевода строки, пробела и прочего юзать кейлоггер неудобно
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / юзаем dllки втихаря / 9 сообщений из 9, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]