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

  #1231  
Старый 05.12.2016, 19:27
SR_team
Флудер
Регистрация: 26.10.2013
Сообщений: 4,924
С нами: 6603505

Репутация: 183


По умолчанию

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

Хук DirectX, работают все функи, коме DrawLine. Спиздил ее отсюда: https://github.com/BlastHackNet/mod_.../d3drender.cpp

Вот вызовы:







C++:





Код:
pD3DHook
->
pRender
->
DrawLine
(
v
[
0
]
,
v
[
1
]
,
0xffff0000
)
;
pD3DHook
->
pRender
->
DrawLine
(
xy
[
0
]
,
xy
[
1
]
,
0xff00ff00
)
;


где v[2] и xy[2] имеют тип D3DXVECTOR3

v
заполнил вручную (1.0;1.0 ... 500.0, 500.0)
xy содержит 2д координаты (мои и таргета)
В результате должно быть две линии - красная(диагональ с левого верхнего угла экрана) и зеленая - от меня до цели.
Но нихуя. Рисует непонятно что (квадраты мои, на них внимание не обращайте):
Цитата:
Сообщение от Спойлер  


Если целюсь в педа с другой стороны - рисует вообще в другом месте:
Цитата:
Сообщение от Спойлер  


Если стать по другому. То ее вообще не видно будет.
Прямо внутри функи CD3DRender:: DrawLine сделал вывод координат в чат, так же отрендерил доп. инфу (слева). Числа правильные. Почему зеленая линия рисуется вообще не там, где мне нужно, а красной вообще нет?

Вот функция из соба(из сурса, ссылка на который в начале сообщения), в ней абсолютно ничего не менял, только добавил вывод в чат

C++:





Код:
bool
CD3DRender
::
DrawLine
(
const
D3DXVECTOR3
&
a
,
const
D3DXVECTOR3
&
b
,
DWORD dwColor
)
{
if
(
FAILED
(
CD3DBaseRender
::
BeginRender
(
)
)
)
return
false
;
////////////////////////////////////////////////////
// Make sure we have a valid vertex buffer.
if
(
m_pD3Dbuf
==
NULL
)
{
return
false
;
}
m_pD3Ddev
->
SetTextureStageState
(
0
,
D3DTSS_COLOROP
,
D3DTOP_SELECTARG2
)
;
m_pD3Ddev
->
SetTextureStageState
(
0
,
D3DTSS_ALPHAOP
,
D3DTOP_SELECTARG2
)
;
//m_pD3Ddev->SetTextureStageState( 0, D3DTSS_COLORARG2, D3DTA_DIFFUSE );
//m_pD3Ddev->SetTextureStageState( 0, D3DTSS_ALPHAARG2, D3DTA_DIFFUSE );
m_pD3Ddev
->
SetRenderState
(
D3DRS_CLIPPING
,
false
)
;
m_pD3Ddev
->
SetRenderState
(
D3DRS_ZENABLE
,
false
)
;
//m_pD3Ddev->SetRenderState ( D3DRS_LIGHTING, false );
D3DLVERTEX    lineList
[
2
]
;
//////////////////////////////////////////////////
// Lock the vertex buffer and copy in the verts.
m_pD3Dbuf
->
Lock
(
0
,
0
,
(
void
*
*
)
&
lineList
,
D3DLOCK_DISCARD
|
D3DLOCK_NOSYSLOCK
)
;
// flogs: D3DLOCK_NOSYSLOCK, D3DLOCK_DISCARD
{
lineList
[
0
]
.
x
=
a
.
x
;
lineList
[
0
]
.
y
=
a
.
y
;
lineList
[
0
]
.
z
=
a
.
z
;
lineList
[
0
]
.
color
=
dwColor
;
lineList
[
0
]
.
specular
=
dwColor
;
lineList
[
1
]
.
x
=
b
.
x
;
lineList
[
1
]
.
y
=
b
.
y
;
lineList
[
1
]
.
z
=
b
.
z
;
lineList
[
1
]
.
color
=
dwColor
;
lineList
[
1
]
.
specular
=
dwColor
;
}
m_pD3Dbuf
->
Unlock
(
)
;
// store FVF to restore original at the end of this function
DWORD        fvf
;
m_pD3Ddev
->
GetFVF
(
&
fvf
)
;
m_pD3Ddev
->
SetFVF
(
D3DFVF_LVERTEX
)
;
//m_pD3Ddev->SetFVF( D3DFVF_PRIMITIVES );
////////////////////////////////////////////////////
// Draw!
p1c
->
addMessageToChat
(
0xFFe1e1e1
,
"1) %.1f %.1f %.1f %.1f | %x"
,
a
.
x
,
a
.
y
,
b
.
x
,
b
.
y
,
dwColor
)
;
p1c
->
addMessageToChat
(
0xFFc1c1c1
,
"2) %.1f %.1f %.1f %.1f | %x"
,
lineList
[
0
]
.
x
,
lineList
[
0
]
.
y
,
lineList
[
1
]
.
x
,
lineList
[
1
]
.
y
,
dwColor
)
;
m_pD3Ddev
->
DrawPrimitiveUP
(
D3DPT_LINESTRIP
,
1
,
lineList
,
sizeof
(
lineList
)
/
2
)
;
// reset states
m_pD3Ddev
->
SetTextureStageState
(
0
,
D3DTSS_COLOROP
,
D3DTOP_MODULATE
)
;
m_pD3Ddev
->
SetTextureStageState
(
0
,
D3DTSS_ALPHAOP
,
D3DTOP_MODULATE
)
;
m_pD3Ddev
->
SetRenderState
(
D3DRS_ZENABLE
,
true
)
;
m_pD3Ddev
->
SetRenderState
(
D3DRS_CLIPPING
,
true
)
;
// restore FVF
m_pD3Ddev
->
SetFVF
(
fvf
)
;
CD3DBaseRender
::
EndRender
(
)
;
return
true
;
}

Была такая проблема. Пизди линии из antTweakBar
 
Ответить с цитированием

  #1232  
Старый 05.12.2016, 19:47
FYP
Познавший АНТИЧАТ
Регистрация: 09.03.2013
Сообщений: 1,771
С нами: 6935121

Репутация: 233


По умолчанию

@Picador так это же функция рендера линии в мире. она принимает 3д координаты.
 
Ответить с цитированием

  #1233  
Старый 05.12.2016, 19:51
p1cador
Участник форума
Регистрация: 19.03.2014
Сообщений: 222
С нами: 6395080

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

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

@Picador так это же функция рендера линии в мире. она принимает 3д координаты.
cerf)

я еще думал, нахера там z

ну щас точно все на свои места стало) спс

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

(external) читы
Может есть инфа минимальная хотя бы, VAC как-то будет палить, если я сделаю ReadProcessMemory с левого .exe? Ну просто с проверкой на наличие инжекнутых .dll библиотек я согласен, справедливо, VAC это изи палит. А что, если просто прочитать (!не записывать) что-либо через ReadProcessMemory, это вообще может палиться? Хотя бы в теории, оставит ли след где-то в игре сам факт того, что я просто прочитал значение? Просто я плохо шарю в том, как это все устроено и мне кажется, что в прочтении значения по опред. адресу не должно быть ничего серьезного, это вроде как просто в щелочку посмотреть Или всё-таки где-то эта операция будет оставлять след? Там регистры какие-нибудь, еще че, я хз

А то у меня в бошке все как-то слишком изи получается, прочитал координаты игроков через стороннее приложение->отрендерил через него же поверх всех окон = изи вх. Или просто приаттачить к бандикаму там, или еще куда, что поверх всех окон висит и с ваком дружит. Но подозреваю, что я далеко не первый такой умник.
 
Ответить с цитированием

  #1234  
Старый 07.12.2016, 14:02
FYP
Познавший АНТИЧАТ
Регистрация: 09.03.2013
Сообщений: 1,771
С нами: 6935121

Репутация: 233


По умолчанию

@Picador я особо не вдавался в работу VAC. отследить вызов ReadProcessMemory можно только с помощью драйвера. в MTA, например, он есть. кроме ReadProcessMemory есть и другие способы прочитать память процесса, они сложнее. есть и возможность скрытно загрузить dll в процесс и скрыть её вообще от всего, только это тоже сложно и сам процесс скрытия может детектироваться.
 
Ответить с цитированием

  #1235  
Старый 07.12.2016, 16:16
p1cador
Участник форума
Регистрация: 19.03.2014
Сообщений: 222
С нами: 6395080

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

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

я особо не вдавался в работу VAC. отследить вызов ReadProcessMemory можно только с помощью драйвера.
Т.е. про наличие этого драйвера в кс го точно сказать не можешь?

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

кроме ReadProcessMemory есть и другие способы прочитать память процесса, они сложнее.
В какую сторону гуглить?

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

есть и возможность скрытно загрузить dll в процесс и скрыть её вообще от всего, только это тоже сложно и сам процесс скрытия может детектироваться.
Ну я подозревал, что это всетаки возможно. Это ж комп, тут, в теории возможно сделать что угодно, но для меня это рил слишком сложно будет. А вот про то, как прочитать значения безпалева, кроме ReadProcessMemory, я бы почитал. Что искать?

П.С. спс за помощь, от души, хз где еще мне в этом помогут на таком уровне
 
Ответить с цитированием

  #1236  
Старый 07.12.2016, 17:42
Woofing Giraffe
Постоянный
Регистрация: 14.06.2015
Сообщений: 402
С нами: 5744580

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

Вот есть у меня функция и есть глобальная переменная. Как мне передать в эту функцию переменную, чтобы саму эту переменную функция могла изменить (не переданную, а глобальную)? Указатель не помогает
 
Ответить с цитированием

  #1237  
Старый 07.12.2016, 18:36
itsLegend
Флудер
Регистрация: 23.03.2013
Сообщений: 2,696
С нами: 6915558

Репутация: 183


По умолчанию

Цитата:
Сообщение от Woofing Giraffe  

Вот есть у меня функция и есть глобальная переменная. Как мне передать в эту функцию переменную, чтобы саму эту переменную функция могла изменить (не переданную, а глобальную)? Указатель не помогает
Но она же глобальная. Зачем передавать ссылку на неё?
 
Ответить с цитированием

  #1238  
Старый 07.12.2016, 21:22
FYP
Познавший АНТИЧАТ
Регистрация: 09.03.2013
Сообщений: 1,771
С нами: 6935121

Репутация: 233


По умолчанию

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

Т.е. про наличие этого драйвера в кс го точно сказать не можешь?
не могу.

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

В какую сторону гуглить?
в сторону обходов обнаружения вызовов Read/WriteProcessMemory.
 
Ответить с цитированием

  #1239  
Старый 07.12.2016, 22:19
SR_team
Флудер
Регистрация: 26.10.2013
Сообщений: 4,924
С нами: 6603505

Репутация: 183


По умолчанию

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

@Picador я особо не вдавался в работу VAC. отследить вызов ReadProcessMemory можно только с помощью драйвера. в MTA, например, он есть. кроме ReadProcessMemory есть и другие способы прочитать память процесса, они сложнее. есть и возможность скрытно загрузить dll в процесс и скрыть её вообще от всего, только это тоже сложно и сам процесс скрытия может детектироваться.
по этому надо переходить на линукс. Процессы запущенные под вайн чувствуют себя как в винде и могут видеть только виртуальное пространство типа винды, в то время, как со стороны линукс приложений видно все, и они могут воздействовать на процессы линукса. Таким образом можно подцепить линуксовый дебагер к виндовым приложениям и они его никак не смогут задетектить
 
Ответить с цитированием

  #1240  
Старый 08.12.2016, 13:05
p1cador
Участник форума
Регистрация: 19.03.2014
Сообщений: 222
С нами: 6395080

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

@kiceargy, OpenFileDialog
 
Ответить с цитированием
Ответ





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


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




ANTICHAT ™ © 2001- Antichat Kft.