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

partoftheworlD

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

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

  • Посещение

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

    172

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

  1. 18 час назад, uppercase сказал:

    как правильно работать с sdk (игра не важно),

    Подключаешь СДК в проект и работаешь.

     

    18 час назад, uppercase сказал:

    как правильно находить указатель на класс (через иду)

    на примере структуры игрока, находишь жизни, подгружаешь иду(лучше всего к дампу), переходишь по адресу найденной инструкции и смотришь выше по коду откуда она возникает..

     

    18 час назад, uppercase сказал:

    каким методом его добывать

    Методом изучения инструкций и понимания что каждая из них делает.

    • Плюс 1
  2. (7E 1A 8B 55 7F) если занопить инструкцию оружие будет выкидываться и оставаться в руках, что-то типа копирования получится.
    (48 8B 78 60 48 8B D9), по этой сигнатуре в rax были ID оружия.

    Как вариант еще можно эту проверить, тут вроде бы тоже, ID оружия или таблица всех ID только в rdx (8B C8 48 8B 42 E8 4C 8B 04 C8) 

  3. Там не большие значение типа 100-5000(оружие, оружие из длс без установленного длс), я искал текущее оружие которое в руках находилось изменилось/не изменилось и писал прогу когда делал таблицу, для дампа всех предметов в игре, если найду кину список предметов или программу. 

  4. Попробуй сначала получить базовый адрес, а потом работать от него с указателями. Т.е 

    
    pm.ReadMemory(0x40000000, &baseaddress, 4); //получил базовый адрес
    pm.ReadMemory(baseaddress + 0x10, &outta, 4); //получил значение которое хранится в baseaddress->0x10
    wsprintf(text, L"0x%X", outta);

    получится что ты прочитаешь значение из baseaddress->0x10 и выводишь его.

     

    Вот пример из исходников старого чита

    Packetbase = memory->ReadMem<DWORD>(Engine + 0x4416B8); //получаем базовый адрес
    Packetbase = memory->ReadMem<DWORD>(Packetbase + 0x634); //baseaddress->0x634
    Packetbase = memory->ReadMem<DWORD>(Packetbase + 0x110); //baseaddress->0x634->0x110
    memory->WriteMem(Packetbase + 0x6a8, &value); //тут записываем в конечное значение baseaddress->0x634->0x110->0x6A8 наш value

     

    Скрытый текст
    
    void Functions::RadarHack()
    {
        bool value = false;
    	bool value2 = true;
    	auto Packetbase = 0;
    	auto old = 0;
    	for (auto index_player = 1; index_player < MAX_PLAYERS; ++index_player)
    	{
    		entity->getPlayer(index_player);
    		switch (local_player->getTeam())
    		{
    		case Side::T:
    			entity->getHealth() >= 1 ? Draw(index_player, true, false) : Draw(index_player, false, false);
    			break;
    		case Side::CT:
    			entity->getHealth() >= 1 ? Draw(index_player, true, true) : Draw(index_player, false, true);
    			break;
    		}
    	}
    	if(old + 0x32 == GetTickCount())
    	{
    		Packetbase = memory->ReadMem<DWORD>(Engine + 0x4416B8);
    		Packetbase = memory->ReadMem<DWORD>(Packetbase + 0x634);
    		Packetbase = memory->ReadMem<DWORD>(Packetbase + 0x110);
    		memory->WriteMem(Packetbase + 0x6a8, &value);
    		printf("%u\n", memory->ReadMem<int>(Packetbase + 0x6a8));
    	}
    	else memory->WriteMem(Packetbase + 0x6a8, &value2);
    	old = GetTickCount();
    	Sleep(1);
    }

     

  5. Для:

    1. SpeeHack

    2. Teleport

     

    Нужно будет отыскать функцию которая создает движение(CreateMove) и функцию которая подтверждает значения и "говорит" серверу, что все значения в том числе измененные тобой нормальные, подтверждение данных прошло успешно и сервер будет думать что все хорошо, даже если будешь бегать со скоростью света. В функции создающей движение обычно указывается время выборки кадров, его и надо изменять

     

    На счет 3. Invisible mode (без лимита по времени), не играл в wow, так что тут догадка, ищешь таймер, выходишь на главную функцию,дальше либо хукаешь функцию, либо изменяешь значения и так же подтверждаешь изменение той функцией которая "говорит" серверу, что все хорошо. 

     

    Без функции подтверждения, тебя будет откидывать назад когда изменяешь значения координат к примеру. на питоне делать хук функции это извращение как по мне, на C++ есть уже готовые библиотеки для этого.

  6. 1 час назад, LIRW сказал:

    Вот Скрипт и игра не вылетает в обще то :mellow:

    Где ты игру брал? Стим версия и Skidrow вылетают при установке бряка. Игра вроде не сложно взламываемая, но постоянные вылеты напрягают.

  7. 2 минуты назад, A1t0r сказал:

    Вот я тоже думаю взять попроще или 6700K или 5960X

    Дешевле выйдет взять амд 8 ядер и водянку, чтобы не было адской температуры из системника. Интеловские процы в 2.5 раза подорожали у нас в городе. 6700K стоит около 33 тысяч, амд с водянкой около 22-25

     

    .

  8. Сейчас:

    Собирал в 2013-2014

    CPU AMD Phenom II X4 955 3.2Ghz

    RAM 12 Гб

    VRAM MSI Radeon R9 290 2GB

    HDD 1TB + 250GB старый

     

    Обновил бы до:

     

    CPU: i7-6700K, чтобы не обновлять ближайшие 5 лет. 

    RAM: DDR3L/4 - 12-16Gb\1600\2133Mhz

    VRAM: MSI GTX 970 4GD5T или вторую R9

    HDD:1TB

    SSD: под систему на 250гб будет достаточно.

    • Плюс 1
  9. Скрытый текст
    
    #include <iostream>
    #include <vector>
     
    int main ( ) {
        // Создание вектора, содержащего целые числа
        std::vector<int> v = {7, 5, 16, 8};
     
        // Добавление ещё двух целых чисел в вектор
        v.push_back(25);
        v.push_back(13);
     
        // Проход по вектору с выводом значений
        for ( int n : v ) {
            std::cout << n << '\n';
        }
    }

     

    Пример создания вектора:

    Скрытый текст
    
        // Вектор из 10 элементов типа int
        std::vector<int> v1(10);
    
        // Вектор из элементов типа float
        // С неопределенным размером
        std::vector<float> v2;
    
        // Вектор, состоящий из 10 элементов типа int
        // По умолчанию все элементы заполняются нулями
        std::vector<int> v3(10, 0);

     

     

    Тут более подробно о векторах.

  10. 1 час назад, 2zolo2 сказал:

    partoftheworlD, поставь старую версию WinDbg или обнови плагин для ида.

     

    Пробовал, ставил старую и новую версию windbg, ida.

     

    Видимо проблема в винде. На 7-ке все прекрасно запустилось.

  11. После последнего обновления WinDbg, ида перестала находить путь к отладчику и пишет типа не найден модуль. Если указывать принудительно путь к отладчику, то возникает ошибка:

    Необработанное исключение по адресу 0x5F8C6BE4 (dbgeng.dll) в idaq.exe: 0xC0000005: нарушение прав доступа при записи по адресу 0xC25F4B42.
    
    Скрытый текст
    
    Debugger::DataModel::Host::DataModelHost::CreateModuleSignature:
    5F8C6BD0  push        4  
    5F8C6BD2  mov         eax,5F9E1526h  
    5F8C6BD7  call        __EH_prolog3 (5F990B74h)  
    5F8C6BDC  mov         edi,dword ptr [ebp+18h]  
    5F8C6BDF  xor         ebx,ebx  
    5F8C6BE1  mov         dword ptr [ebp-10h],ebx  
    5F8C6BE4  mov         dword ptr [edi],ebx  
    5F8C6BE6  mov         dword ptr [ebp-4],ebx  
    5F8C6BE9  lea         eax,[ebp+14h]  
    5F8C6BEC  push        eax  
    5F8C6BED  lea         eax,[ebp-10h]  
    5F8C6BF0  push        eax  
    5F8C6BF1  lea         edx,[ebp+10h]  
    5F8C6BF4  lea         ecx,[ebp+0Ch]  
    5F8C6BF7  call        Microsoft::WRL::Details::MakeAndInitialize<Debugger::DataModel::Host::ModuleSignature,Debugger::DataModel::Host::ModuleSignature,unsigned short const * &,unsigned short const * &,unsigned short const * &> (5F8C5335h)  
    5F8C6BFC  mov         esi,eax  
    5F8C6BFE  test        esi,esi  
    5F8C6C00  js          Debugger::DataModel::Host::DataModelHost::CreateModuleSignature+3Ah (5F8C6C0Ah)  
    5F8C6C02  mov         ecx,dword ptr [ebp-10h]  
    5F8C6C05  mov         dword ptr [ebp-10h],ebx  
    5F8C6C08  mov         dword ptr [edi],ecx  
    5F8C6C0A  or          dword ptr [ebp-4],0FFFFFFFFh  
    5F8C6C0E  lea         ecx,[ebp-10h]  
    5F8C6C11  call        Microsoft::WRL::ComPtr<Debugger::DataModel::Client::Details::PropertyAccessor<Debugger::DataModel::Host::Objects::DebuggerVariablesModel> >::~ComPtr<Debugger::DataModel::Client::Details::PropertyAccessor<Debugger::DataModel::Host::Objects::DebuggerVariablesModel> > (5F7744C5h)  
    5F8C6C16  mov         eax,esi  
    5F8C6C18  call        __EH_epilog3 (5F990B33h)  
    5F8C6C1D  ret         14h  
    5F8C6C20  int         3

     

     

    Вдруг кто-нибудь знает как решить эту проблему.

  12. 2 часа назад, Dmitryhip сказал:

    Не во всех играх все так просто, например в css уже так на анти отдачу не выйдешь.

    В css, csgo, insurgensy есть значение отвечающее за отдачу называется vecPunch

    cl_pdump 1 и будет вся отладочная информация или искать расширение прицела которое хранится в 4 байтах.

  13. 1 0 ищешь в байтах, ставишь на доступ бряк, в игре какой-то была инструкция типа mov [esi+edi*4],al т.е где edi был id игрока и в цикле прогоняешь всех игроков и устанавливаешь всем 1 и все подсвечивались. Думаю с предметами примерно так же будет.

     

    Все зависит от того как предмет подсвечивается. Если по контуру предмета, то будет проще взломать. + для каждого предмета можно будет настроить цвет и степень подсветки.

     

    Например как в играх на движке соурс или frostbyte.

     

    telXIcC.jpg

     

    9.png

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

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

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