 |
|

15.12.2019, 20:42
|
|
Познающий
Регистрация: 08.12.2019
Сообщений: 45
С нами:
3385695
Репутация:
58
|
|
Код аирбрейка:
Код:
#include "pch.h"
float
*
coordinates
=
(
*
(
DWORD
*
)
0xB6F5F0
)
?
(
float
*
)
(
*
(
DWORD
*
)
(
*
(
DWORD
*
)
0xB6F5F0
+
0x14
)
+
0x30
)
:
NULL
;
DWORD Gravity
=
*
(
DWORD
*
)
0x863984
;
void
airbrake
(
)
{
bool
CheatOn
=
false
;
while
(
1
)
{
if
(
GetAsyncKeyState
(
VK_RSHIFT
)
&&
CheatOn
==
false
)
{
CheatOn
=
true
;
*
(
DWORD
*
)
0x863984
=
0.013
;
}
if
(
CheatOn
==
true
)
{
if
(
GetAsyncKeyState
(
VK_DELETE
)
)
{
CheatOn
=
false
;
}
GetAsyncKeyState
(
VK_UP
)
?
coordinates
[
2
]
+=
0.0002f
:
NULL
;
GetAsyncKeyState
(
VK_DOWN
)
?
coordinates
[
2
]
-=
0.0002f
:
NULL
;
GetAsyncKeyState
(
VK_RIGHT
)
?
coordinates
[
0
]
+=
0.0002f
:
NULL
;
GetAsyncKeyState
(
VK_LEFT
)
?
coordinates
[
0
]
-=
0.0002f
:
NULL
;
GetAsyncKeyState
(
0x57
)
?
coordinates
[
1
]
+=
0.0002f
:
NULL
;
GetAsyncKeyState
(
0x53
)
?
coordinates
[
1
]
-=
0.0002f
:
NULL
;
}
if
(
CheatOn
==
false
)
{
*
(
DWORD
*
)
0x863984
=
Gravity
;
}
}
}
void
init
(
)
{
while
(
*
(
DWORD
*
)
0xC8D4C0
!=
9
)
Sleep
(
100
)
;
airbrake
(
)
;
}
BOOL APIENTRY
DllMain
(
HMODULE hModule
,
DWORD ul_reason_for_call
,
LPVOID lpReserved
)
{
switch
(
ul_reason_for_call
)
{
case
DLL_PROCESS_ATTACH
:
{
CreateThread
(
NULL
,
NULL
,
(
LPTHREAD_START_ROUTINE
)
init
,
NULL
,
NULL
,
NULL
)
;
}
case
DLL_THREAD_ATTACH
:
case
DLL_THREAD_DETACH
:
case
DLL_PROCESS_DETACH
:
break
;
}
return
TRUE
;
}
Написал хреновый аирбрейк, выложил дабы послушать мнение спецов в написании подобного, если не сложно, укажите на мои ошибки и дайте каких-нибудь рекомендаций)).
|
|
|

16.12.2019, 00:34
|
|
Флудер
Регистрация: 09.08.2015
Сообщений: 2,375
С нами:
5663810
Репутация:
233
|
|
Сообщение от loganhackerdff
Я понял только что это написано на C++
Я продолжу твою цепочку размышлений: он на аси и работает с памятью 😱😱😱
|
|
|

16.12.2019, 00:46
|
|
Познающий
Регистрация: 08.12.2019
Сообщений: 45
С нами:
3385695
Репутация:
58
|
|
Сообщение от MrCreepTon
Я продолжу твою цепочку размышлений: он на аси и работает с памятью 😱😱😱
Ещё он работает с массивом 😱😱😱😱
|
|
|

16.12.2019, 01:34
|
|
Постоянный
Регистрация: 17.02.2014
Сообщений: 611
С нами:
6438231
Репутация:
133
|
|
Сообщение от otherwise
Ещё он работает с массивом 😱😱😱😱
Если твоё сообщение не рофл , то смотри что такое массивы.
а лучше сразу
|
|
|

16.12.2019, 01:41
|
|
Познающий
Регистрация: 08.12.2019
Сообщений: 45
С нами:
3385695
Репутация:
58
|
|
Сообщение от iAmerican
Если твоё сообщение не рофл , то смотри что такое массивы.
а лучше сразу
Разве float* coordinates не массив?
|
|
|

16.12.2019, 01:49
|
|
Постоянный
Регистрация: 17.02.2014
Сообщений: 611
С нами:
6438231
Репутация:
133
|
|
Сообщение от otherwise
Разве float* coordinates не массив?
Нет , не массив
|
|
|

16.12.2019, 09:31
|
|
Постоянный
Регистрация: 25.12.2018
Сообщений: 568
С нами:
3886298
Репутация:
113
|
|
Сообщение от otherwise
Разве float* coordinates не массив?
Это указатель.
Сообщение от otherwise
Код аирбрейка:
Код:
#include "pch.h"
float
*
coordinates
=
(
*
(
DWORD
*
)
0xB6F5F0
)
?
(
float
*
)
(
*
(
DWORD
*
)
(
*
(
DWORD
*
)
0xB6F5F0
+
0x14
)
+
0x30
)
:
NULL
;
DWORD Gravity
=
*
(
DWORD
*
)
0x863984
;
void
airbrake
(
)
{
bool
CheatOn
=
false
;
while
(
1
)
{
if
(
GetAsyncKeyState
(
VK_RSHIFT
)
&&
CheatOn
==
false
)
{
CheatOn
=
true
;
*
(
DWORD
*
)
0x863984
=
0.013
;
}
if
(
CheatOn
==
true
)
{
if
(
GetAsyncKeyState
(
VK_DELETE
)
)
{
CheatOn
=
false
;
}
GetAsyncKeyState
(
VK_UP
)
?
coordinates
[
2
]
+=
0.0002f
:
NULL
;
GetAsyncKeyState
(
VK_DOWN
)
?
coordinates
[
2
]
-=
0.0002f
:
NULL
;
GetAsyncKeyState
(
VK_RIGHT
)
?
coordinates
[
0
]
+=
0.0002f
:
NULL
;
GetAsyncKeyState
(
VK_LEFT
)
?
coordinates
[
0
]
-=
0.0002f
:
NULL
;
GetAsyncKeyState
(
0x57
)
?
coordinates
[
1
]
+=
0.0002f
:
NULL
;
GetAsyncKeyState
(
0x53
)
?
coordinates
[
1
]
-=
0.0002f
:
NULL
;
}
if
(
CheatOn
==
false
)
{
*
(
DWORD
*
)
0x863984
=
Gravity
;
}
}
}
void
init
(
)
{
while
(
*
(
DWORD
*
)
0xC8D4C0
!=
9
)
Sleep
(
100
)
;
airbrake
(
)
;
}
BOOL APIENTRY
DllMain
(
HMODULE hModule
,
DWORD ul_reason_for_call
,
LPVOID lpReserved
)
{
switch
(
ul_reason_for_call
)
{
case
DLL_PROCESS_ATTACH
:
{
CreateThread
(
NULL
,
NULL
,
(
LPTHREAD_START_ROUTINE
)
init
,
NULL
,
NULL
,
NULL
)
;
}
case
DLL_THREAD_ATTACH
:
case
DLL_THREAD_DETACH
:
case
DLL_PROCESS_DETACH
:
break
;
}
return
TRUE
;
}
Написал хреновый аирбрейк, выложил дабы послушать мнение спецов в написании подобного, если не сложно, укажите на мои ошибки и дайте каких-нибудь рекомендаций)).
Свойства проекта -> С++ -> Отключение предкомпилированных заголовков.
|
|
|

16.12.2019, 16:40
|
|
Познающий
Регистрация: 08.12.2019
Сообщений: 45
С нами:
3385695
Репутация:
58
|
|
Сообщение от Carrentine
Это указатель.
Свойства проекта -> С++ -> Отключение предкомпилированных заголовков.
Спасибо! Не подскажешь, для чего отключать предкомпилированные заголовки? Я так понял они не нужны?
|
|
|

16.12.2019, 17:00
|
|
Флудер
Регистрация: 17.06.2013
Сообщений: 3,635
С нами:
6791977
Репутация:
183
|
|
Ужасный код. Такой код надо писать только когда тестируешь что то. Создавать поток в DllMain - это плохо. Так же использование Sleep и GetAsyncKeyState, получение данных в глобальной области видимости. Тебе тут надо хукать WndProc и он тебе будет давать все текущие "эвенты" окна и не придётся использовать создание потока, sleep и получение стейта клавиши.
|
|
|

16.12.2019, 17:56
|
|
Постоянный
Регистрация: 24.07.2017
Сообщений: 867
С нами:
4633764
Репутация:
148
|
|
Сообщение от DarkP1xel
Ужасный код. Такой код надо писать только когда тестируешь что то. Создавать поток в DllMain - это плохо. Так же использование Sleep и GetAsyncKeyState, получение данных в глобальной области видимости. Тебе тут надо хукать WndProc и он тебе будет давать все текущие "эвенты" окна и не придётся использовать создание потока, sleep и получение стейта клавиши.
Вот вот именно
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|