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

  #4461  
Старый 05.05.2020, 21:03
CleanLegend
Постоянный
Регистрация: 28.03.2013
Сообщений: 495
С нами: 6908018

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

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

Чет там все для шарпа, я не понимаю. Понял, что память не может читаться, но почему?

вот это вообще непонятно куда и зачем
Исключение при чтении адреса памяти или записи в неё.

Драсте , такая проблема у меня . Решил стикать с гта са и решил начать с самого простого для левой программы но столкнулся с такой проблемой я не разу не писал консольные типо читы ну длл я писал и мне збс была а щас мне надо мониторить и тд и консолька это самый лучший вариант ( консольное...

www.blast.hk
 
Ответить с цитированием

  #4462  
Старый 05.05.2020, 21:54
ALF
Постоянный
Регистрация: 14.11.2017
Сообщений: 319
С нами: 4472205

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

ты пытаешься читать адрес своей же программы, а не игры
 
Ответить с цитированием

  #4463  
Старый 05.05.2020, 21:56
CleanLegend
Постоянный
Регистрация: 28.03.2013
Сообщений: 495
С нами: 6908018

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

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

Неа(
так ты тоже самое делаешь
 
Ответить с цитированием

  #4464  
Старый 05.05.2020, 22:20
barspinoff
Участник форума
Регистрация: 14.06.2015
Сообщений: 126
С нами: 5744580

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

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

Ничего не понимаю, разве я таким образом не читаю память gta_sa.exe? Как тогда адрес игры читать? Раньше только так делал и все нормально было.

C++:





Код:
#pragma once
#include 
#include 
#include 
#include 
#pragma comment(lib, "User32.lib")
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
)
{
//The buffer for data that is going to be read from memory
T buffer
;
//The actual RPM
ReadProcessMemory
(
hProcess
,
(
LPCVOID
)
address
,
&
buffer
,
sizeof
(
T
)
,
NULL
)
;
//Return our buffer
return
buffer
;
}

удали 615-620 строки

поиск по хэндлу тебе тоже не нужен, когда есть PID
 
Ответить с цитированием

  #4465  
Старый 05.05.2020, 22:39
ALF
Постоянный
Регистрация: 14.11.2017
Сообщений: 319
С нами: 4472205

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

Ты пытаешься прочитать данные из текущего процесса.

Из других процессов ты должен читать и записывать через ReadProcessMemory / WriteProcessMemory.
 
Ответить с цитированием

  #4466  
Старый 05.05.2020, 22:50
barspinoff
Участник форума
Регистрация: 14.06.2015
Сообщений: 126
С нами: 5744580

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

C:





Код:
WORD wID
;
DWORD pActor
,
pPed
,
pMtrx1
,
pMtrx2
;
float
fPlayerHP
;
ReadProcessMemory
(
hProcess
,
(
LPVOID
)
0xBAA410
,
&
wID
,
sizeof
(
wID
)
)
;
ReadProcessMemory
(
hProcess
,
(
LPVOID
)
0xBAA410
,
&
pActor
,
sizeof
(
pActor
)
)
;
ReadProcessMemory
(
hProcess
,
(
LPVOID
)
(
pActor
+
0x79C
)
,
&
pPed
,
sizeof
(
pPed
)
)
;
ReadProcessMemory
(
hProcess
,
(
LPVOID
)
(
pPed
+
0x14
)
,
&
pMtrx2
,
sizeof
(
pMtrx2
)
)
;
ReadProcessMemory
(
hProcess
,
(
LPVOID
)
(
pPed
+
0x540
)
,
&
fPlayerHP
,
sizeof
(
fPlayerHP
)
)
;
ReadProcessMemory
(
hProcess
,
(
LPVOID
)
(
pActor
+
0x14
)
,
&
pMtrx1
,
sizeof
(
pMtrx1
)
)
;
 
Ответить с цитированием

  #4467  
Старый 05.05.2020, 23:25
barspinoff
Участник форума
Регистрация: 14.06.2015
Сообщений: 126
С нами: 5744580

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

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

Это то, о чем сейчас Алфёров написал? Ошибка пропала, но работать не хочет.
тебе стоит проделать такую же работу на 630-639 строках

а на 640-462 уже WriteProcessMemory
 
Ответить с цитированием

  #4468  
Старый 06.05.2020, 00:11
barspinoff
Участник форума
Регистрация: 14.06.2015
Сообщений: 126
С нами: 5744580

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

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

Ну вот, как-то так, но с 37 по 43 нельзя преобразовать float в LPVOID

C++:





Код:
private
:
System
::
Void
TEST_Click
(
System
::
Object
^
sender
,
System
::
EventArgs
^
e
)
{
WORD wID
;
DWORD pActor
,
pPed
,
pMtrx1
,
pMtrx2
;
float
fPlayerHP
;
ReadProcessMemory
(
hProcess
,
(
LPVOID
)
0xBAA410
,
&
wID
,
sizeof
(
wID
)
,
0
)
;
ReadProcessMemory
(
hProcess
,
(
LPVOID
)
0xBAA410
,
&
pActor
,
sizeof
(
pActor
)
,
0
)
;
ReadProcessMemory
(
hProcess
,
(
LPVOID
)
(
pActor
+
0x79C
)
,
&
pPed
,
sizeof
(
pPed
)
,
0
)
;
ReadProcessMemory
(
hProcess
,
(
LPVOID
)
(
pPed
+
0x14
)
,
&
pMtrx2
,
sizeof
(
pMtrx2
)
,
0
)
;
ReadProcessMemory
(
hProcess
,
(
LPVOID
)
(
pPed
+
0x540
)
,
&
fPlayerHP
,
sizeof
(
fPlayerHP
)
,
0
)
;
if
(
&
pPed
>
0
)
{
float
*
x
=
(
float
*
)
(
(
&
pMtrx1
)
+
0x30
)
;
//X position Ped
float
*
y
=
(
float
*
)
(
(
&
pMtrx1
)
+
0x34
)
;
//Y position Ped
float
*
z
=
(
float
*
)
(
(
&
pMtrx1
)
+
0x38
)
;
//Z position Ped
float
*
x1
=
(
float
*
)
(
(
&
pMtrx2
)
+
0x30
)
;
//X position Target
float
*
y1
=
(
float
*
)
(
(
&
pMtrx2
)
+
0x34
)
;
//Y position Target
float
*
z1
=
(
float
*
)
(
(
&
pMtrx2
)
+
0x38
)
;
//Z position Target
float
*
RotAngle
=
(
float
*
)
(
(
&
pActor
)
+
0x558
)
;
//health of target player
float
Xwiping
=
(
float
)
*
x
+
2
*
(
float
)
cos
(
*
RotAngle
+
1.48353F
)
;
float
Ywiping
=
(
float
)
*
y
+
2
*
(
float
)
sin
(
*
RotAngle
+
1.48353F
)
;
float
Zwiping
=
(
float
)
*
z
+
0.5F
;
*
x1
=
(
float
)
Xwiping
;
*
y1
=
(
float
)
Ywiping
;
*
z1
=
(
float
)
Zwiping
;
ReadProcessMemory
(
hProcess
,
(
LPVOID
)
(
float
*
)
(
(
&
pMtrx1
)
+
0x30
)
,
&
pMtrx1
,
sizeof
(
pMtrx1
)
,
0
)
;
ReadProcessMemory
(
hProcess
,
(
LPVOID
)
(
float
*
)
(
(
&
pMtrx1
)
+
0x34
)
,
&
pMtrx1
,
sizeof
(
pMtrx1
)
,
0
)
;
ReadProcessMemory
(
hProcess
,
(
LPVOID
)
(
float
*
)
(
(
&
pMtrx1
)
+
0x38
)
,
&
pMtrx1
,
sizeof
(
pMtrx1
)
,
0
)
;
ReadProcessMemory
(
hProcess
,
(
LPVOID
)
(
float
*
)
(
(
&
pMtrx1
)
+
0x30
)
,
&
pMtrx2
,
sizeof
(
pMtrx2
)
,
0
)
;
ReadProcessMemory
(
hProcess
,
(
LPVOID
)
(
float
*
)
(
(
&
pMtrx1
)
+
0x34
)
,
&
pMtrx2
,
sizeof
(
pMtrx2
)
,
0
)
;
ReadProcessMemory
(
hProcess
,
(
LPVOID
)
(
float
*
)
(
(
&
pMtrx1
)
+
0x38
)
,
&
pMtrx2
,
sizeof
(
pMtrx2
)
,
0
)
;
ReadProcessMemory
(
hProcess
,
(
LPVOID
)
(
float
*
)
(
(
&
pActor
)
+
0x558
)
,
&
pActor
,
sizeof
(
pActor
)
,
0
)
;
ReadProcessMemory
(
hProcess
,
(
LPVOID
)
(
float
)
*
x
+
2
*
(
float
)
cos
(
*
RotAngle
+
1.48353F
)
,
&
RotAngle
,
sizeof
(
RotAngle
)
,
0
)
;
ReadProcessMemory
(
hProcess
,
(
LPVOID
)
(
float
)
*
y
+
2
*
(
float
)
sin
(
*
RotAngle
+
1.48353F
)
,
&
RotAngle
,
sizeof
(
RotAngle
)
,
0
)
;
ReadProcessMemory
(
hProcess
,
(
LPVOID
)
(
float
)
*
z
+
0.5F
,
&
RotAngle
,
sizeof
(
RotAngle
)
,
0
)
;
WriteProcessMemory
(
hProcess
,
(
LPVOID
)
(
float
)
Xwiping
,
&
Xwiping
,
sizeof
(
Xwiping
)
,
0
)
;
WriteProcessMemory
(
hProcess
,
(
LPVOID
)
(
float
)
Ywiping
,
&
Ywiping
,
sizeof
(
Ywiping
)
,
0
)
;
WriteProcessMemory
(
hProcess
,
(
LPVOID
)
(
float
)
Zwiping
,
&
Zwiping
,
sizeof
(
Zwiping
)
,
0
)
;
}
}

видимо, ты совсем ничего не понял

C:





Код:
float
x
,
y
,
z
,
xt
,
yt
,
zt
,
angle
,
xw
,
yw
,
zw
;
ReadProcessMemory
(
hProcess
,
(
LPVOID
)
(
pMtrx1
+
0x30
)
,
&
x
,
sizeof
(
x
)
,
0
)
;
ReadProcessMemory
(
hProcess
,
(
LPVOID
)
(
pMtrx1
+
0x34
)
,
&
y
,
sizeof
(
y
)
,
0
)
;
ReadProcessMemory
(
hProcess
,
(
LPVOID
)
(
pMtrx1
+
0x38
)
,
&
z
,
sizeof
(
z
)
,
0
)
;
ReadProcessMemory
(
hProcess
,
(
LPVOID
)
(
pMtrx2
+
0x30
)
,
&
xt
,
sizeof
(
xt
)
,
0
)
;
ReadProcessMemory
(
hProcess
,
(
LPVOID
)
(
pMtrx2
+
0x34
)
,
&
yt
,
sizeof
(
yt
)
,
0
)
;
ReadProcessMemory
(
hProcess
,
(
LPVOID
)
(
pMtrx2
+
0x38
)
,
&
zt
,
sizeof
(
zt
)
,
0
)
;
ReadProcessMemory
(
hProcess
,
(
LPVOID
)
(
pActor
+
0x558
)
,
&
angle
,
sizeof
(
angle
)
,
0
)
;
xw
=
(
float
)
x
+
2
*
(
float
)
cos
(
angle
+
1.48353F
)
;
yw
=
(
float
)
y
+
2
*
(
float
)
sin
(
angle
+
1.48353F
)
;
zw
=
(
float
)
z
+
0.5F
;
WriteProcessMemory
(
hProcess
,
(
LPVOID
)
(
pMtrx2
+
0x30
)
,
&
xw
,
sizeof
(
xw
)
,
0
)
;
WriteProcessMemory
(
hProcess
,
(
LPVOID
)
(
pMtrx2
+
0x34
)
,
&
yw
,
sizeof
(
yw
)
,
0
)
;
WriteProcessMemory
(
hProcess
,
(
LPVOID
)
(
pMtrx2
+
0x38
)
,
&
zw
,
sizeof
(
zw
)
,
0
)
;
 
Ответить с цитированием

  #4469  
Старый 06.05.2020, 00:28
barspinoff
Участник форума
Регистрация: 14.06.2015
Сообщений: 126
С нами: 5744580

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

попробуй тогда VirtualProtectEx применить
 
Ответить с цитированием

  #4470  
Старый 06.05.2020, 02:15
samp is meme
Участник форума
Регистрация: 28.08.2016
Сообщений: 183
С нами: 5109543

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

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

Я щас как ебучий абориген, которому показали зажигалку. Как этим пользоваться? Я что-то написал, исходя из инфы на странице этой функции msoft, но я ничего не понимаю. Подскажи, пожалуйста, как мне юзать это ?
Не знаю, хоть как-то тебе облегчить жизнь, класс для работы с памятью.

C++:





Код:
#pragma once
#include    
#include    
#include    
struct
PModule
{
DWORD dwBase
;
DWORD dwSize
;
}
;
class
memory
{
public
:
inline
bool
Attach
(
const
char
*
pName
,
DWORD dwSize
)
{
HANDLE handle
=
CreateToolhelp32Snapshot
(
TH32CS_SNAPPROCESS
,
NULL
)
;
PROCESSENTRY32 entry
;
entry
.
dwSize
=
sizeof
(
entry
)
;
do
if
(
!
strcmp
(
_bstr_t
(
entry
.
szExeFile
)
,
pName
)
)
{
_pId
=
entry
.
th32ProcessID
;
CloseHandle
(
handle
)
;
_process
=
OpenProcess
(
dwSize
,
false
,
_pId
)
;
return
true
;
}
while
(
Process32Next
(
handle
,
&
entry
)
)
;
return
false
;
}
inline
PModule
GetModule
(
const
char
*
pModule
)
{
HANDLE module
=
CreateToolhelp32Snapshot
(
TH32CS_SNAPMODULE
,
_pId
)
;
MODULEENTRY32 entry
;
entry
.
dwSize
=
sizeof
(
entry
)
;
do
if
(
!
strcmp
(
_bstr_t
(
entry
.
szModule
)
,
pModule
)
)
{
CloseHandle
(
module
)
;
return
PModule
{
reinterpret_cast

(
entry
.
hModule
)
,
entry
.
modBaseSize
}
;
}
while
(
Module32Next
(
module
,
&
entry
)
)
;
return
PModule
{
0
,
0
}
;
}
template

T
Read
(
const
DWORD dwSize
)
{
T _read
;
ReadProcessMemory
(
_process
,
LPVOID
(
dwSize
)
,
&
_read
,
sizeof
(
T
)
,
NULL
)
;
return
_read
;
}
template

void
Write
(
const
DWORD dwSize
,
const
T value
)
{
WriteProcessMemory
(
_process
,
LPVOID
(
dwSize
)
,
&
value
,
sizeof
(
T
)
,
NULL
)
;
}
void
Exit
(
)
{
CloseHandle
(
_process
)
;
}
private
:
HANDLE _process
;
DWORD _pId
;
}
;


Как юзать на примере контры

C++:





Код:
memory mem
;
PModule bClient
;
while
(
!
mem
.
Attach
(
"csgo.exe"
,
PROCESS_ALL_ACCESS
)
)
{
}
bClient
=
mem
.
GetModule
(
"client_panorama.dll"
)
;
DWORD playerBase
=
mem
.
Read

(
bClient
.
dwBase
+
dwLocalPlayer
)
;
 
Ответить с цитированием
Ответ





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


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




ANTICHAT ™ © 2001- Antichat Kft.

×

Создать сделку

Продавец: ник или ID

Название сделки:

Сумма USDT:

Срок сделки, дней:

Кто платит комиссию:

Условия сделки:

После создания сделки средства будут зарезервированы в холде до завершения сделки.

×

Мои сделки

Загрузка...
×

Сделка


Загрузка чата...