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

Partizan

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

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

  • Посещение

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

    17

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

  1. Ищется время миссий значит так.

    Если на выполнение миссии даётся 48 часов то искать нужно 48*3600=172800

    Искать нужно диапазон 172800+-3600 то есть от 169200 до 176400. А дальше просто отсеиваешь как уменьшилось и сразу будет виден адрес. Почему 3600 не спрашивай.

    Если не получится потом скрипт могу дать.

    • Плюс 1
  2. Сам запутался но всё же выложу.

     

    Спойлер
    [ENABLE]
    aobscanmodule(MovementSpeed,thegame.exe,0F ? ? ? ? 0F ? ? ? ? F3 ? ? ? ? ? F3 ? ? ? 8B ? ? ? ? ? 0F)
    alloc(newmem,$1000)
    label(code)
    label(return)
    registersymbol(code)
    registersymbol(MovementSpeed)
    
    newmem:
      movaps xmm1,[esp+60]//оригинальная инструкция с N числами что прибавляются к координатам xmm2=0
      cmp [ebx+5B4],01//свой/чужой где 1=чужой
      je short @F//если 1 то прыжок
      movups xmm2,[code]//множители
      mulps xmm1,xmm2//xmm1=N числа/xmm2=множители
      xorps xmm2,xmm2//обнуляю xmm2 в исходное состояние
    @@:
      jmp return
    
    code:
    dd (float)4//множитель координаты Y
    dd (float)1//множитель координаты Z не нужно умножать поэтому множитель =1
    dd (float)4//множитель координаты X
    dd (float)1//какое-то левое число которое не нужно умножать
    
    MovementSpeed:
      jmp newmem
    return:
    
    [DISABLE]
    MovementSpeed:
    db 0F 28 4C 24 60
    unregistersymbol(*)
    dealloc(newmem)
    {
    // ORIGINAL CODE - INJECTION POINT: thegame.exe+4C06D
    thegame.exe+4C036: B8 01 00 00 00           - mov eax,00000001
    thegame.exe+4C03B: 88 83 01 13 00 00        - mov [ebx+00001301],al
    thegame.exe+4C041: EB 07                    - jmp thegame.exe+4C04A
    thegame.exe+4C043: C6 83 01 13 00 00 00     - mov byte ptr [ebx+00001301],00
    thegame.exe+4C04A: A1 A0 24 09 01           - mov eax,[thegame.exe+C924A0]
    thegame.exe+4C04F: 8B 90 A0 00 00 00        - mov edx,[eax+000000A0]
    thegame.exe+4C055: 0F AF 90 94 00 00 00     - imul edx,[eax+00000094]
    thegame.exe+4C05C: F3 0F 2A C2              - cvtsi2ss xmm0,edx
    thegame.exe+4C060: 8B 90 A4 00 00 00        - mov edx,[eax+000000A4]
    thegame.exe+4C066: 0F AF 90 98 00 00 00     - imul edx,[eax+00000098]
    // ---------- INJECTING HERE ----------
    thegame.exe+4C06D: 0F 28 4C 24 60           - movaps xmm1,[esp+60]
    // ---------- DONE INJECTING  ----------
    thegame.exe+4C072: 0F 58 4C 24 50           - addps xmm1,[esp+50]
    thegame.exe+4C077: F3 0F 11 44 24 20        - movss [esp+20],xmm0
    thegame.exe+4C07D: F3 0F 2A C2              - cvtsi2ss xmm0,edx
    thegame.exe+4C081: 8B 90 A8 00 00 00        - mov edx,[eax+000000A8]
    thegame.exe+4C087: 0F AF 90 9C 00 00 00     - imul edx,[eax+0000009C]
    thegame.exe+4C08E: 8B 45 0C                 - mov eax,[ebp+0C]
    thegame.exe+4C091: F3 0F 11 44 24 24        - movss [esp+24],xmm0
    thegame.exe+4C097: F3 0F 2A C2              - cvtsi2ss xmm0,edx
    thegame.exe+4C09B: F3 0F 11 44 24 28        - movss [esp+28],xmm0
    thegame.exe+4C0A1: F3 0F 10 05 D8 C1 9A 00  - movss xmm0,[thegame.exe+5AC1D8]
    }

     

     

  3. Спасибо! Статья помогла при взломе скорости перемещения игрока в игре Not The Time For Dragons.

    Дело в том что при перемещение ГГ к координатам прибавляется N-ое число. Все три координаты записаны в одном регистре и число что к ним прибавляется тоже в одном.

    Получился такой скрипт. Всё работает.

    Спойлер
    [ENABLE]
    aobscanmodule(MovementSpeed,thegame.exe,0F ? ? ? ? 0F ? ? ? ? F3 ? ? ? ? ? F3 ? ? ? 8B ? ? ? ? ? 0F)
    alloc(newmem,$1000)
    label(code)
    label(return)
    registersymbol(code)
    registersymbol(MovementSpeed)
    
    newmem:
      movaps xmm1,[esp+60] // original xmm2 пуст =0
      movups xmm2,[code]  
      mulps xmm1,xmm2
      xorps xmm2,xmm2
      jmp return
    
    code:
    dd (float)4  //множитель координаты Y
    dd (float)1  //множитель координаты Z мне её не нужно умножать
    dd (float)4  //множитель координаты X
    dd (float)1  //какоето левое число =1
    
    MovementSpeed:
      jmp newmem
    return:
    
    [DISABLE]
    MovementSpeed:
    db 0F 28 4C 24 60
    unregistersymbol(*)
    dealloc(newmem)
    {
    // ORIGINAL CODE - INJECTION POINT: thegame.exe+4C06D
    thegame.exe+4C036: B8 01 00 00 00           - mov eax,00000001
    thegame.exe+4C03B: 88 83 01 13 00 00        - mov [ebx+00001301],al
    thegame.exe+4C041: EB 07                    - jmp thegame.exe+4C04A
    thegame.exe+4C043: C6 83 01 13 00 00 00     - mov byte ptr [ebx+00001301],00
    thegame.exe+4C04A: A1 A0 24 09 01           - mov eax,[thegame.exe+C924A0]
    thegame.exe+4C04F: 8B 90 A0 00 00 00        - mov edx,[eax+000000A0]
    thegame.exe+4C055: 0F AF 90 94 00 00 00     - imul edx,[eax+00000094]
    thegame.exe+4C05C: F3 0F 2A C2              - cvtsi2ss xmm0,edx
    thegame.exe+4C060: 8B 90 A4 00 00 00        - mov edx,[eax+000000A4]
    thegame.exe+4C066: 0F AF 90 98 00 00 00     - imul edx,[eax+00000098]
    // ---------- INJECTING HERE ----------
    thegame.exe+4C06D: 0F 28 4C 24 60           - movaps xmm1,[esp+60]
    // ---------- DONE INJECTING  ----------
    thegame.exe+4C072: 0F 58 4C 24 50           - addps xmm1,[esp+50]
    thegame.exe+4C077: F3 0F 11 44 24 20        - movss [esp+20],xmm0
    thegame.exe+4C07D: F3 0F 2A C2              - cvtsi2ss xmm0,edx
    thegame.exe+4C081: 8B 90 A8 00 00 00        - mov edx,[eax+000000A8]
    thegame.exe+4C087: 0F AF 90 9C 00 00 00     - imul edx,[eax+0000009C]
    thegame.exe+4C08E: 8B 45 0C                 - mov eax,[ebp+0C]
    thegame.exe+4C091: F3 0F 11 44 24 24        - movss [esp+24],xmm0
    thegame.exe+4C097: F3 0F 2A C2              - cvtsi2ss xmm0,edx
    thegame.exe+4C09B: F3 0F 11 44 24 28        - movss [esp+28],xmm0
    thegame.exe+4C0A1: F3 0F 10 05 D8 C1 9A 00  - movss xmm0,[thegame.exe+5AC1D8]
    }

     

     

    • Плюс 1
  4. Не знаю как правильно сформулировать. Но есть ли возможность записать допустим в xmm0 (не знаю как сказать) в вторичный блок/сегмент регистра? 

    Картинка

    Как это делается?

    Попалась игрушка в который все три координаты так записаны. В одном регистре.

     

  5. Спойлер
    --------
    -------- Auto Attach to Process
    --------
    PROCESS_NAME = 'Game.exe'
    local autoAttachTimer = nil
    local autoAttachTimerInterval = 100
    local autoAttachTimerTicks = 0
    local autoAttachTimerTickMax = 5000
    
    local function autoAttachTimer_tick(timer)
        if getProcessIDFromProcessName(PROCESS_NAME) ~= nil then
            timer.destroy()
            openProcess(PROCESS_NAME)
        elseif autoAttachTimerTickMax > 0 and autoAttachTimerTicks >= autoAttachTimerTickMax then
            timer.destroy()
        end
        autoAttachTimerTicks = autoAttachTimerTicks + 1
    end
    
    autoAttachTimer = createTimer(MainForm)
    autoAttachTimer.Interval = autoAttachTimerInterval
    autoAttachTimer.OnTimer = autoAttachTimer_tick

     

     

    #2

    Спойлер
    function myattach(timer)
      if getProcessIDFromProcessName("xxx.exe") ~= nil then
        object_destroy(timer)
        openProcess("xxx.exe") 
      end
    end
    
    t=createTimer(nil);
    timer_setInterval(t,10)
    timer_onTimer(t,myattach)

     

    #3

    Спойлер
    attachlist=getAutoAttachList()
    stringlist_add(attachlist,"XXX.exe");

     

     

  6. Я пользую скрипт со всем известного форума.

    Спойлер
    controlMainForm = getMainForm()
    AddressList = getAddressList()
    
    if getCEVersion == nil or getCEVersion() < 6.4 then
      messageDialog('It is recommended to use at least Cheat Engine 6.7! (Your Version: '..getCEVersion()..')', mtError, mbOK)
    end
    
    
    function cycleFullCompact(sender,force)
      local state = not(compactmenuitem.Caption == 'Compact View Mode')
      if force~=nil then state = not force end
      compactmenuitem.Caption = state and 'Compact View Mode' or 'Full View Mode'
      getMainForm().Splitter1.Visible = state
      getMainForm().Panel4.Visible    = state
      getMainForm().Panel5.Visible    = state
    end
    
    
    
    function addCompactMenu()
      if compactmenualreadyexists then return end
      local parent = getMainForm().Menu.Items
      compactmenuitem = createMenuItem(parent); parent.add(compactmenuitem)
      compactmenuitem.Caption = 'Compact View Mode'
      compactmenuitem.OnClick = cycleFullCompact
      compactmenualreadyexists = 'yes'
    end
    addCompactMenu()
    cycleFullCompact(nil, true)
    controlMainForm = getMainForm()

     

     

  7. Моя табличка.(строго не судить)


    Стамина

    Усталость

    Max Усталости

    Холод (100 замёрз)

    Калории

    Max Калорий

    Жажда (100=Обезвоживание)

    Ожоги

    Гипотермия

    Электроожёг

    Неуязвимость

    Риск заражения

    Вес инвентаря=1 кг

    Крафт без материалов

    Опции перемещения

    Вес у вещей=0

    Воздух

    По 25 вещей(спички и пр.)

    Факел не кончается

    Факел не тухнет от ветра

    Керасиновая лампа(топливо)

    Легко открыть сейф

    Антисептик (много)

    Калории еды х100

    Ветер не дует

    Починить вещи

    Воды в канистре =5л

    Одежда не промораживается

    Одежда не намакает

    Время поиска (в ящиках)

    Время открытия (ящиков)

    speedhack x0.5 (удобно волков мочить)

    Урон от оружия х20(огнестрел)

    Без заклинивания оружия

     

    Скачать таблицу

  8. У меня получилось только с 2 ударов. В макс. ХП прописал единичку.

    Спойлер
    [ENABLE]
    aobscanmodule(THK,TBB.dll,8B ? ? ? ? ? 85 ? 0F ? ? 8D ? ? 52 E8 ? ? ? ? 85)
    alloc(newmem,$1000)
    label(return)
    registersymbol(THK)
    
    newmem:
      mov eax,[esi+000000D4]  //Указатель на структуру
      cmp [esi+000000F4],00   //Свой чужой 00=чужой
      jne short @F            //Если не 0 то прыжок
      mov [eax+18],#1         //Запись Макс ХП=1 
    @@:
      jmp return
    
    THK:
      jmp newmem
      nop
    return:
    
    [DISABLE]
    THK:
    db 8B 86 D4 00 00 00
    unregistersymbol(THK)
    dealloc(newmem)
    {
    // ORIGINAL CODE - INJECTION POINT: TBB.dll+205EC2
    TBB.dll+205E9C: EB 04              - jmp TBB.dll+205EA2
    TBB.dll+205E9E: 8B 6C 87 7C        - mov ebp,[edi+eax*4+7C]
    TBB.dll+205EA2: 8B 86 F8 00 00 00  - mov eax,[esi+000000F8]
    TBB.dll+205EA8: 85 C0              - test eax,eax
    TBB.dll+205EAA: 0F 84 B1 00 00 00  - je TBB.dll+205F61
    TBB.dll+205EB0: 84 9F FC 02 00 00  - test [edi+000002FC],bl
    TBB.dll+205EB6: 74 04              - je TBB.dll+205EBC
    TBB.dll+205EB8: 33 C9              - xor ecx,ecx
    TBB.dll+205EBA: EB 06              - jmp TBB.dll+205EC2
    TBB.dll+205EBC: 8B 8F BC 00 00 00  - mov ecx,[edi+000000BC]
    // ---------- INJECTING HERE ----------
    TBB.dll+205EC2: 8B 86 D4 00 00 00  - mov eax,[esi+000000D4]
    // ---------- DONE INJECTING  ----------
    TBB.dll+205EC8: 85 C9              - test ecx,ecx
    TBB.dll+205ECA: 0F 95 C2           - setne dl
    TBB.dll+205ECD: 8D 48 38           - lea ecx,[eax+38]
    TBB.dll+205ED0: 52                 - push edx
    TBB.dll+205ED1: E8 CA A9 F8 FF     - call TBB.dll+1908A0
    TBB.dll+205ED6: 85 C0              - test eax,eax
    TBB.dll+205ED8: 0F 8E 83 00 00 00  - jng TBB.dll+205F61
    TBB.dll+205EDE: 85 ED              - test ebp,ebp
    TBB.dll+205EE0: 74 74              - je TBB.dll+205F56
    TBB.dll+205EE2: 8A 86 C3 00 00 00  - mov al,[esi+000000C3]
    }

     

     

  9. Сначала нужно активировать (поставить крестик) на "Указатель на игрока"

     

    1. Указатель на игрока

    2. Жизни

    3. Броня

    4. Боезапас

    5. Скорострельность (Rapid fire)

    6. Открывать двери без ключей

    7. Скорость бега

    8. Высота прыжка

     

    Скачать таблицу

     

  10. 1. Система жизнеобеспечения (Энергия)

    2. Защита от вред. факторов (Энергия)

    3. Щит и Здоровье (Челика)

    4. Без перезарядки сканера

    5. Беск Джетпак

    6. Выносливость

    7. Юниты Наниты Ртуть

    8. Дюп предметов+(При крафте не тратится)

    9. Радиация=0

    10. Температура=25

    11. Токсичность=0

    12. Щит корабля не разрушается

    13. Без перегрева пушки (корабль)

    14. Скорость бега

    15. Плазмомёт без перезарядки (челик)

    16. Расщепитель и ландш.манипул. Без перезарядки

    17. Крафт без ингредиентов

    18. Спидхак x5

     

    Скачать таблицу

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

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

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