Перейти к содержанию

Synapsehome

Пользователи
  • Постов

    77
  • Зарегистрирован

  • Посещение

  • Победитель дней

    2

Сообщения, опубликованные Synapsehome

  1. Что-то я совсем туплю:)

    Вот есть у меня строка байтов:

    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++ и верни функцию поиска паттернов в нормальный вид :)

  2. вот именно что я их найти не могу в СЕ хотя как мне сказали надо искать 4 байта правильно ?

    WTF :blink: я тебе 10 раз писал, что надо искать float (по крайней мере для CS:S), ты вообще читаешь что тебе пишут? В чём проблема найти Z координату?

  3. Мой пост был проигнорирован. <_< Всё остальное находится в теме "Нахождение D3D устройства" в разделе про ollydbg

    Вот что ему нужно. Только я с этими коробками башку ломал две недели, а тут координаты найти не могут...

  4. Наверное он подразумевает то, про что я писал в блоге Кенга. Так вот, для нахождения положения игрока достаточно найти Z координату, которая отвечает за высоту и ищется легко. В большинстве игр положение игрока в пространстве - это вектор. d3d sdk:


    typedef struct D3DXVECTOR3 {
    FLOAT x;
    FLOAT y;
    FLOAT z;
    } D3DXVECTOR3, *LPD3DXVECTOR3;

    Вывод: координаты имеют тип флоат в большинстве случаев. Флоат это 4 байта с точкой. Находим адрес Z-координаты, отнимаем от него 8 (2 раза по 4, см.левее), получаем адрес начала структуры положения игрока в пространстве.

    А вот трансформация координат.. ваша фантазия :mellow:

  5. Вот оно.

    трейнер моей мечты :lol:

    ps. какое же это извращение писать на дельфи ^^) я как после ФГС стал считать за богов девушек, так и после того как мне два последние года учебы парили в школе паскаль я стал считать за богов тех у кого хватает терпения прописывать эти var, begin и прочую муть, поэтому в 11 классе я был максимум на двух уроках информатики.

  6. Достаточно найти инструкцию, работающую с этим динамическим адресом, адрес этой интрукции будет статичным.

    Для того чтобы адрес который вы нашли при перезагрузки игры не менялся нужно написать скрипт

    ээ, для этого надо найти указатели, а скрипт пишется для изменения инструкции, работающей с этим адресом.

  7. Проблема в другом, работает не на всех играх, например если инжектить .dll в Метро2033 работает, если для COD4 MW не работает.

    Всё прекрасно работает как и раньше, только что протестировал. Добавь функции логирования в свою дллку и посмотри, мб есть глюк и твой код вообще никогда не вызывается, т.к. keybdevent работает везде и всегда.

  8. Блин я ступил, думал ты рапидфайр делал :grin:

    У меня всё воркинг файн, весь код висит в ендсцене, проблем нету:

    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 если прицел не наведён :-P Также адрес прицеливания ищется просто - изменился не изменился, тип 1 байт. Итого делаем проверку, если прицел игрока на враге и он не смотрит в прицел/оптику, делаем автозум и стреляем, получаем атошут. Клавишу в этот момент можно не отпускать.

  9. Порылся ещё глубже, теперь осталось научится получать координаты моделек и можно сделать универсальный аимбот на все игры :rolleyes:

    b9f107d45c7652e95be8c90a62fa7764.jpg

    Выложу таблицу с вершинами и примитивами для команды контртеррористов на последнюю версию:


    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м и выискивать заново нужно иметь совсем железные нервы :-D

  10. ок буду знать. limera1n спс те за помощь=).тока вот всеравно на бессмертие немогу сделать допустим жизнь моего героя 45000/45000 делаю сканирование тип флоат находит 1адрес делаю 99999заморозил.смотрю игру жизней 99999/99999.по началу думал а все я бессмертный но когда меня начинают атаковать жизнь начинает уменьшаться 34555/45000 и меньше и меньше.как в такой ситуации быть

    просто искать изменяемое/неизменяемое значение :huh:

  11. > Petro, разумеется здесь все знают про структуры, они используются во всех современных играх. Вам просто повезло, что вы нашли эти параметры в структуре и рядом друг с другом. Это везение и ничего более : )

  12. где-то читал, про шифровку скриптов в трейнере, вытащить скрипты возможно ли?

    возможней чем кажется, можно поискать по секциям [ENABLE] и [DISABLE]. Или сравнить дампы памяти. Да дофига способов ;) Изменения в файле никак не скрыть, хоть каким образом не делать трейнер, если заменяешь оригинальные инструкции. а если замораживать адреса, или писать по ним нужное число, то приватить нет смысла.

    По мне, вся тема читстая порнография :lol: зачем гемороиться с СЕ, когда можно написать тотже самый тренер на том же самом простом языке VB, сделать свою системы привязки к компу, но всёравно легко вычислить изменения в памяти процесса как ни крути.

  13. А какие утилиты имеют такие же функции, что и СЕ? брекпойнты и тп

    В СЕ есть возможность ставить бряки с помощью тренера? :blink:

    Я знаю несколько вариантов на языке программирования:

    1) Использовать кодкейв с адреса, на котором должен стоять бряк и делать всё, что нужно.

    2) брейкпоинты используя ms detours

    3) отдетоурить опятьже с ms detours

    3) VectorExceptionHandler

    это всё, что мне известно :grin:

    ps. или пардон, вы ищите другую среду разработки, наподобие СЕ, считая, что, как бы это объяснить, только в ней можно сделать трейнер не используя наработки самого СЕ? Т.е. перенести наработки, сделанные в СЕ - невозможно? <_<

  14. Есть, всё получилось, благо существует MSDN :lol: я ещё малость попарился с 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;
    }

    4132afbf4a25e4a058710cc2a55feb0f.jpg

    теперь меню трейнера можно делать в самой игре :grin:

    • Плюс 1
  15. Чтоже это за такой гениальный тренер, который никто не сможет повторить, меня прям распирает от любопытства товарищи. Если тренер столь гениален, что потребовалась его защита сторонними программами (которую кстати легко сломать тем, кому будет нужен взлом), а у ТС отсутствуют начальные знания языка программирования, поскольку если бы они были, трейнер был бы сделан не в СЕ.

    Я уже не первый раз встречаю такие сообщения как на нашем форуме, так и на других. Как я понимаю, в них что-то связано с AA (иначе , повторюсь, тренер был бы на языке программирования, т.к. писать в статичную память.... : ), а именно я думаю динамические адреса, проблема которых решается поиском указателей ну и выделение памяти, если после изменённой инструкции нада ещё чегонить замутить :ninja:

    Может мне кто-нибудь показать скрин этого тренера, пожалуйста :rolleyes:

  16. Мм, продолжу тему. В конце статьи пишется про возможность хука ендсцены, etc. Имеем адрес устройсва, найденного заранее для игры на dx9. Пробую сделать хук:

    LPDIRECT3DDEVICE9	myGame;
    while(!myGame)
    myGame = (LPDIRECT3DDEVICE9)0x059457F8;// наш адрес д3д устройства

    //насколько я знаю EndScene находится под индексом 42 в виртуальной таблице
    //тогда можно использовать кодкейв, ничего лучше ms detours для этого нету ; )

    oEndScene=(tEndScene)DetourFunction((PBYTE)GameDevice[42],(PBYTE)&EndScene);

    ...

    но нифига не работает :grin:

    есть у кого более глубокие знания?

×
×
  • Создать...

Важная информация

Находясь на нашем сайте, Вы автоматически соглашаетесь соблюдать наши Условия использования.