Infectonator Survivors [Steam]
-
Привет и с новым годом всех!
Кто может подсказать, не могу понять в чём проблема...
Скрипт не срабатывает.
Это когда назначаешь персонажу работу, допустим выращивать овощи на грядках.
Там есть определённый таймер со значением от 100(начало цикла) до 0(окончание цикла).
{ Game : Survivors.exe Version: v1.1.2 Date : 2025-01-01 Author : DieVis } [ENABLE] aobscan(FastWork,F3 0F 7E 47 28 F3 0F 7E 4D) alloc(newmem,$1000) label(code) label(return) registersymbol(FastWork) newmem: mov [edi+28],(double)0.1 //mov [edi+48],(double)0.1 code: movq xmm0,[edi+28] jmp return FastWork: jmp newmem return: [DISABLE] FastWork: db F3 0F 7E 47 28 unregistersymbol(*) dealloc(*) { // ORIGINAL CODE - INJECTION POINT: 1BA29A78 1BA29A52: F2 0F 5E C1 - divsd xmm0,xmm1 1BA29A56: 66 0F D6 45 D0 - movq [ebp-30],xmm0 1BA29A5B: E9 25 01 00 00 - jmp 1BA29B85 1BA29A60: 8B 1D 4C A0 29 06 - mov ebx,[0629A04C] 1BA29A66: 85 DB - test ebx,ebx 1BA29A68: 74 0B - je 1BA29A75 1BA29A6A: 83 EC 0C - sub esp,0C 1BA29A6D: E8 B2 02 00 00 - call 1BA29D24 1BA29A72: 83 C4 10 - add esp,10 1BA29A75: 8B 7D D8 - mov edi,[ebp-28] // ---------- INJECTING HERE ---------- 1BA29A78: F3 0F 7E 47 28 - movq xmm0,[edi+28] // ---------- DONE INJECTING ---------- 1BA29A7D: F3 0F 7E 4D D0 - movq xmm1,[ebp-30] 1BA29A82: F2 0F 5C C1 - subsd xmm0,xmm1 1BA29A86: 66 0F D6 47 28 - movq [edi+28],xmm0 1BA29A8B: F3 0F 7E 47 28 - movq xmm0,[edi+28] 1BA29A90: F2 0F 10 C8 - movsd xmm1,xmm0 1BA29A94: 66 0F 57 0D 40 52 80 05 - xorpd xmm1,[Adobe AIR.dll.rdata+38F240] 1BA29A9C: 66 0F D6 4D D0 - movq [ebp-30],xmm1 1BA29AA1: 8B 5F 10 - mov ebx,[edi+10] 1BA29AA4: 66 0F 57 C9 - xorpd xmm1,xmm1 1BA29AA8: F2 0F 2A CB - cvtsi2sd xmm1,ebx ... 1BA29A78: 1BA29A72 - 83 C4 10 - add esp,10 1BA29A75 - 8B 7D D8 - mov edi,[ebp-28] 1BA29A78 - F3 0F7E 47 28 - movq xmm0,[edi+28] << 1BA29A7D - F3 0F7E 4D D0 - movq xmm1,[ebp-30] 1BA29A82 - F2 0F5C C1 - subsd xmm0,xmm1 1BA29A86: 1BA29A7D - F3 0F7E 4D D0 - movq xmm1,[ebp-30] 1BA29A82 - F2 0F5C C1 - subsd xmm0,xmm1 1BA29A86 - 66 0FD6 47 28 - movq [edi+28],xmm0 << 1BA29A8B - F3 0F7E 47 28 - movq xmm0,[edi+28] 1BA29A90 - F2 0F10 C8 - movsd xmm1,xmm0 1BA29A8B: 1BA29A82 - F2 0F5C C1 - subsd xmm0,xmm1 1BA29A86 - 66 0FD6 47 28 - movq [edi+28],xmm0 1BA29A8B - F3 0F7E 47 28 - movq xmm0,[edi+28] << 1BA29A90 - F2 0F10 C8 - movsd xmm1,xmm0 1BA29A94 - 66 0F57 0D 40528005 - xorpd xmm1,["Adobe AIR.dll"+1045240] 1BA29B45: 1BA29B40 - FF D0 - call eax 1BA29B42 - 83 C4 10 - add esp,10 1BA29B45 - F3 0F7E 4F 28 - movq xmm1,[edi+28] << 1BA29B4A - 66 0F57 C0 - xorpd xmm0,xmm0 1BA29B4E - 66 0F2E C1 - ucomisd xmm0,xmm1 1BA29B5F: 1BA29B57 - 66 0F57 C0 - xorpd xmm0,xmm0 1BA29B5B - F2 0F2A C3 - cvtsi2sd xmm0,ebx 1BA29B5F - 66 0FD6 47 28 - movq [edi+28],xmm0 << 1BA29B64 - 8B 77 08 - mov esi,[edi+08] 1BA29B67 - 8D 24 24 - lea esp,[esp] }
Голова уже не работает
-
@DieVis Доброе.
С наступившим и наступающим!!!
Как я понял из описанного, попробуй так:[ENABLE] aobscan(FastWork,F3 0F 7E 47 28 F3 0F 7E 4D) alloc(newmem,$1000) label(code) label(return) registersymbol(FastWork) newmem: code: movq xmm0,[edi+28] movq xmm1,[edi+28] jmp FastWork+5 jmp return FastWork: jmp newmem return: [DISABLE] FastWork: db F3 0F 7E 47 28 unregistersymbol(*) dealloc(*)
-
@garik66 Попробовал. Ничего не произошло.
-
@DieVis попробуй так:
[ENABLE] aobscan(FastWork,F3 0F 7E 47 28 F3 0F 7E 4D) alloc(newmem,$1000) label(code) label(return) registersymbol(FastWork) newmem: code: movq xmm0,[edi+28] pxor xmm0, xmm0 jmp FastWork+13 jmp return FastWork: jmp newmem return: [DISABLE] FastWork: db F3 0F 7E 47 28 unregistersymbol(*) dealloc(*)
но, если не получиться, сегодня уже не смогу помочь, нужно разбираться и задавать доп вопросы, а я после работы и завтра на работу, нужно в 5 утра встать.
-
Пользователь @garik66 написал в Infectonator Survivors [Steam]:
попробуй так:
полоска не двигается вообще, цикл встал.
пробовал подобный вариант, либо ничего не происходит, либо не двигается полоска...Пользователь @garik66 написал в Infectonator Survivors [Steam]:
нужно в 5 утра встать.
Тоже самое.
-
@DieVis короче нужно задавать вопросы
-
-
@DieVis ну хорошо ))) раз ты так понял.
-
1BA29A52: F2 0F 5E C1 - divsd xmm0,xmm1 1BA29A56: 66 0F D6 45 D0 - movq [ebp-30],xmm0
а тут что ? Это как раз то, что вычитает... Это в обще может функция то на отображение полоски или же адрес если крутить, то работает как надо ?
Если бы наверно адрес был действительный, то наверное и так бы прокатило в патче.subsd xmm0,xmm0
а то xmm1 всё равно кроме как вычитания и не нужен.
-
@DieVis я не правильно посчитал прыжок
в первом скрипте нужно -
@DieVis я не правильно посчитал прыжок
movq xmm0,[edi+28] movq xmm1,[edi+28] jmp FastWork+A jmp return
-
во втором случае
movq xmm0,[edi+28] pxor xmm0, xmm0 jmp FastWork+e jmp return
-
Пользователь @LIRW написал в Infectonator Survivors [Steam]:
xmm1 всё равно кроме как вычитания и не нужен.
И правда, заработало))) Спасибо за помощь!)
Остальное я почти сам доломал, на днях выложу табличку.
Мгновенное выполнение поставленной задачи.[ENABLE] aobscan(FastWork,66 0F D6 45 D0 E9 24) FastWork: db 66 0F D6 4D D0 //movq [ebp-30],xmm1 [DISABLE] FastWork: db 66 0F D6 45 D0 //movq [ebp-30],xmm0
Сильно сокращать скрипт не буду, оставлю для общего понимания, может кому ещё поможет.
-
Пользователь @garik66 написал в Infectonator Survivors [Steam]:
FastWork+A
Пользователь @garik66 написал в Infectonator Survivors [Steam]:
FastWork+e
Оба варианта также работают!)
Благодарю всех за помощь!)