HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 18.05.2016, 01:15
DarkExorcist
Познающий
Регистрация: 21.05.2014
Сообщений: 77
С нами: 6304276

Репутация: 0
По умолчанию

Как создать поток при подключении .dll, чтобы игру не крашнуло?

Код:





Код:
DWORD WINAPI tp (LPVOID);

DWORD APIENTRY DllMain (HMODULE hModule,  DWORD ul_reason_for_call, LPVOID IpReserved)
{
    switch(ul_reason_for_call)
    {
    case DLL_PROCESS_ATTACH:
        CreateThread(NULL,NULL,tp,NULL,NULL,NULL);
    case DLL_THREAD_ATTACH:
    case DLL_THREAD_DETACH:
    case DLL_PROCESS_DETACH:
        break;
    }
}


Таким способом не получается, но нашел только его
 
Ответить с цитированием

  #2  
Старый 18.05.2016, 09:09
Woofing Giraffe
Постоянный
Регистрация: 14.06.2015
Сообщений: 402
С нами: 5744580

Репутация: 28
По умолчанию

Цитата:
Сообщение от DarkExorcist  

Как создать поток при подключении .dll, чтобы игру не крашнуло?

Код:





Код:
DWORD WINAPI tp (LPVOID);

DWORD APIENTRY DllMain (HMODULE hModule,  DWORD ul_reason_for_call, LPVOID IpReserved)
{
    switch(ul_reason_for_call)
    {
    case DLL_PROCESS_ATTACH:
        CreateThread(NULL,NULL,tp,NULL,NULL,NULL);
    case DLL_THREAD_ATTACH:
    case DLL_THREAD_DETACH:
    case DLL_PROCESS_DETACH:
        break;
    }
}


Таким способом не получается, но нашел только его
Не проще в main его создать?
 
Ответить с цитированием

  #3  
Старый 18.05.2016, 10:29
SR_team
Флудер
Регистрация: 26.10.2013
Сообщений: 4,924
С нами: 6603505

Репутация: 183


По умолчанию

Цитата:
Сообщение от DarkExorcist  

Как создать поток при подключении .dll, чтобы игру не крашнуло?

Код:





Код:
DWORD WINAPI tp (LPVOID);

DWORD APIENTRY DllMain (HMODULE hModule,  DWORD ul_reason_for_call, LPVOID IpReserved)
{
    switch(ul_reason_for_call)
    {
    case DLL_PROCESS_ATTACH:
        CreateThread(NULL,NULL,tp,NULL,NULL,NULL);
    case DLL_THREAD_ATTACH:
    case DLL_THREAD_DETACH:
    case DLL_PROCESS_DETACH:
        break;
    }
}


Таким способом не получается, но нашел только его
_beginthread
 
Ответить с цитированием

  #4  
Старый 18.05.2016, 16:48
DarkExorcist
Познающий
Регистрация: 21.05.2014
Сообщений: 77
С нами: 6304276

Репутация: 0
По умолчанию

Что делать, чтобы GetKeyState(); возвращала значение не равное 0, только когда нужная мне кнопка зажата? Просто условие продолжает работу до повторного нажатия Insert
 
Ответить с цитированием

  #5  
Старый 18.05.2016, 19:49
Dark_Knight
Флудер
Регистрация: 18.03.2013
Сообщений: 4,080
С нами: 6921957

Репутация: 183


По умолчанию

getasynckeystate и цикл. Можно и булевую переменную создать и её в качестве проверке юзать.
 
Ответить с цитированием

  #6  
Старый 20.05.2016, 11:20
Frixen
Участник форума
Регистрация: 21.06.2013
Сообщений: 131
С нами: 6785172

Репутация: 68
По умолчанию

CLEO:





Код:
0AA2:
30@
= load_library
"samp.dll"
// IF and SET
0A8E:
1@
=
30@
+
457971
// int
0A8C:
write_memory
1@
size
4
value
24216591
virtual_protect
1
0A8E:
2@
=
1@
+
4
// int
0A8C:
write_memory
2@
size
2
value
0
virtual_protect
1
0A8E:
3@
=
30@
+
458004
// int
0A8C:
write_memory
3@
size
4
value
22053903
virtual_protect
1
0A8E:
4@
=
3@
+
4
// int
0A8C:
write_memory
4@
size
2
value
0
virtual_protect
1
0A8E:
5@
=
30@
+
458280
// int
0A8C:
write_memory
5@
size
2
value
16500
virtual_protect
1
0A8E:
6@
=
30@
+
462648
// int
0A8C:
write_memory
6@
size
2
value
24948
virtual_protect
1
0A8E:
7@
=
30@
+
462372
// int
0A8C:
write_memory
7@
size
4
value
24218127
virtual_protect
1
0A8E:
8@
=
7@
+
4
// int
0A8C:
write_memory
8@
size
2
value
0
virtual_protect
1
0AA3:
free_library
30@
0AB2:
ret
0


как это будет в C++
 
Ответить с цитированием

  #7  
Старый 20.05.2016, 12:44
SR_team
Флудер
Регистрация: 26.10.2013
Сообщений: 4,924
С нами: 6603505

Репутация: 183


По умолчанию

Цитата:
Сообщение от Frixen  

CLEO:





Код:
0AA2:
30@
= load_library
"samp.dll"
// IF and SET
0A8E:
1@
=
30@
+
457971
// int
0A8C:
write_memory
1@
size
4
value
24216591
virtual_protect
1
0A8E:
2@
=
1@
+
4
// int
0A8C:
write_memory
2@
size
2
value
0
virtual_protect
1
0A8E:
3@
=
30@
+
458004
// int
0A8C:
write_memory
3@
size
4
value
22053903
virtual_protect
1
0A8E:
4@
=
3@
+
4
// int
0A8C:
write_memory
4@
size
2
value
0
virtual_protect
1
0A8E:
5@
=
30@
+
458280
// int
0A8C:
write_memory
5@
size
2
value
16500
virtual_protect
1
0A8E:
6@
=
30@
+
462648
// int
0A8C:
write_memory
6@
size
2
value
24948
virtual_protect
1
0A8E:
7@
=
30@
+
462372
// int
0A8C:
write_memory
7@
size
4
value
24218127
virtual_protect
1
0A8E:
8@
=
7@
+
4
// int
0A8C:
write_memory
8@
size
2
value
0
virtual_protect
1
0AA3:
free_library
30@
0AB2:
ret
0


как это будет в C++
да почти также, но если sf плагин пишешь, то лучше готовыми структурами воспользуйся
 
Ответить с цитированием

  #8  
Старый 20.05.2016, 13:06
Frixen
Участник форума
Регистрация: 21.06.2013
Сообщений: 131
С нами: 6785172

Репутация: 68
По умолчанию

Цитата:
Сообщение от SR_team  

да почти также, но если sf плагин пишешь, то лучше готовыми структурами воспользуйся
можно пример?
 
Ответить с цитированием

  #9  
Старый 20.05.2016, 13:14
SR_team
Флудер
Регистрация: 26.10.2013
Сообщений: 4,924
С нами: 6603505

Репутация: 183


По умолчанию

 
Ответить с цитированием

  #10  
Старый 20.05.2016, 13:27
Frixen
Участник форума
Регистрация: 21.06.2013
Сообщений: 131
С нами: 6785172

Репутация: 68
По умолчанию

Цитата:
я по поводу SF и его структур, как на СФ написать этот код будет проще?
 
Ответить с цитированием
Ответ





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.

×

Внести депозит

Введите сумму USDT:

Принимается только USDT TRC20. Fake/Flash USDT не засчитывается.

×

Вывести депозит

Сумма USDT:

Ваш USDT TRC20 кошелек:

Заявка будет отправлена администратору.