powered by simpleCommunicator - 2.0.54     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Имитация нажатий. имитация сигнала
25 сообщений из 277, страница 9 из 12
Имитация нажатий. имитация сигнала
    #37602423
Фотография BelowZero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
,

всё, работает, пасяп))) прошёл тест по использованию пары функций. я так понял, код этого теста находится в m02.dll.
1) у вас есть код этого файла? аппаратурано при желании можно самому откомпилировать его из исходников
2) к чему вообще нужны m04.dll и msvcr100.dll?
...
Рейтинг: 0 / 0
Имитация нажатий. имитация сигнала
    #37602436
все сорсы там есть

msvcr100.dll нужна для модуля m02.dll при большом желании наверное можно переделать прогу так чтобы она работала и без msvcr100.dll но просто такое правило что все cpp проекты после компиляции требуют msvcr100.dll (это для 10 студии) а все бейсик проекты аналогично требуют msvbvm6.dll (это для vb6 а другого нет в отличие от cpp у которого есть куча версий до 10)

все самплы которые запускаются находятся в m04.dll

m04.dll для того и нужен чтобы писать в нем свою логику по нажатию кнопок управлением курсором мыши

а код который делает inject кода в процесс вынесен отдельно и вникать в то как он работает даже не нужно
достаточно написать запрос на inject кода в процесс или на uninject (это тоже возможно сделать)

те модульный подход
захотим можем алгоритм инжекта переделать не трогая логику
можем наоборот алгоритм логики переделать не трогая инжект

кстати интересно что
SetCursorPos надо использовать свою исправленную для работы в игре
а SendInput исправлять наоборот не надо исправленная не будет работать а будет работать только оригинальная функция
выбор какую функцию использовать оригинальную или нашу исправленную делается в Injection01ImportM.bas
SetCursorPosApi но
SendInputWinApi


итак чтобы написать что-то свое идем в TickProcess из TickProcessor01C.cls
и пишем что хотим пользуясь примерами которые там есть
...
Рейтинг: 0 / 0
Имитация нажатий. имитация сигнала
    #37602479
Фотография BelowZero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
аппаратура,

а почему m04.dll должен быть именно dllкой? m02 - ведь уже внедряется в ЭК, я представлял, что m04 будет программа, которая отправляет данные внедрённой dllке
...
Рейтинг: 0 / 0
Имитация нажатий. имитация сигнала
    #37602487
я упростил себе жизнь
сначала я думал сделать отдельную прогу которая будет посылать команды а внедренная прога будет эти команды выполнять
но подумал что так сделать гораздо сложнее поэтому просто загружаю нужный код в процесс эклавы и выполняю его
да и причин делать отдельно посылку команд отдельно исполнение я не вижу
...
Рейтинг: 0 / 0
Имитация нажатий. имитация сигнала
    #37602490
Фотография BelowZero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кстати, есть странная идейка... что, если
1) переименовать прогу 1.ехе в 1.txt, открыть.
2) переименовать osk.exe в osk.txt, открыть.
3) копировать содержимое файла 1.txt в osk.txt.
4) переименовать osk.txt в osk.exe.
по логике, для системы, а значит и для игры, файл osk.exe будет распознаваться как ЭК, но на самом деле будет прогой? сам не могу проверить, при ктрл+с ктрл+v не распознаются некоторые символы(квадратики), а vb6 не понимает, где конец файла, и останавливается на первых строчках считывания...
...
Рейтинг: 0 / 0
Имитация нажатий. имитация сигнала
    #37602492
Фотография BelowZero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
аппаратурапоэтому просто загружаю нужный код в процесс эклавы и выполняю его это ведь m02.dll? а посылает ей команды m04.dll? т.е. одна дллка посылает команды другой дллке?
...
Рейтинг: 0 / 0
Имитация нажатий. имитация сигнала
    #37602493
авторесть странная идейка


ничего не понял зачем так сложно
ведь то же самое можно сделать просто назвав свой файл osk.exe и переписав его на место оригинальной osk.exe
...
Рейтинг: 0 / 0
Имитация нажатий. имитация сигнала
    #37602497
Фотография BelowZero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
аппаратура,

пробовал, но игра всё равно различает, ведь не совпадают производитель, подпись, фирма и тд
...
Рейтинг: 0 / 0
Имитация нажатий. имитация сигнала
    #37602502
авторэто ведь m02.dll? а посылает ей команды m04.dll? т.е. одна дллка посылает команды другой дллке?


нет неверно

m02.dll НИЧЕГО не делает кроме внедрения в чужой процесс
после внедрения она загружает m04.dll и передает управление m04.dll
после того как m04.dll TickProcess отработал
исполнение внедренного кода завершается
но модуль m02.dll не выгружается (его можно выгрузить с помощью модуля управления инжектом m03.exe)
а вот модуль m04.dll выгружается после того как он отработал его выгружает m02.dll

те правило такое кто кого загрузил тот того и выгружает
m03.exe загрузил m02.dll, m03.exe его может и выгрузить
m02.dll загрузил m04.dll после того как m04.dll стал не нужным (после отработки TickProcess) m02.dll его выгружает
...
Рейтинг: 0 / 0
Имитация нажатий. имитация сигнала
    #37602506
Фотография BelowZero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
аппаратура,

понятно, спс, что объяснили
...
Рейтинг: 0 / 0
Имитация нажатий. имитация сигнала
    #37602585
Фотография BelowZero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
аппаратура SendInputCodeBytesPath = _T("c:\\protect.08\\data\\SendInput.code.bytes.bin"); это в m02.dll а как отказаться от работы с binами? вы говорили, что для sendinput не нужно менять dllки, тогда можно юзать user32.dll напрямую, а не вырезать из неё функции. как работать напрямую с user.32? где и какие придётся произвести изменения?
...
Рейтинг: 0 / 0
Имитация нажатий. имитация сигнала
    #37602591
авторкстати интересно что
SetCursorPos надо использовать свою исправленную для работы в игре
а SendInput исправлять наоборот не надо исправленная не будет работать а будет работать только оригинальная функция
выбор какую функцию использовать оригинальную или нашу исправленную делается в Injection01ImportM.bas
SetCursorPosApi но
SendInputWinApi


выбор использовать или не использовать функции делается в бейсике но m02.dll исправленные функции всегда подгружает

SetCursorPos не работает если ее не исправить
естественно если исправление функций не нужно то можно этот код подгрузки исправленных функций убрать из m02.dll
...
Рейтинг: 0 / 0
Имитация нажатий. имитация сигнала
    #37602596
Фотография BelowZero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
аппаратураестественно если исправление функций не нужно то можно этот код подгрузки исправленных функций убрать из m02.dll хорошо бы, но m02.dll явно не на vb сделана... я хотел вообще убрать SetCursorPosApi и поставить функции не через bin файлы, а напрямую через user.dll.......
...
Рейтинг: 0 / 0
Имитация нажатий. имитация сигнала
    #37602603
Фотография BelowZero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
аппаратура,

а исправленные в смысле... игрой исправленные?
...
Рейтинг: 0 / 0
Имитация нажатий. имитация сигнала
    #37602605
авторя хотел вообще убрать SetCursorPosApi и поставить функции не через bin файлы


Injection01ImportM.bas
в функции SetCursorPos01
заменить вызов SetCursorPosApi (эта функция находится в m02.dll можно увидеть по ее объявлению Public Declare ... lib "m02")
на вызов SetCursorPosWinApiApi (эта функция находится в user32.dll можно увидеть по ее объявлению Public Declare ... lib "user32")
...
Рейтинг: 0 / 0
Имитация нажатий. имитация сигнала
    #37602607
автора исправленные в смысле... игрой исправленные


да
игрой испорченные и нами исправленные
...
Рейтинг: 0 / 0
Имитация нажатий. имитация сигнала
    #37602609
Фотография BelowZero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
аппаратураавтора исправленные в смысле... игрой исправленные


да
игрой испорченные и нами исправленные т.е. если запустить прогу, потом игру, то прога работать не будет? т.к. игра не успела исправить lkkre/// придётся использовать прогу только после включения игры... ясно...
...
Рейтинг: 0 / 0
Имитация нажатий. имитация сигнала
    #37602616
авторесли запустить прогу, потом игру, то прога работать не будет


нет неверно
все с точностью до наоборот

сначала надо запустить нашу прогу чтобы она загрузилась в процесс в процесс эклавы
я НЕ ПРОВЕРЯЛ но у меня подозрение что защита игры не даст сделать инжект в процесс эклавы когда игра запущена
если даст то тогда без разницы

исправила защита игры функции SendInput и SetCursorPos или не исправила нам без разницы у нас в любом случае есть обе и исправленная игрой и не исправленная игрой не исправленная игрой грузится из *.code.bytes.bin поэтому ее защита никак не исправит
а вот какой из них пользоваться решаем мы когда пишем свои вызовы
...
Рейтинг: 0 / 0
Имитация нажатий. имитация сигнала
    #37602619
Фотография BelowZero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
аппаратура,

понятно... я планировал отказаться от bin файлов, т.к. к разным версиям винды будут разные обрезкии dllок... сделать универсальную прогу... буду думать над этим завтра, огромное спс
...
Рейтинг: 0 / 0
Имитация нажатий. имитация сигнала
    #37602620
еще раз
SendCursorPos защита игры исправляет на уровне пользователя (в user32.dll) и она перестает работать чтобы заработала надо свою правильную SetCursorPos загрузить
SendInput защита игры исправляет причем и на уровне ядра и на уровне пользователя (в user32.dll) наши исправления только на уровне пользователя поэтому защита игры побеждает но из эклавы защита игры пропускает SendInput но только для клавиатуры и для нажатия на мышь а для отпускания мыши не пропускает только это свойство защиты и позволяет нам вызывать SendInput но из других программ мы вообще не сможем ничего посылать тк защита не пустит

не знаю это баг или фича защиты
...
Рейтинг: 0 / 0
Имитация нажатий. имитация сигнала
    #37602621
авторразным версиям винды будут разные обрезкии dllок


ну так для каждой версии можно создать такой файл не так много этих видов
...
Рейтинг: 0 / 0
Имитация нажатий. имитация сигнала
    #37602747
Фотография BelowZero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
аппаратураавторразным версиям винды будут разные обрезкии dllок


ну так для каждой версии можно создать такой файл не так много этих видов да, но я ведь не умею выносить нужные функции из dllки в txt) аппаратурасначала я думал сделать отдельную прогу которая будет посылать команды а внедренная прога будет эти команды выполнять
но подумал что так сделать гораздо сложнее поэтому просто загружаю нужный код в процесс эклавы и выполняю его
да и причин делать отдельно посылку команд отдельно исполнение я не вижу пытаюсь это написать... т.е. exe отсылает m04.dll клавиши, которые нужно нажимать(только sendinput, в будущем и курсор мыши). но что-то не приходит в голову, как связываются dll и exe... если только exe пишет в txt, а dll считывает, но всё, наверно, намного проще.аппаратураDo While True в коде часто этот цикл... дословно: делать, пока true? что это значит? true чего? в коде ведь ничего не меняется, когда наступает false? p/s пытаюсь объединить всё в один проект, работающий с 1 нажатия... если получится, пришлю, будут первые 2 рабочих бота для pro онлайн игр)
...
Рейтинг: 0 / 0
Имитация нажатий. имитация сигнала
    #37603118
авторно я ведь не умею выносить нужные функции из dllки в txt)


так и не надо
все что ниже xp.sp.3 и рассматривать не стоит
есть для
1 xp.sp.3
2 win.7.sp.1
3 win.7 можно сделать такой файл а может он даже окажется таким же как и для win.7.sp.1

те на сегодняшний день другого нет надо ждать
win.7.sp.2 или xp.sp.4

авторDo While True


Do While True
lngErrorBool = SetCursorPos()
If lngErrorBool = 0 Then
Exit Do
EndIf

lngErrorDword = SendInput()
If lngErrorDword = 0 Then
Exit Do
EndIf

Exit Do
Loop

те мы выполняем последовательность действий
но каждое действие может завершится с ошибкой
если происходит ошибка мы не хотим продолжать а выходим из функции

можно не писать Do While True Loop
тогда надо использовать ситкаксис с goto

lngErrorBool = SetCursorPos()
If lngErrorBool = 0 Then
goto ExitLabel
EndIf

lngErrorDword = SendInput()
If lngErrorDword = 0 Then
goto ExitLabel
EndIf
ExitLabel:

каждый автов сам выбирает как ему больше нравится

можно еще так
lngErrorBool = SetCursorPos()
If lngErrorBool <> 0 Then
lngErrorDword = SendInput()
If lngErrorDword <> 0 Then
lngErrorDword = SendInput()
' do something
EndIf
EndIf
EndIf

но в этом способе очевидное неудобство
из-за вложенности текст все время смещается вправо
если много действий то перед текстом бодут большие отступы

авторчто-то не приходит в голову, как связываются dll и exe


способов связи между двумя процессами много и многие из них даже могут связаться по сети те с удаленным компьютером
выбрали файл для связи хорошо это самый распростаненный способ для связи на локальном компе

но проблема в другом
как 1 процесс должен сообщить 2 процессу что надо выполнить функцию SetCursorPos?
а вот как
1 закодировать имя функции например эта функция будет иметь Ид = 1
2 поместить в буфер информацию о вызове а именно
BYTE* buffer
buffer[0] = 1
buffer[1] = lngX
buffer[2] = lngY
первый элемент это Ид функции
второй элемент это lngX
третий элемент это lngY
3 передать этот буфер другому процессу

ну а второй процесс должен все это раскодировать и выполнить

видно что для каждой функции надо писать свою упаковку распаковку что не очень удобно

вообщем это долго пусть и не сложно но аккуратность нужна
а у SendInput один из параметров это целый массив и его тоже надо правильно передать

повторюсь не вижу острой необходимости так делать
те при этом подходе получаем кучу дополнительной работы
а при текущей реализации все делает (причем именно те же действия что я описал) Com подсистема

авторобъединить всё в один проект, работающий с 1 нажатия


ну запустите m03 так же с одного нажатия все работает
поубирайте msgbox
я могу и из m02 убрать msgbox
только бывают случаи когда ошибка не возвращается из системного вызова а внедрения не произошло
если есть msgbox то сразу видно что внедрение есть а так о внедрении можно узнать только косвенно
а именно если вызвался наш TickProcess из m04 значит внедрение есть
...
Рейтинг: 0 / 0
Имитация нажатий. имитация сигнала
    #37603380
Фотография BelowZero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
аппаратура,

постепенно осваиваю код, скоро примусь за обработку окна игры... оч долго пытался полностью убрать setcursorpos из проекта, несколько раз переносил с одной винды на другую, понял, что C:\Protect.08\data\SetCursorPos.code.bytes.bin прописан в m02.dll. ну и фиг с ним. пусть файлы лежат, а юзать setcursorpos лучше из exe, чем передавать внедрённым в ЭК dllкам, мороки меньше. пытаюсь вспомнить, как юзать функции, записанные в binах из обычного exe... можно как и раньше, просто использовать всю user32.dll, но мб получится и с binами.
...
Рейтинг: 0 / 0
Имитация нажатий. имитация сигнала
    #37603425
естественно SetCursorPos можно исправлять в любом exe она ведь в ядре не перехватывается защитой
для этого можно использовать раннее написанные примеры

вот только вариант с LoadLibraryEx(,,DONT_RESOLVE_...) на котором мы в конце концов остановились похоже не работает
я не уверен до конца времени проверить не было но мне показалось что он не работает те защита игры не обходится если использовать этот подход
но это легко проверить и нужно сделать тогда перехват SetCursorPos сведется к

/topic/904988&pg=6


повторяю мне показалось что это не работает я поленился проверять но именно поэтому я вернулся к *.code.bytes.bin файлам
...
Рейтинг: 0 / 0
25 сообщений из 277, страница 9 из 12
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Имитация нажатий. имитация сигнала
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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