-
Постов
218 -
Зарегистрирован
-
Посещение
-
Победитель дней
17
Тип контента
Профили
Форумы
Загрузки
Блоги
Сообщения, опубликованные Partizan
-
-
У тебя у самого на скрине видно что игра 32 бита. А ты её открываешь в x64dbg Подключай к игре x32dbg.
- 1
-
Если не видит игру. Значит не та разрядность dbg запущена.
- 1
-
Я думал Olly 1.0 уже не актуальна. Пользуй x64dbg. Я так понял что плагин к олли StrongOD это анти анти-отладка? Если так то x64Dbg и плагин ScyllaHide.
-
Может не в тему. Но как сделать средствами СЕ вменяемый тренер. Допустим на эту таблицу?
-
Ну раз так тогда тебе сюда
-
Ищется время миссий значит так.
Если на выполнение миссии даётся 48 часов то искать нужно 48*3600=172800
Искать нужно диапазон 172800+-3600 то есть от 169200 до 176400. А дальше просто отсеиваешь как уменьшилось и сразу будет виден адрес. Почему 3600 не спрашивай.
Если не получится потом скрипт могу дать.
- 1
-
Скинь сейвы где этот таймер включён.
локальный диск С - имя пользователя - Documents - Warm Lamp
-
12 минут назад, Mon сказал:
Она, по-моему, на Unreal Engine? Ты с дампером работал или без него?
Это не UE а in-house
-
Забыл показать результат работы скрипта.
-
Сам запутался но всё же выложу.
Спойлер[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] }
-
Спасибо! Статья помогла при взломе скорости перемещения игрока в игре 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
-
Извиняюсь. Уже увидел эту тему.
-
Не знаю как правильно сформулировать. Но есть ли возможность записать допустим в xmm0 (не знаю как сказать) в вторичный блок/сегмент регистра?
Как это делается?
Попалась игрушка в который все три координаты так записаны. В одном регистре.
-
Игра то какая?
mov [edi],(double) #50000 дабл так не записывается. Пользуйся xmm регистрами или FPU
-
49 минут назад, DieVis сказал:
значение прописалось, но не замораживалось
Воспользуйся флагом.
cmp [flag],01
jne
mov [адрес],#50000
mov [flag],00
Какая игра?
-
Спойлер
-------- -------- 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");
-
-
Я пользую скрипт со всем известного форума.
Спойлер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()
-
Моя табличка.(строго не судить)
СтаминаУсталость
Max Усталости
Холод (100 замёрз)
Калории
Max Калорий
Жажда (100=Обезвоживание)
Ожоги
Гипотермия
Электроожёг
Неуязвимость
Риск заражения
Вес инвентаря=1 кг
Крафт без материалов
Опции перемещения
Вес у вещей=0
Воздух
По 25 вещей(спички и пр.)
Факел не кончается
Факел не тухнет от ветра
Керасиновая лампа(топливо)
Легко открыть сейф
Антисептик (много)
Калории еды х100
Ветер не дует
Починить вещи
Воды в канистре =5л
Одежда не промораживается
Одежда не намакает
Время поиска (в ящиках)
Время открытия (ящиков)
speedhack x0.5 (удобно волков мочить)
Урон от оружия х20(огнестрел)
Без заклинивания оружия
-
У меня получилось только с 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] }
-
Не стал качать игру. Но посмотрел чужой скрипт. Значения что ты ищешь шифрованные.
-
Нет там шифрования. Просто не тот адрес берёшь.
При поиске убери галку с быстрого поиска. (адреса все статичные)
"Sunshine Acres.exe"+11BC53--Это монеты
Надеюсь принцип поиска нормально объяснил.
- 1
-
Сначала нужно активировать (поставить крестик) на "Указатель на игрока"
1. Указатель на игрока
2. Жизни
3. Броня
4. Боезапас
5. Скорострельность (Rapid fire)
6. Открывать двери без ключей
7. Скорость бега
8. Высота прыжка
-
1. Система жизнеобеспечения (Энергия)
2. Защита от вред. факторов (Энергия)
3. Щит и Здоровье (Челика)
4. Без перезарядки сканера
5. Беск Джетпак
6. Выносливость
7. Юниты Наниты Ртуть
8. Дюп предметов+(При крафте не тратится)
9. Радиация=0
10. Температура=25
11. Токсичность=0
12. Щит корабля не разрушается
13. Без перегрева пушки (корабль)
14. Скорость бега
15. Плазмомёт без перезарядки (челик)
16. Расщепитель и ландш.манипул. Без перезарядки
17. Крафт без ингредиентов
18. Спидхак x5
Just Cause 2
in Вопросы по созданию читов в одиночных играх
Опубликовано
ССыль на плагин XfindOut