-
Постов
77 -
Зарегистрирован
-
Посещение
-
Победитель дней
2
Тип контента
Профили
Форумы
Загрузки
Блоги
Сообщения, опубликованные Synapsehome
-
-
//Synapsehome Вы подразумеваете неабсолютные координаты?
да
-
Значение вертикальной координаты в компе всегда увеличивается при движении вниз.
хм, смотря где располагается начало координат.
-
Что-то я совсем туплю
Вот есть у меня строка байтов:
EB 00 90 90
Её длина 4байт.
Адреса начала сканирования
0000000000000000
и конца
7fffffffffffffff
.
Вот попробовал все это расставить:
{
for(;*szMask;++szMask,++pData,++bMask)
if(*szMask=='x' && *pData!=*bMask )
return false;
return (*szMask) == NULL;
}
DWORD dwFindPattern(DWORD (0000000000000000),DWORD (7fffffffffffffff), BYTE *bMask, char * szMask) {
for(DWORD i=0;i<dwLen;i++)
if( bDataCompare( (BYTE*)( dwAddress+i ),bMask,szMask) )
return (DWORD)(dwAddress+i);
return NULL;
}bool bDataCompare(const BYTE* (0EBh,000h,090h,090h), const BYTE* (x0xx), const char* (4))
Посмотрите правильно вставил данные?
misha, всё неправильно ))
DWORD a = FindPattern( базовый адрес модуля, размер модуля, маска, маска статичных байтов );
Полазей немного что такое c++ и верни функцию поиска паттернов в нормальный вид
-
вот именно что я их найти не могу в СЕ хотя как мне сказали надо искать 4 байта правильно ?
WTF я тебе 10 раз писал, что надо искать float (по крайней мере для CS:S), ты вообще читаешь что тебе пишут? В чём проблема найти Z координату?
-
ТС ещё не нашел координаты?))
-
Synapsehome: да это мне надо можешь помочь ?
Ты опять спрашиваешь? Я тебе ответил, см. моё первое сообщение
-
Мой пост был проигнорирован. Всё остальное находится в теме "Нахождение D3D устройства" в разделе про ollydbg
Вот что ему нужно. Только я с этими коробками башку ломал две недели, а тут координаты найти не могут...
-
Наверное он подразумевает то, про что я писал в блоге Кенга. Так вот, для нахождения положения игрока достаточно найти Z координату, которая отвечает за высоту и ищется легко. В большинстве игр положение игрока в пространстве - это вектор. d3d sdk:
typedef struct D3DXVECTOR3 {
FLOAT x;
FLOAT y;
FLOAT z;
} D3DXVECTOR3, *LPD3DXVECTOR3;Вывод: координаты имеют тип флоат в большинстве случаев. Флоат это 4 байта с точкой. Находим адрес Z-координаты, отнимаем от него 8 (2 раза по 4, см.левее), получаем адрес начала структуры положения игрока в пространстве.
А вот трансформация координат.. ваша фантазия
-
Хорошо сделаю, если найду игру.
Удачи в поисках, надеюсь они завершатся положительным результатом
-
Вот оно.
трейнер моей мечты
ps. какое же это извращение писать на дельфи ^^) я как после ФГС стал считать за богов девушек, так и после того как мне два последние года учебы парили в школе паскаль я стал считать за богов тех у кого хватает терпения прописывать эти var, begin и прочую муть, поэтому в 11 классе я был максимум на двух уроках информатики.
-
Достаточно найти инструкцию, работающую с этим динамическим адресом, адрес этой интрукции будет статичным.
Для того чтобы адрес который вы нашли при перезагрузки игры не менялся нужно написать скрипт
ээ, для этого надо найти указатели, а скрипт пишется для изменения инструкции, работающей с этим адресом.
-
Проблема в другом, работает не на всех играх, например если инжектить .dll в Метро2033 работает, если для COD4 MW не работает.
Всё прекрасно работает как и раньше, только что протестировал. Добавь функции логирования в свою дллку и посмотри, мб есть глюк и твой код вообще никогда не вызывается, т.к. keybdevent работает везде и всегда.
-
Блин я ступил, думал ты рапидфайр делал
У меня всё воркинг файн, весь код висит в ендсцене, проблем нету:
HRESULT WINAPI HookedDirectX::hookedkEndScene( LPDIRECT3DDEVICE9 m_pDevice )
{
_asm pushad;
/*
бла бла
*/
if(StMenu.Controls.SilverButton[Main.FirstTab][1][2].IsActive)
{
if (Tools.getTick == 200)
{
keybd_event(VK_LBUTTON, 0, 0, 0);//нажали
keybd_event(VK_LBUTTON, 0, KEYEVENTF_KEYUP, 0);//отпустили
HookedD3d.TextBordered(100,150,D3DXCOLOR_RGBA(255,0,0,255),"стреляем ;D");
Tools.DecTick(5);
}
}
_asm popad;
return m_pReturn;
}если порыться в структуре игрока можно найти кое чего интересного, будет адрес в котором содержится рандомное число когда прицел игрока наведён на врага и 0 если прицел не наведён Также адрес прицеливания ищется просто - изменился не изменился, тип 1 байт. Итого делаем проверку, если прицел игрока на враге и он не смотрит в прицел/оптику, делаем автозум и стреляем, получаем атошут. Клавишу в этот момент можно не отпускать.
-
Приложи код на любом другом языке программирования который работает, мы его легко перенесем на c++.
-
Порылся ещё глубже, теперь осталось научится получать координаты моделек и можно сделать универсальный аимбот на все игры
Выложу таблицу с вершинами и примитивами для команды контртеррористов на последнюю версию:
Numvertices & Primcounts
GIGN
3304 5003
2196 3061
1404 1919
811 989
466 550
68 40
68 34
Seal Team
3887 4974
2487 3006
73 59
899 910
513 451
369 279
SAS
3417 5030
2245 2998
1498 1822
929 1007
499 533
409 433
GSG 9
3206 4872
2130 3004
1424 1858
814 945
457 510
87 63
343 344штук 5-6 я правда пропустил при поисках, т.к. чтобы на отходить на 1м и выискивать заново нужно иметь совсем железные нервы
-
ок буду знать. limera1n спс те за помощь=).тока вот всеравно на бессмертие немогу сделать допустим жизнь моего героя 45000/45000 делаю сканирование тип флоат находит 1адрес делаю 99999заморозил.смотрю игру жизней 99999/99999.по началу думал а все я бессмертный но когда меня начинают атаковать жизнь начинает уменьшаться 34555/45000 и меньше и меньше.как в такой ситуации быть
просто искать изменяемое/неизменяемое значение
-
Если кому нужно, указатель на d3ddevice для CS:Source последней версии - shaderapidx9.dll+17C81C
-
> Petro, разумеется здесь все знают про структуры, они используются во всех современных играх. Вам просто повезло, что вы нашли эти параметры в структуре и рядом друг с другом. Это везение и ничего более : )
-
где-то читал, про шифровку скриптов в трейнере, вытащить скрипты возможно ли?
возможней чем кажется, можно поискать по секциям [ENABLE] и [DISABLE]. Или сравнить дампы памяти. Да дофига способов Изменения в файле никак не скрыть, хоть каким образом не делать трейнер, если заменяешь оригинальные инструкции. а если замораживать адреса, или писать по ним нужное число, то приватить нет смысла.
По мне, вся тема читстая порнография зачем гемороиться с СЕ, когда можно написать тотже самый тренер на том же самом простом языке VB, сделать свою системы привязки к компу, но всёравно легко вычислить изменения в памяти процесса как ни крути.
-
А какие утилиты имеют такие же функции, что и СЕ? брекпойнты и тп
В СЕ есть возможность ставить бряки с помощью тренера?
Я знаю несколько вариантов на языке программирования:
1) Использовать кодкейв с адреса, на котором должен стоять бряк и делать всё, что нужно.
2) брейкпоинты используя ms detours
3) отдетоурить опятьже с ms detours
3) VectorExceptionHandler
это всё, что мне известно
ps. или пардон, вы ищите другую среду разработки, наподобие СЕ, считая, что, как бы это объяснить, только в ней можно сделать трейнер не используя наработки самого СЕ? Т.е. перенести наработки, сделанные в СЕ - невозможно?
-
Есть, всё получилось, благо существует MSDN я ещё малость попарился с OnLostDevice, но оказывается там всё просто, Reset имеет индекс 16
HRESULT WINAPI Reset( LPDIRECT3DDEVICE9 D3D_DEVICE, D3DPRESENT_PARAMETERS* pPresentationParameters )
{
if(mFont){mFont->OnLostDevice();}
HRESULT MY_RESULT = oReset( D3D_DEVICE, pPresentationParameters );
if(MY_RESULT==D3D_OK) {if(mFont){mFont->OnResetDevice();}}
return MY_RESULT;
}теперь меню трейнера можно делать в самой игре
- 1
-
Чтоже это за такой гениальный тренер, который никто не сможет повторить, меня прям распирает от любопытства товарищи. Если тренер столь гениален, что потребовалась его защита сторонними программами (которую кстати легко сломать тем, кому будет нужен взлом), а у ТС отсутствуют начальные знания языка программирования, поскольку если бы они были, трейнер был бы сделан не в СЕ.
Я уже не первый раз встречаю такие сообщения как на нашем форуме, так и на других. Как я понимаю, в них что-то связано с AA (иначе , повторюсь, тренер был бы на языке программирования, т.к. писать в статичную память.... : ), а именно я думаю динамические адреса, проблема которых решается поиском указателей ну и выделение памяти, если после изменённой инструкции нада ещё чегонить замутить
Может мне кто-нибудь показать скрин этого тренера, пожалуйста
-
Мм, продолжу тему. В конце статьи пишется про возможность хука ендсцены, etc. Имеем адрес устройсва, найденного заранее для игры на dx9. Пробую сделать хук:
LPDIRECT3DDEVICE9 myGame;
while(!myGame)
myGame = (LPDIRECT3DDEVICE9)0x059457F8;// наш адрес д3д устройства
//насколько я знаю EndScene находится под индексом 42 в виртуальной таблице
//тогда можно использовать кодкейв, ничего лучше ms detours для этого нету ; )
oEndScene=(tEndScene)DetourFunction((PBYTE)GameDevice[42],(PBYTE)&EndScene);...
но нифига не работает
есть у кого более глубокие знания?
-
limera1n, поиск для каждой отдельной игры примитив и кол-ва вершин для текстур не такое уж утомительное занятие. Тем более валлхак и чамсы можно сделать по туману, где-то я это давненько видел.
Вопрос про СЕ
in Вопросы по созданию читов в одиночных играх
Опубликовано
в игре над которой "работает" ТС, Counter-Strike Source