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

barsuuk

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

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

  • Посещение

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

  1. Всем привет) Не могу понять в чем подвох:D через иду вроде как нашел сигнатуру, вроде как оффсет cheat engine тоже полчился, но спамилка не работает(( после выполнения кс зависает и вылетает. Скорее всего ошибка в том что я не туда лезу)) так вот, вопрос как найти этот чертов оффсет в иде или чит энджене или еще где. 

    вот то что в иде

    push    ebp
    mov     ebp, esp
    sub     esp, 60Ch
    lea     eax, [ebp+var_100]
    push    [ebp+arg_0]     ; int
    push    offset aCmdS    ; "cmd %s"
    push    0FFh            ; int
    push    eax             ; int
    call    sub_102DAE60
    add     esp, 10h
    lea     ecx, [ebp+var_60C]
    call    sub_102DC750
    push    0               ; int
    push    0               ; int
    lea     eax, [ebp+var_100]
    push    eax             ; void *
    lea     ecx, [ebp+var_60C]
    call    sub_102DC8F0
    lea     ecx, [ebp+var_60C]
    call    sub_101C6390
    mov     esp, ebp
    pop     ebp
    retn    8
    
    

    вот сигнатура на выходе :

    FF 75 08 68 ? ? ? ? 68 ? ? ? ? 50 E8 ? ? ? ? 83

    \xFF\x75\x08\x68\x00\x00\x00\x00\x68\x00\x00\x00\x00\x50\xE8\x00\x00\x00\x00\x83 xxxx????x????xx????x

     

    вот код вставки сообщения:

    struct clientcmd_args
    {
    	const char* stri;
    	bool ss;
    		 
    };
    void MemoryManager::ClientCMD(const char * cmd)
    {
    	clientcmd_args args;
    	args.stri = cmd;
    	args.ss = false;
    
    	DWORD addr = EngineAddr + 0xACD2F;
    	//DWORD asd = 0;
    	//ReadProcessMemory(_proc, (LPCVOID)addr, &asd, sizeof(addr), NULL);
    	LPVOID vCom = VirtualAllocEx(_proc, NULL, sizeof(args), MEM_RESERVE | MEM_COMMIT, PAGE_READWRITE);
    	WriteProcessMemory(_proc, vCom,(LPCVOID&)args, sizeof(args)+strlen(cmd), NULL);
    	HANDLE Hthr = CreateRemoteThread(_proc, NULL, NULL, (LPTHREAD_START_ROUTINE)addr, vCom, NULL, NULL);
    	WaitForSingleObject(Hthr, INFINITE);
    	VirtualFreeEx(_proc, vCom, strlen(cmd) + 1, MEM_RELEASE);
    }

    и да, чит экстернал)

  2. Всем привет) Не могу получить id оружия в руках, если на нем лежит скин, если взять обычное оружие то все ок)) Например. беру в руки глок получаю число 4, меняю на тот же глок, но скином "гремучая смесь" и уже выдает 262148((( тоже самое абсолютно со всеми скинами и предметами ,вопрос, как быть? как-то конвертировать id скина в id оружия? мб это шифрация(типо умножить первоначальное значения на овер дохрена) или еще что, хелп??? PS чит экстернал, читаю так 

    DWORD plr = _memory->read<DWORD>(_memory->ClientAddr + Offsets::dwLocalPlayer);
    DWORD WI = _memory->read<DWORD>(plr + Offsets::m_hActiveWeapon);
    DWORD WE = _memory->read<DWORD>(_memory->ClientAddr + Offsets::dwEntityList + ((WI&0xFFF) - 1) * 0x10);
    int mwi = _memory->read<int>(WE+Offsets::m_AttributeManager+Offsets::m_Item+Offsets::m_iItemDefinitionIndex);    
    printf("%D",mwi);

     

  3. 20 часов назад, kiwipapayamongoose сказал:

    Чего ты хочешь от созданной тобой темы, если в теме нет никакой информации об ошибке, нет отладочной информации?

    хорошо, допустим попался мусор, но тогда вылетел бы чит, а не игра. Я не понимаю как игра может вылететь, если в нее ничего не пишется. Я пробовал рисовать просто текст в левом верхнем углу, все удачно, как только поставив координаты игрока- краш, через некоторое время. Предоставлю любую инфу какую скажешь, только скажи

  4. Всем привет! уже неделю бьюсь над загадкой, у меня есть старый код, но рабочий на всех играх с которыми я работал)) код рисует боксы, линии и  тд на оверлее, рисую с помощью SharpDx на C#. Проблема заключается в том, что когда в поле зрения попадает враг, то игра вылетает, если провернуть тоже самое, но с ботами, то вылет произойдет через некоторое время, не пойму почему вылетает игра, а не чит, ведь я не пишу ничего в игру, а только читаю координаты, номер команды и матрицу.

     

    функция W2S

    Скрытый текст
    
    private ScreenVector WorldToScreen(float x, float y, float z)
            {
                float w;
                float sx;
                float sy;
    
                sx = VMatrix.M11 * x +
                    VMatrix.M12 * y +
                    VMatrix.M13 * z +
                    VMatrix.M14;
    
                sy = VMatrix.M21 * x +
                    VMatrix.M22 * y +
                    VMatrix.M23 * z +
                    VMatrix.M24;
    
    
                w = VMatrix.M41 * x +
                    VMatrix.M42 * y +
                    VMatrix.M43 * z +
                    VMatrix.M44;
    
                if (w < 0.01f)
                    return new ScreenVector()
                    {
                        Result = false,
                        X = 0,
                        Y = 0
                    };
    
                float invw = 1f / w;
                sx *= invw;
                sy *= invw;
    
                int width = WHwindow.Width;
                int height = WHwindow.Height;
    
                float xt = width / 2;
                float yt = height / 2;
    
                xt += 0.5f * sx * width + 0.5f;
                yt -= 0.5f * sy * height + 0.5f;
    
                sx = xt;
                sy = yt;
    
    
                return new ScreenVector()
                {
                    Result = true,
                    X = sx,
                    Y = sy
                };
            }

     

    функция выполняющееся в таймере

    Скрытый текст
    
     private void Loop()
            {
                while (true)
                {
                   // GC.Collect();
                    gfx.BeginScene();
                    gfx.ClearScene();
    
    
                    for (int i = 0; i < 100; i++)
                    {
                        MyBaseAdr = mem.Read<int>(CheatData.bClient + Offsets.dwLocalPlayer);
                        mteam = mem.Read<int>(MyBaseAdr + Offsets.m_iTeamNum);
                        mycoords = mem.Read<Vector3>(MyBaseAdr + Offsets.m_vecOrigin);
                        eBaseAdr = mem.Read<int>(CheatData.bClient + Offsets.dwEntityList + (i * Offsets.Loop_offset));
                        eteam = mem.Read<int>(eBaseAdr + Offsets.m_iTeamNum);
                        dormant = mem.Read<bool>(eBaseAdr + Offsets.m_bDormant);
                        // glowind = mem.Read<int>(eBaseAdr + Offsets.m_iGlowIndex);
                        hp = mem.Read<int>(eBaseAdr + Offsets.m_iHealth);
                        coords = mem.Read<Vector3>(eBaseAdr + Offsets.m_vecOrigin);
                        head = CalcEnemyHead(eBaseAdr, 8);
                        Gres = mem.Read<int>(CheatData.bClient + Offsets.dwPlayerResource);
                        rank = mem.Read<int>(Gres + Offsets.m_iCompetitiveRanking + i * 4);
                        //
                        //    angles = mem.Read<Vector2>(eBaseAdr + Offsets.m_angEyeAngles);
    
                        mt = mteam;
                        et = eteam;
    
                        if (MyBaseAdr == 0x0) { continue; }
    
    
                        VMatrix = mem.Read<Matrix4x4>(CheatData.bClient + Offsets.dwViewMatrix);
                        ScreenVector sv = WorldToScreen(coords.X, coords.Y, coords.Z);
                        ScreenVector svh = WorldToScreen(head.X, head.Y, head.Z);
                        if (dormant) { continue; }
                        if (hp == 0) { continue; }
    
                        if (!sv.Result)
                        {
                            continue;
                        }
                        int ex = (int)sv.X;
                        int ey = (int)sv.Y;
                        int sx = WHwindow.Width / 2;
                        int sy = WHwindow.Height;
    
                        float h = (svh.Y - sv.Y);
                        float w =  18500/(float)Vector3.Distance(mycoords, coords);
                        float x = (int)(sv.X - w / 2);
                        float y = (sv.Y);
    
                        if ((eteam != mteam) &&mteam!=1)
                       
                        {
                            if (CheatData.lines_wh)
                                gfx.DrawLine(sx, sy, ex, ey, 2,new Direct2DColor(pen[0],pen[1],pen[2]));
                            if (CheatData.hp_wh)
    
                            gfx.DrawHorizontalBar(hp, x, y, 2, h, 1, new Direct2DColor(255,0 ,0 ), new Direct2DColor(0, 0, 0));
    
                            if (CheatData.box)
                            {
                                double d = Vector3.Distance(mycoords, coords);
                                if (d == 0) continue;
                                  Drawbox(sv.X, sv.Y, (int)d);
                            }
                            if (CheatData.ranks)
                            {
                                gfx.DrawText(Ranks[rank], ex, ey, new Direct2DFont(new SharpDX.DirectWrite.Factory(), "Arial", 12), new Direct2DColor(255, 0, 0));
                            }
    
                        }
    
                    }
    
    
                    gfx.EndScene();
                    
                    Thread.Sleep(5);
                }
                
            }

     

     

  5. зравствуйте форумчане, у меня к вам два вопроса) 1. нужно ли создавать directx device для экстернал чита? 2. через какую из функций лучше всего рисовать свое вх (begin,end или present), точнее не рисовать, а хукать? 

    пс: просмотрел туториал от кенга и в принципе понял как это устроено, но не понял как это сделать не на длл

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

    В чем ошибка то была?

    оффсеты я нашел верные, но я их не правильно прочитал

    я читал так dll+radar+50+i*4+204

    а надо так radarbase= dll+radar, потом это читаем, затем к прочитанному +50, опять читаем с +4, прибавляем 204 и выходим на юникод стринг 

  7. хех, искал одно получил другое)) теперь у меня вторая проблема,имена я так и не нашел, но зато нашел ранги. Но я где то ошибся(( выводится ток сильвер1

    Скрытый текст
    
    //
    rank = mem.Read<int>(CheatData.bClient + Offsets.dwPlayerResource + Offsets.m_iCompetitiveRanking + i * 0x4);
    // 
         public string[] Ranks = new string[] {
    		"Silver 1",
    		"Silver 2",
    		"Silver 3",
    		"Silver 4",
    		"Silver 5",
    		"Silver 6",
    		"Gold Nova",
    		"Gold Nova 2",
    		"Gold Nova 3",
    		"Gold Nova 4",
    		"Gold Nova 3",
    		"Master Guardian 1",
    		"Master Guardian 2",
    		"Master Guardian 3",
    		"DMG",
    		"Legendary Eagle",
    		"LEM",
    		"Supreme",
    		"
         }
    // и вывод
    bufferedGraphics.Graphics.DrawString(Ranks[rank], new Font("arial", 12), Brushes.Red, ex, ey);

     

  8. как получить ники игроков в ксго, в струтуре игроков их нет. На других форумах пишут что через радар

    https://www.unknowncheats.me/forum/counterstrike-global-offensive/150234-getting-players-name.html

    попробовал как тут описано, но даже в СЕ не выводятся ники. потом доперло что изменились оффсеты, нашел radarbase а как найти другие?? или как можно выйти на ники другим способом??

     

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

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

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