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

  #3651  
Старый 13.06.2019, 16:12
CleanLegend
Постоянный
Регистрация: 28.03.2013
Сообщений: 495
С нами: 6908018

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

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

Есть .asi, нужно чтобы он заменил другой файл .asi в папке с игрой на свой, как такое реализовать на С++?
Выделить виртуальную память,заполнить ее твоей функцией, получить адреса функций и параметры, запустить поток и передать аргументы в виде структуры(адреса функций и параметры для них)

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

как....?
Получить адрес функции вызова опкода и вызвать её

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

и какой ид клавиши N ?
Клавиши N/Y проверяются через currentweaponid
 
Ответить с цитированием

  #3652  
Старый 13.06.2019, 16:14
CleanLegend
Постоянный
Регистрация: 28.03.2013
Сообщений: 495
С нами: 6908018

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

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

а теперь, если можно, в код...
https://blast.hk/threads/33035/
 
Ответить с цитированием

  #3653  
Старый 13.06.2019, 16:19
CleanLegend
Постоянный
Регистрация: 28.03.2013
Сообщений: 495
С нами: 6908018

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

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

@CleanLegend делал гайд по выгрузке
тут есть пример https://blast.hk/threads/34101/

для библиотеки вызываешь FreeLibrary прям из нее,перед этим нужно еще снять хуки

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

хорошо, а есть какая-то функция чтобы предотвратить загрузку другого .asi ?
Загрузка dll происходит через WinAPI функцию LoadLibrary, хукаешь ее и не даешь загружаться
 
Ответить с цитированием

  #3654  
Старый 13.06.2019, 16:22
Cake_
Участник форума
Регистрация: 04.04.2017
Сообщений: 263
С нами: 4793630

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

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

тут есть пример https://blast.hk/threads/34101/
для библиотеки вызываешь FreeLibrary прям из нее,перед этим нужно еще снять хуки

Загрузка dll происходит через WinAPI функцию LoadLibrary, хукаешь ее и не даешь загружаться
*супер обход пикселя*
 
Ответить с цитированием

  #3655  
Старый 14.06.2019, 17:43
Receiver
Постоянный
Регистрация: 26.03.2016
Сообщений: 660
С нами: 5332594

Репутация: 163


По умолчанию

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

С твоим "не ебу как сделать", ты ничего не добьешься. Хукай пакет ID_PLAYER_SYNC выводя в чат параметр stKeys
при нажатии на N - 0, при нажатии на пробел - 32

C++:





Код:
bool
CALLBACK
outcomingData
(
stRakNetHookParams
*
params
)
{
if
(
params
->
packetId
==
PacketEnumeration
::
ID_PLAYER_SYNC
)
{
stOnFootData data
;
// определяем объект, в который сохраним отправляемые данные
memset
(
&
data
,
0
,
sizeof
(
stOnFootData
)
)
;
// обнуляем его
byte packet
;
params
->
bitStream
->
ResetReadPointer
(
)
;
// на всякий случай устанавливаем оффсет чтения на начало
params
->
bitStream
->
Read
(
packet
)
;
// читаем ID пакета
params
->
bitStream
->
Read
(
(
PCHAR
)
&
data
,
sizeof
(
stOnFootData
)
)
;
// читаем отправляемые данные
params
->
bitStream
->
ResetReadPointer
(
)
;
// снова обнуляем оффсет чтения
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
255
,
255
,
0
)
,
"nazhata klavisha: %d"
,
data
.
sKeys
)
;
// выводим ***ню на экран
}
;
return
true
;
// успешно завершаем отправку пакета
}
;
 
Ответить с цитированием

  #3656  
Старый 14.06.2019, 19:06
_Vine_
Участник форума
Регистрация: 06.01.2016
Сообщений: 154
С нами: 5447649

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

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

при нажатии на N - 0, при нажатии на пробел - 32

C++:





Код:
bool
CALLBACK
outcomingData
(
stRakNetHookParams
*
params
)
{
if
(
params
->
packetId
==
PacketEnumeration
::
ID_PLAYER_SYNC
)
{
stOnFootData data
;
// определяем объект, в который сохраним отправляемые данные
memset
(
&
data
,
0
,
sizeof
(
stOnFootData
)
)
;
// обнуляем его
byte packet
;
params
->
bitStream
->
ResetReadPointer
(
)
;
// на всякий случай устанавливаем оффсет чтения на начало
params
->
bitStream
->
Read
(
packet
)
;
// читаем ID пакета
params
->
bitStream
->
Read
(
(
PCHAR
)
&
data
,
sizeof
(
stOnFootData
)
)
;
// читаем отправляемые данные
params
->
bitStream
->
ResetReadPointer
(
)
;
// снова обнуляем оффсет чтения
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
255
,
255
,
0
)
,
"nazhata klavisha: %d"
,
data
.
sKeys
)
;
// выводим ***ню на экран
}
;
return
true
;
// успешно завершаем отправку пакета
}
;

Нажатия клавиш N и Y передаются через элемент byteCurrentWeapon, номер клавиши N - 128
 
Ответить с цитированием

  #3657  
Старый 14.06.2019, 21:12
R G T X
Новичок
Регистрация: 14.06.2019
Сообщений: 17
С нами: 3641238

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

С чего начинать делать софты для SAMPA?
 
Ответить с цитированием

  #3658  
Старый 14.06.2019, 21:17
rraggerr
Познавший АНТИЧАТ
Регистрация: 16.03.2017
Сообщений: 1,626
С нами: 4821087

Репутация: 133


По умолчанию

Цитата:
Сообщение от R G T X  

С чего начинать делать софты для SAMPA?
с основ
 
Ответить с цитированием

  #3659  
Старый 15.06.2019, 00:46
0xff
Новичок
Регистрация: 21.03.2006
Сообщений: 17
С нами: 10600540

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

У кого-нибудь есть адреса, чтобы узнать ид педа в которого выстрельнул с оружия?

(для одиночки нужно, не samp)
 
Ответить с цитированием

  #3660  
Старый 15.06.2019, 13:30
-raymond-
Участник форума
Регистрация: 17.12.2017
Сообщений: 110
С нами: 4423953

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

возникла проблема с imgui

создал 2 поля inputtext



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

код:

C++:





Код:
ImGui
::
Begin
(
NAME_LOADER
,
&
open
,
ImVec2
(
WINDOW_WIDTH
,
WINDOW_HEIGHT
)
,
1.0f
,
dwWindowFlag
)
;
{
ImVec2 size_item
;
size_item
=
ImGui
::
CalcTextSize
(
u8
"Логин"
)
;
ImGui
::
SetCursorPosX
(
(
ImGui
::
GetWindowWidth
(
)
-
size_item
.
x
)
/
2
)
;
ImGui
::
SetCursorPosY
(
(
ImGui
::
GetWindowHeight
(
)
-
size_item
.
y
)
/
2
)
;
ImGui
::
Text
(
u8
"Логин"
)
;
static
char
login_text
[
32
]
;
ImGui
::
PushItemWidth
(
ImGui
::
GetWindowWidth
(
)
-
200
)
;
ImGui
::
SetCursorPosX
(
(
ImGui
::
GetWindowWidth
(
)
-
ImGui
::
CalcItemWidth
(
)
)
/
2
)
;
ImGui
::
InputText
(
u8
""
,
login_text
,
32
,
ImGuiInputTextFlags_CharsHexadecimal
)
;
ImGui
::
PopItemWidth
(
)
;
size_item
=
ImGui
::
CalcTextSize
(
u8
"Пароль"
)
;
ImGui
::
SetCursorPosX
(
(
ImGui
::
GetWindowWidth
(
)
-
size_item
.
x
)
/
2
)
;
ImGui
::
Text
(
u8
"Пароль"
)
;
static
char
password_text
[
32
]
;
ImGui
::
PushItemWidth
(
ImGui
::
GetWindowWidth
(
)
-
200
)
;
ImGui
::
SetCursorPosX
(
(
ImGui
::
GetWindowWidth
(
)
-
ImGui
::
CalcItemWidth
(
)
)
/
2
)
;
ImGui
::
InputText
(
u8
""
,
password_text
,
32
,
ImGuiInputTextFlags_CharsHexadecimal
|
ImGuiInputTextFlags_Password
)
;
ImGui
::
PopItemWidth
(
)
;
}
ImGui
::
End
(
)
;
 
Ответить с цитированием
Ответ





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


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




ANTICHAT ™ © 2001- Antichat Kft.