-
Постов
218 -
Зарегистрирован
-
Посещение
-
Победитель дней
17
Тип контента
Профили
Форумы
Загрузки
Блоги
Сообщения, опубликованные Partizan
-
-
11 часов назад, Partizan сказал:
На многих играх сделанных на анрил присутствует чит менеджер.
Он изначально есть в конструкторе движка.
И это не значит что разрабы не прикрутили к игре что-то другое. Другой костыль.
-
На многих играх сделанных на анрил присутствует чит менеджер.
Он изначально есть в конструкторе движка.
-
Если поставить бряк на жизни.
На адрес FF97CE то он не сработает а чтобы сработал
нужно ставить на диапазон от -1 байт от адреса до +1 байт от адреса.
Т.е. от FF97CD до FF97CF.
Тогда дебаггер остановится на нужной инструкции.
-
16 часов назад, TurkishSea сказал:
Нашел нужный Адрес на Бесконечные жизни - FF97CE. Прочитал инструкцию по вшитию чита, но далее не понял как его найти через HEX-редактор. Какой редактор лучше взять?
FF97CE Это адрес памяти а не рома. На него нужно установить брекпоинт. И уже на сработавшей инструкции производить манипуляции. Сделать GameGinieCode или сразу править ром.
-
3 часа назад, Эдвард сказал:
Спасибо за видео! Век живи - век учись 🧐
И это правильные слова!!!
(лайк)
-
Держи ещё скрипт на Халявный крафт.(его было сделать сложней чем таймер)
Для "приятной игры"
Спойлер[ENABLE] aobscanmodule(FreeCraft,ProjectZeppelin-Win64-Shipping.exe,44 8B 43 08 48 8B CF 48 8B 13 E8 F1) alloc(newmem,$1000,FreeCraft) label(return) registersymbol(FreeCraft) newmem: mov [rbx+08],00 mov r8d,[rbx+08] mov rcx,rdi jmp return FreeCraft: jmp newmem nop 2 return: [DISABLE] FreeCraft: db 44 8B 43 08 48 8B CF unregistersymbol(FreeCraft) dealloc(newmem) { // ORIGINAL CODE - INJECTION POINT: ProjectZeppelin-Win64-Shipping.UCraftingRecipe::GetIngredientSet+30 ProjectZeppelin-Win64-Shipping.UCraftingRecipe::GetIngredientSet+11: 48 8B FA - mov rdi,rdx ProjectZeppelin-Win64-Shipping.UCraftingRecipe::GetIngredientSet+14: 48 89 02 - mov [rdx],rax ProjectZeppelin-Win64-Shipping.UCraftingRecipe::GetIngredientSet+17: 48 89 42 08 - mov [rdx+08],rax ProjectZeppelin-Win64-Shipping.UCraftingRecipe::GetIngredientSet+1B: 48 8B 59 50 - mov rbx,[rcx+50] ProjectZeppelin-Win64-Shipping.UCraftingRecipe::GetIngredientSet+1F: 48 63 71 58 - movsxd rsi,dword ptr [rcx+58] ProjectZeppelin-Win64-Shipping.UCraftingRecipe::GetIngredientSet+23: 48 C1 E6 04 - shl rsi,04 ProjectZeppelin-Win64-Shipping.UCraftingRecipe::GetIngredientSet+27: 48 03 F3 - add rsi,rbx ProjectZeppelin-Win64-Shipping.UCraftingRecipe::GetIngredientSet+2A: 48 3B DE - cmp rbx,rsi ProjectZeppelin-Win64-Shipping.UCraftingRecipe::GetIngredientSet+2D: 74 19 - je ProjectZeppelin-Win64-Shipping.UCraftingRecipe::GetIngredientSet+48 ProjectZeppelin-Win64-Shipping.UCraftingRecipe::GetIngredientSet+2F: 90 - nop // ---------- INJECTING HERE ---------- ProjectZeppelin-Win64-Shipping.UCraftingRecipe::GetIngredientSet+30: 44 8B 43 08 - mov r8d,[rbx+08] // ---------- DONE INJECTING ---------- ProjectZeppelin-Win64-Shipping.UCraftingRecipe::GetIngredientSet+34: 48 8B CF - mov rcx,rdi ProjectZeppelin-Win64-Shipping.UCraftingRecipe::GetIngredientSet+37: 48 8B 13 - mov rdx,[rbx] ProjectZeppelin-Win64-Shipping.UCraftingRecipe::GetIngredientSet+3A: E8 F1 A0 FE FF - call ProjectZeppelin-Win64-Shipping.exe+1383C80 ProjectZeppelin-Win64-Shipping.UCraftingRecipe::GetIngredientSet+3F: 48 83 C3 10 - add rbx,10 ProjectZeppelin-Win64-Shipping.UCraftingRecipe::GetIngredientSet+43: 48 3B DE - cmp rbx,rsi ProjectZeppelin-Win64-Shipping.UCraftingRecipe::GetIngredientSet+46: 75 E8 - jne ProjectZeppelin-Win64-Shipping.UCraftingRecipe::GetIngredientSet+30 ProjectZeppelin-Win64-Shipping.UCraftingRecipe::GetIngredientSet+48: 48 8B 5C 24 30 - mov rbx,[rsp+30] ProjectZeppelin-Win64-Shipping.UCraftingRecipe::GetIngredientSet+4D: 48 8B C7 - mov rax,rdi ProjectZeppelin-Win64-Shipping.UCraftingRecipe::GetIngredientSet+50: 48 8B 74 24 38 - mov rsi,[rsp+38] ProjectZeppelin-Win64-Shipping.UCraftingRecipe::GetIngredientSet+55: 48 83 C4 20 - add rsp,20 }
- 1
-
Как нашёл таймер. Воспользовался инструментом от Cake-san.
И так-как уже не раз ковырял игры на Unreal Engine решил просмотреть наиболее очевидные разделы в структуре от "Мира"
И таки да. Наткнулся на таймер.
Спойлер- 1
-
1 час назад, Эдвард сказал:
Круто! А можно чуть подробнее? Я с CE только 2 дня как общаюсь, ещё не разобрался.
При попытке выполнить скрипт получаю следующее - https://disk.yandex.ru/i/KIPBa99O8E3TyQ
Спойлер- 1
-
Включи скрипт а потом добавь адреса
Спойлер[ENABLE] aobscanmodule(World,ProjectZeppelin-Win64-Shipping.exe,48 8B ? ? ? ? ? 40 88 ? ? ? ? ? 48 85 ? 74 ? 48 8B ? ? ? ? ? EB) alloc(newmem,$1000,World) label(return) label(_World) registersymbol(_World) registersymbol(World) newmem: mov [_World],rdi mov rax,[rdi+00000180] jmp return _World: dq 00 World: jmp newmem nop 2 return: [DISABLE] World: db 48 8B 87 80 01 00 00 unregistersymbol(*) dealloc(newmem) { // ORIGINAL CODE - INJECTION POINT: ProjectZeppelin-Win64-Shipping.exe.unpacked.exe+307E28C ProjectZeppelin-Win64-Shipping.exe.unpacked.exe+307E26A: 48 85 C0 - test rax,rax ProjectZeppelin-Win64-Shipping.exe.unpacked.exe+307E26D: 74 15 - je ProjectZeppelin-Win64-Shipping.exe.unpacked.exe+307E284 ProjectZeppelin-Win64-Shipping.exe.unpacked.exe+307E26F: 48 8B 80 88 00 00 00 - mov rax,[rax+00000088] ProjectZeppelin-Win64-Shipping.exe.unpacked.exe+307E276: 48 85 C0 - test rax,rax ProjectZeppelin-Win64-Shipping.exe.unpacked.exe+307E279: 74 09 - je ProjectZeppelin-Win64-Shipping.exe.unpacked.exe+307E284 ProjectZeppelin-Win64-Shipping.exe.unpacked.exe+307E27B: 83 B8 34 01 00 00 03 - cmp dword ptr [rax+00000134],03 ProjectZeppelin-Win64-Shipping.exe.unpacked.exe+307E282: 75 05 - jne ProjectZeppelin-Win64-Shipping.exe.unpacked.exe+307E289 ProjectZeppelin-Win64-Shipping.exe.unpacked.exe+307E284: 40 B6 01 - mov sil,01 ProjectZeppelin-Win64-Shipping.exe.unpacked.exe+307E287: EB 03 - jmp ProjectZeppelin-Win64-Shipping.exe.unpacked.exe+307E28C ProjectZeppelin-Win64-Shipping.exe.unpacked.exe+307E289: 40 32 F6 - xor sil,sil // ---------- INJECTING HERE ---------- ProjectZeppelin-Win64-Shipping.exe+307E28C: 48 8B 87 80 01 00 00 - mov rax,[rdi+00000180] // ---------- DONE INJECTING ---------- ProjectZeppelin-Win64-Shipping.exe.unpacked.exe+307E293: 40 88 B5 40 01 00 00 - mov [rbp+00000140],sil ProjectZeppelin-Win64-Shipping.exe.unpacked.exe+307E29A: 48 85 C0 - test rax,rax ProjectZeppelin-Win64-Shipping.exe.unpacked.exe+307E29D: 74 09 - je ProjectZeppelin-Win64-Shipping.exe.unpacked.exe+307E2A8 ProjectZeppelin-Win64-Shipping.exe.unpacked.exe+307E29F: 48 8B 80 D8 00 00 00 - mov rax,[rax+000000D8] ProjectZeppelin-Win64-Shipping.exe.unpacked.exe+307E2A6: EB 07 - jmp ProjectZeppelin-Win64-Shipping.exe.unpacked.exe+307E2AF ProjectZeppelin-Win64-Shipping.exe.unpacked.exe+307E2A8: 48 8D 87 70 03 00 00 - lea rax,[rdi+00000370] ProjectZeppelin-Win64-Shipping.exe.unpacked.exe+307E2AF: 48 8B C8 - mov rcx,rax ProjectZeppelin-Win64-Shipping.exe.unpacked.exe+307E2B2: 48 89 45 A0 - mov [rbp-60],rax ProjectZeppelin-Win64-Shipping.exe.unpacked.exe+307E2B6: E8 65 B5 FE FF - call ProjectZeppelin-Win64-Shipping.exe.unpacked.exe+3069820 ProjectZeppelin-Win64-Shipping.exe.unpacked.exe+307E2BB: 40 84 F6 - test sil,sil }
[[_World]+120]+278 PlayTime
[[_World]+118]+48C PlayTimeLimit
Спойлер- 1
-
Я пробовал на версии от skidrow. Не вылетало
-
Попробуй в настройках СЕ разные отладчики. Veh например.
-
Ого тут указатели большие.
[[[[[[[[[[[[[[[UplinkOS_RUS.exe+4506D4]+C]+380]+4]+4]+4]+4]+4]+4]+4]+4]+4]+4]+C]+178]+CC
Это деньги. Искал трассировкой.
(Русская версия с гитхаба.)
-
Игра и отладчик?
-
-
Я находил только хп движка. Колеса все-рано отваливаются. Плюс ещё фильтр искать нужно. 0 движок цел 1 капут.(float)
-
СпойлерСпойлер
[ENABLE] aobscanmodule(TimerMss,DriverParallelLines.exe,D9 01 D8 64 24 04) alloc(newmem,$1000) label(return) registersymbol(TimerMss) newmem: mov [ecx],(float)6250 fld dword ptr [ecx] fsub dword ptr [esp+04]//Можно просто её занопить jmp return TimerMss: jmp newmem nop return: [DISABLE] TimerMss: db D9 01 D8 64 24 04 unregistersymbol(TimerMss) dealloc(newmem) { // ORIGINAL CODE - INJECTION POINT: DriverParallelLines.exe+6B0CC DriverParallelLines.exe+6B0B1: C2 04 00 - ret 0004 DriverParallelLines.exe+6B0B4: 80 79 05 00 - cmp byte ptr [ecx+05],00 DriverParallelLines.exe+6B0B8: 74 04 - je DriverParallelLines.exe+6B0BE DriverParallelLines.exe+6B0BA: D9 01 - fld dword ptr [ecx] DriverParallelLines.exe+6B0BC: EB 14 - jmp DriverParallelLines.exe+6B0D2 DriverParallelLines.exe+6B0BE: 80 79 06 00 - cmp byte ptr [ecx+06],00 DriverParallelLines.exe+6B0C2: 74 08 - je DriverParallelLines.exe+6B0CC DriverParallelLines.exe+6B0C4: D9 44 24 04 - fld dword ptr [esp+04] DriverParallelLines.exe+6B0C8: D8 01 - fadd dword ptr [ecx] DriverParallelLines.exe+6B0CA: EB 06 - jmp DriverParallelLines.exe+6B0D2 // ---------- INJECTING HERE ---------- DriverParallelLines.exe+6B0CC: D9 01 - fld dword ptr [ecx] // ---------- DONE INJECTING ---------- DriverParallelLines.exe+6B0CE: D8 64 24 04 - fsub dword ptr [esp+04] DriverParallelLines.exe+6B0D2: C2 04 00 - ret 0004 DriverParallelLines.exe+6B0D5: A1 B0 C5 70 00 - mov eax,[DriverParallelLines.exe+30C5B0] DriverParallelLines.exe+6B0DA: F3 0F 2A 40 04 - cvtsi2ss xmm0,[eax+04] DriverParallelLines.exe+6B0DF: F3 0F 59 05 F4 13 64 00 - mulss xmm0,[DriverParallelLines.exe+2413F4] DriverParallelLines.exe+6B0E7: 32 C0 - xor al,al DriverParallelLines.exe+6B0E9: F3 0F 11 01 - movss [ecx],xmm0 DriverParallelLines.exe+6B0ED: 88 41 04 - mov [ecx+04],al DriverParallelLines.exe+6B0F0: C6 41 05 01 - mov byte ptr [ecx+05],01 DriverParallelLines.exe+6B0F4: 88 41 06 - mov [ecx+06],al }
Время хранится как 3 разных числа
1 чило минуты 2 секунды и тд.
хранятся они как float но заморозить их не выйдет.
Как ломал
От инструкции сработавщей на секундах трейсил и шёл вверх по коду.
И снова трейсил от начала вызова.
И наткнулся на это.
- 2
-
Mazeltov Я не знаю как устроена структура этой игры на пс. Но на пк игровое бессмертие лежит в начале структуры игрока.
Спойлер0000 - 4 Bytes 12E731E0 : 0 0004 - GodMode=1 12E731E4 : 0 0008 - 4 Bytes 12E731E8 : 1 000C - 4 Bytes 12E731EC : 0 0010 - Double 12E731F0 : 396 0018 - Double 12E731F8 : 156 0020 - Coord_X 12E73200 : 445.606160083037 0028 - Coord_Y 12E73208 : 86 00E8 - Jump_Hight 12E732C8 : 1
Можно попробовать найти координату Х и уже от неё бессмертие.
Как найти координату Х. Бежишь влево уменьшилось вправо увеличилось.(double)
И уже координата Х -1C. Это и будет адресс бессмертия(игрового)
-
9 часов назад, V3R9U60 сказал:
5) Компоновка всех пунктов в одном скрипте
Это что имеется ввиду?
-
8 часов назад, DieVis сказал:
только мины, но всё остальное убивало.
Решил проверить. ГГ не от чего не умирает.
-
DieVis ты в своём скрипте на бессмертие явно что-то забыл дописать.
Спойлер{ Game : N++.exe Version: v24.04.2017 Fixed Repack Date : 2022-09-29 Author : DieVision } [ENABLE] aobscanmodule(GodMode,npp.dll,8B 0E 83 F9 08) alloc(newmem,$1000) label(code) label(return) registersymbol(GodMode) newmem: cmp edi,08 mov [esi+4],(byte)1 code: mov ecx,[esi] cmp ecx,08 jmp return GodMode: jmp newmem return: [DISABLE] GodMode: db 8B 0E 83 F9 08 unregistersymbol(GodMode) dealloc(newmem) { // ORIGINAL CODE - INJECTION POINT: npp.dll.text+19267B npp.dll.text+19266C: CC - int 3 npp.dll.text+19266D: CC - int 3 npp.dll.text+19266E: CC - int 3 npp.dll.text+19266F: CC - int 3 npp.dll.text+192670: 55 - push ebp npp.dll.text+192671: 8B EC - mov ebp,esp npp.dll.text+192673: 83 EC 14 - sub esp,14 npp.dll.text+192676: 33 C0 - xor eax,eax npp.dll.text+192678: 56 - push esi npp.dll.text+192679: 8B F1 - mov esi,ecx // ---------- INJECTING HERE ---------- npp.dll.text+19267B: 8B 0E - mov ecx,[esi] // ---------- DONE INJECTING ---------- npp.dll.text+19267D: 83 F9 08 - cmp ecx,08 npp.dll.text+192680: 73 12 - jae npp.dll.text+192694 npp.dll.text+192682: A1 B8 E4 80 72 - mov eax,[npp.dll+E8E4B8] npp.dll.text+192687: 8B 80 10 08 00 00 - mov eax,[eax+00000810] npp.dll.text+19268D: 8B 84 88 10 B7 B3 06 - mov eax,[eax+ecx*4+06B3B710] npp.dll.text+192694: 3B 86 40 0B 00 00 - cmp eax,[esi+00000B40] npp.dll.text+19269A: 74 0D - je npp.dll.text+1926A9 npp.dll.text+19269C: 8B CE - mov ecx,esi npp.dll.text+19269E: 89 86 40 0B 00 00 - mov [esi+00000B40],eax npp.dll.text+1926A4: E8 27 04 00 00 - call npp.dll.text+192AD0 }
Сравнение есть а прыжка нету.
-
Тоже стало интересно. Решил глянуть.
Искал так.
1 поиск 4 байта неизвестное
2 умер отсеил как увеличилось
3 воскрес отсеил как уменьшилось
4 побегал туда-сюда. Не изменилось.
5 умер увеличилось. Ну и тд.
В итоге нашёлся адресс. 0=жив; 6-7=мёртв.
Ну а дальше всё просто. Бряк на запись. При смерти срабатывает 2 инструкции. Беру ту что выше стоит по коду
mov [esi+000000D0],00000006
Если просто занопить то ни чё не выйдет.
Ставлю трейс. Выхожу из кола.
728F2DBD - mov ecx,[esi+000000D0] 728F2DC3 - cmp ecx,09 728F2DC6 - je 728F365D 728F2DCC - cmp ecx,06 728F2DCF - je 728F365D 728F2DD5 - cmp ecx,07 728F2DD8 - jne 728F2DEC 728F2DDA - sub esp,08 728F2DDD - mov ecx,esi 728F2DDF - call 728F3700--вышел из него 728F2DE4 - pop edi 728F2DE5 - pop esi
Что-то пишется в есх.
3 сравнения с перепрыгивание вызова но 2 из них далеко прыгают.
Меняю jne 728F2DEC на безусловный.
Всё ГГ не умирает. По крайней мере от мин.(дальше проходить нет желания чтоб проверить на чём то другом)
P.S. Если взять esi как начало структуры от этой инструкции mov ecx,[esi+000000D0]
поменять на единичку esi+4. То включится игровое бессмертие ГГ.
Спойлер[ENABLE] aobscanmodule(GodMod,npp.dll,75 ? 83 ? ? 8B ? E8 ? ? ? ? 5F 5E) registersymbol(GodMod) GodMod: db EB 12 [DISABLE] GodMod: db 75 12 unregistersymbol(GodMod) { // ORIGINAL CODE - INJECTION POINT: npp.dll+192DD8 npp.dll+192DA1: 75 1A - jne npp.dll+192DBD npp.dll+192DA3: F3 0F 6F 86 20 01 00 00 - movdqu xmm0,[esi+00000120] npp.dll+192DAB: C7 86 90 01 00 00 00 00 00 00 - mov [esi+00000190],00000000 npp.dll+192DB5: F3 0F 7F 86 A8 01 00 00 - movdqu [esi+000001A8],xmm0 npp.dll+192DBD: 8B 8E D0 00 00 00 - mov ecx,[esi+000000D0] npp.dll+192DC3: 83 F9 09 - cmp ecx,09 npp.dll+192DC6: 0F 84 91 08 00 00 - je npp.dll+19365D npp.dll+192DCC: 83 F9 06 - cmp ecx,06 npp.dll+192DCF: 0F 84 88 08 00 00 - je npp.dll+19365D npp.dll+192DD5: 83 F9 07 - cmp ecx,07 // ---------- INJECTING HERE ---------- npp.dll+192DD8: 75 12 - jne npp.dll+192DEC // ---------- DONE INJECTING ---------- npp.dll+192DDA: 83 EC 08 - sub esp,08 npp.dll+192DDD: 8B CE - mov ecx,esi npp.dll+192DDF: E8 1C 09 00 00 - call npp.dll+193700 npp.dll+192DE4: 5F - pop edi npp.dll+192DE5: 5E - pop esi npp.dll+192DE6: 8B E5 - mov esp,ebp npp.dll+192DE8: 5D - pop ebp npp.dll+192DE9: C2 0C 00 - ret 000C npp.dll+192DEC: 83 F9 08 - cmp ecx,08 npp.dll+192DEF: 75 2E - jne npp.dll+192E1F }
- 1
-
19 часов назад, Antonshka сказал:
Да, это для плавности. Домножение должно осуществляться в самой игровой функции, самим игровым потоком. Через FPU или SSE.
Я поток не создавал. Использовал созданый игрой. А чем плохо умножение Float через xmm/
СпойлерЯ бы сказал у xmm даже есть приимущество по сравнению с FPU процессором
Можно в 1 регистр записать сразу 4 значения.
Я не гнушаюсь и FPU.
СпойлерСпойлер[ENABLE] aobscanmodule(MoveSpeed,cf3.exe,D9 00 D9 1B D9 40 04 D9 5B 04 D9 40 08 D9 5B 08 EB C4 56 E8 80) aobscanmodule(MoveSpeed_02,cf3.exe,D9 00 D9 1B D9 40 04 D9 5B 04 D9 40 08 D9 5B 08 EB C4 56 E8 80) alloc(newmem,$1000) alloc(newmem_02,$1000) label(return) label(return_02) label(imul_value) registersymbol(imul_value) registersymbol(MoveSpeed) registersymbol(MoveSpeed_02) newmem: fld dword ptr [eax] cmp [esp+38],80000000 jne short @F fmul [imul_value] @@: fstp dword ptr [ebx] fld dword ptr [eax+04] jmp return newmem_02: fld dword ptr [eax+08] cmp [esp+38],80000000 jne short @F fmul [imul_value] @@: fstp dword ptr [ebx+08] jmp return_02 imul_value: dd (float)2 MoveSpeed: jmp newmem nop 2 return: MoveSpeed_02+0A: jmp newmem_02 nop return_02: [DISABLE] MoveSpeed: db D9 00 D9 1B D9 40 04 MoveSpeed_02+0A: db D9 40 08 D9 5B 08 unregistersymbol(*) dealloc(*) { // ORIGINAL CODE - INJECTION POINT: cf3.exe+3EB828 cf3.exe+3EB811: E8 EA 21 FD FF - call cf3.exe+3BDA00 cf3.exe+3EB816: 83 C4 0C - add esp,0C cf3.exe+3EB819: 5F - pop edi cf3.exe+3EB81A: 5D - pop ebp cf3.exe+3EB81B: 5B - pop ebx cf3.exe+3EB81C: B8 01 00 00 00 - mov eax,00000001 cf3.exe+3EB821: 5E - pop esi cf3.exe+3EB822: 59 - pop ecx cf3.exe+3EB823: C3 - ret cf3.exe+3EB824: 8B 44 24 10 - mov eax,[esp+10] // ---------- INJECTING HERE ---------- cf3.exe+3EB828: D9 00 - fld dword ptr [eax] // ---------- DONE INJECTING ---------- cf3.exe+3EB82A: D9 1B - fstp dword ptr [ebx] cf3.exe+3EB82C: D9 40 04 - fld dword ptr [eax+04] cf3.exe+3EB82F: D9 5B 04 - fstp dword ptr [ebx+04] cf3.exe+3EB832: D9 40 08 - fld dword ptr [eax+08] cf3.exe+3EB835: D9 5B 08 - fstp dword ptr [ebx+08] cf3.exe+3EB838: EB C4 - jmp cf3.exe+3EB7FE cf3.exe+3EB83A: 56 - push esi cf3.exe+3EB83B: E8 80 FA FF FF - call cf3.exe+3EB2C0 cf3.exe+3EB840: 83 C4 04 - add esp,04 cf3.exe+3EB843: 5E - pop esi }
-
Жаль ссылки битые.
-
В 10.11.2022 в 07:43, Antonshka сказал:
Но как по мне, лучше дать самому потоку плавно домножать velocity.
Согласень так лучше смотрелось бы. Вопрос реализации.
Показал бы как хоть на той же МТХ.
А про горячие кнопки....???? Смысл?
Как заморозить таймер в игре?
in Cheat Engine
Опубликовано
А он наверно просто не аттачится к игре.
Ты запускаешь трейнер уже с включенной игрой?
Я могу дать несколько скриптов для аттача к процессу.
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)
-------- -------- 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
attachlist=getAutoAttachList() stringlist_add(attachlist,"XXX.exe");
PROCESS_NAME = 'XXXXXXXXX.exe' -------- -------- Check for process and auto attach if need be -------- local autoAttachTimer = nil ---- Declaration for our static timer object (no destroy here!) local autoAttachTimerInterval = 5000 ---- Timer in milliseconds function clearUserDefinedSymbols() local mv,sf = getMemoryViewForm() if not mv.frmSymbolhandler then local mvHidden if not mv.Visible then mvHidden=true,mv.Show() end mv.miuserdefinedsymbols:OnClick() if mvHidden then mv.hide()end sf = mv.frmSymbolhandler sf.Hide() else sf = mv.frmSymbolhandler end if sf ~= nil then local symbol for i = sf.Listview1.Items.Count - 1, 0, -1 do symbol = sf.Listview1.Items.Item[i].Caption unregisterSymbol(symbol) end end end local function autoAttachTimer_tick(timer) ---- Timer callback ---- Check to see if we are attached to the right process if getProcessIDFromProcessName(PROCESS_NAME) ~= getOpenedProcessID() then ---- If not the right process, check if process is running and attach if exists AddressList.disableAllWithoutExecute() clearUserDefinedSymbols() if getProcessIDFromProcessName(PROCESS_NAME) ~= nil then openProcess(PROCESS_NAME) ---- Open the process end end end autoAttachTimer = createTimer(getMainForm()) ---- Create timer with the main form as it's parent autoAttachTimer.Interval = autoAttachTimerInterval ---- Set timer interval autoAttachTimer.OnTimer = autoAttachTimer_tick ---- Set timer tick call back