
03.05.2020, 10:59
|
|
Постоянный
Регистрация: 14.11.2017
Сообщений: 319
С нами:
4472205
Репутация:
163
|
|
GetDC function (winuser.h) - Win32 apps
The GetDC function retrieves a handle to a device context (DC) for the client area of a specified window or for the entire screen.
docs.microsoft.com
C++:
Код:
#pragma comment(lib, "User32.lib")
|
|
|

03.05.2020, 16:10
|
|
Постоянный
Регистрация: 24.07.2017
Сообщений: 867
С нами:
4633764
Репутация:
148
|
|
Как сделать активацию по читкоду в sf?
|
|
|

03.05.2020, 17:59
|
|
Постоянный
Регистрация: 14.11.2017
Сообщений: 319
С нами:
4472205
Репутация:
163
|
|
Сообщение от loganhackerdff
Как сделать активацию по читкоду в sf?
C++:
Код:
// https://github.com/cleolibrary/CLEO4/blob/master/source/CTextManager.cpp#L67
bool
TestCheat
(
const
char
*
cheat
)
{
char
*
c
=
reinterpret_cast
(
0x00969110
)
;
char
buf
[
30
]
;
strcpy
(
buf
,
cheat
)
;
char
*
s
=
_strrev
(
buf
)
;
if
(
_strnicmp
(
s
,
c
,
strlen
(
s
)
)
)
return
false
;
*
reinterpret_cast
(
0x00969110
)
=
0
;
return
true
;
}
if
(
TestCheat
(
"cheat"
)
)
{
// ...
}
|
|
|

03.05.2020, 17:01
|
|
Флудер
Регистрация: 18.03.2013
Сообщений: 4,080
С нами:
6921957
Репутация:
183
|
|
Я делал, но способ крайне тупой. Записывать из события окна WM_CHAR значения в строку и после каждой записи производить поиск подстроки нужной и если результат истинный, то активировал нужный кусок кода и очищал строку. Так же делал фильтрацию на длинную строки в 32 символа, чтобы не забивать память.
Если строка была длинее 32 символов, то удалял первый символ из неё.
|
|
|

03.05.2020, 17:48
|
|
Новичок
Регистрация: 30.04.2020
Сообщений: 1
С нами:
3178206
Репутация:
1
|
|
Как в asi можно получить указатель на cchat. Тот, что передается первым аргументом в AddMessage.
|
|
|

04.05.2020, 10:33
|
|
Новичок
Регистрация: 07.01.2016
Сообщений: 4
С нами:
5447126
Репутация:
0
|
|
I need stealth renderer for not captured on video, anyone?
|
|
|

04.05.2020, 22:35
|
|
Флудер
Регистрация: 18.03.2013
Сообщений: 4,080
С нами:
6921957
Репутация:
183
|
|
Такой вопрос. Он В самповских тексдравах есть возможность рендерить модель обьекта(педов, машин и т.д). Собственно, у меня такой вопрос. Как это можно реализовать самому и оттуда вытянуть(создать) текстуру в виде LPDIRECT3DTEXTURE9?
|
|
|

05.05.2020, 02:00
|
|
Постоянный
Регистрация: 24.11.2016
Сообщений: 537
С нами:
4982429
Репутация:
78
|
|
как заставить sscanf работать с русскими символами?
|
|
|

05.05.2020, 10:42
|
|
Постоянный
Регистрация: 27.05.2018
Сообщений: 651
С нами:
4191790
Репутация:
83
|
|
Сообщение от tlwsn
как заставить sscanf работать с русскими символами?
Попробуй использовать Wide-аналог этой функции - swscanf_s. В проекте используй набор символов Юникода (Unicode Character Set). Отпиши, помогло или нет.
Сообщение от T4yz1e
Ошибка LNK2019 ссылка на неразрешенный внешний символ "extern "C" struct HDC__ * __stdcall GetDC(struct HWND__ *)" (?GetDC@@$$J14YGPAUHDC__@@PAUHWND__@@@Z) в функции "void __clrcall `dynamic initializer for 'hdc''(void)" (???__Ehdc@@YMXXZ@?A0xa98138a8@@$$FYMXXZ)
Юникод на многобайтовую кодировку менял, не помогло. На странице ошибки слишком размыто и инфы конкретной я не нашел
Memory.h:
Код:
#include
#include
#include
#include
#include
DWORD
GetProcId
(
const
char
*
procName
)
{
DWORD procId
=
0
;
HANDLE hSnap
=
CreateToolhelp32Snapshot
(
TH32CS_SNAPPROCESS
,
0
)
;
if
(
hSnap
!=
INVALID_HANDLE_VALUE
)
{
PROCESSENTRY32 procEntry
;
procEntry
.
dwSize
=
sizeof
(
procEntry
)
;
if
(
Process32First
(
hSnap
,
&
procEntry
)
)
{
do
{
if
(
!
strcmp
(
procEntry
.
szExeFile
,
procName
)
)
{
procId
=
procEntry
.
th32ProcessID
;
break
;
}
}
while
(
Process32Next
(
hSnap
,
&
procEntry
)
)
;
}
}
CloseHandle
(
hSnap
)
;
return
procId
;
}
uintptr_t
GetModuleBaseAddress
(
DWORD procId
,
const
char
*
modName
)
{
uintptr_t modBaseAddr
=
0
;
HANDLE hSnap
=
CreateToolhelp32Snapshot
(
TH32CS_SNAPMODULE
|
TH32CS_SNAPMODULE32
,
procId
)
;
if
(
hSnap
!=
INVALID_HANDLE_VALUE
)
{
MODULEENTRY32 modEntry
;
modEntry
.
dwSize
=
sizeof
(
modEntry
)
;
if
(
Module32First
(
hSnap
,
&
modEntry
)
)
{
do
{
if
(
!
strcmp
(
modEntry
.
szModule
,
modName
)
)
{
modBaseAddr
=
(
uintptr_t
)
modEntry
.
modBaseAddr
;
break
;
}
}
while
(
Module32Next
(
hSnap
,
&
modEntry
)
)
;
}
}
CloseHandle
(
hSnap
)
;
return
modBaseAddr
;
}
uintptr_t moduleBase
=
GetModuleBaseAddress
(
GetProcId
(
"gta_sa.exe"
)
,
"samp.dll"
)
;
HANDLE hProcess
=
OpenProcess
(
PROCESS_ALL_ACCESS
,
NULL
,
GetProcId
(
"gta_sa.exe"
)
)
;
HDC hdc
=
GetDC
(
FindWindowA
(
NULL
,
"GTA:SA:MP"
)
)
;
template
T
RPM
(
SIZE_T address
)
{
T buffer
;
ReadProcessMemory
(
hProcess
,
(
LPCVOID
)
address
,
&
buffer
,
sizeof
(
T
)
,
NULL
)
;
return
buffer
;
}
Странно, ведь у меня работает GetDC и при простом подключении Windows.h. Не забывай отрисовочный контекст (DC) чистить, когда ты им воспользовался, и он тебе не нужен. Т.к используется ф-я GetDC, то чистим при помощи ReleaseDC. Рекомендую ознакомиться с этой страницей - http://www.vsokovikov.narod.ru/New_MSDN_API/D_context/fn_releasedc.htm. В частности, нам интересен текст под заголовком "Замечания". Если ты скинул код неполностью и ты используешь эту функцию где-то у себя дальше, то прошу прощения за наезд.
|
|
|

05.05.2020, 21:54
|
|
Постоянный
Регистрация: 14.11.2017
Сообщений: 319
С нами:
4472205
Репутация:
163
|
|
ты пытаешься читать адрес своей же программы, а не игры
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|