Tzeentch Опубликовано 7 марта, 2021 Поделиться Опубликовано 7 марта, 2021 Всем доброго дня. Ломал издание от [Медиа-Сервис 2000]. Его можно найти на торрентах. В Steam или Uplay получить не выйдет. Выкладываю здесь поскольку в основной разделе нельзя. Итак: Соберу всё в одном. Ещё редактировал.(пора на проверку) InfiniteHealth: Спойлер { Game : SplinterCell2.exe Version: Date : 2021-03-07 Author : Templar This script does blah blah blah } [ENABLE] aobscanmodule(InfiniteHealth,Core.dll,8B 03 8B 54 24 10 2B) // should be unique alloc(newmem,$1000) label(code) label(return) newmem: code: mov eax,[ebx] mov edx,[esp+10] ///урон cmp [ebx+9C],(float)35 ///статичный адрес для смещения jne return ///прыгаем если не равно xor edx,edx ///обнуляем урон jmp return InfiniteHealth: jmp newmem nop return: registersymbol(InfiniteHealth) [DISABLE] InfiniteHealth: db 8B 03 8B 54 24 10 unregistersymbol(InfiniteHealth) dealloc(newmem) { // ORIGINAL CODE - INJECTION POINT: Core.dll+32BA2 Core.dll+32B88: 8B C2 - mov eax,edx Core.dll+32B8A: 89 56 0C - mov [esi+0C],edx Core.dll+32B8D: 80 38 42 - cmp byte ptr [eax],42 Core.dll+32B90: 75 10 - jne Core.dll+32BA2 Core.dll+32B92: 8B 4E 08 - mov ecx,[esi+08] Core.dll+32B95: 6A 00 - push 00 Core.dll+32B97: 40 - inc eax Core.dll+32B98: 56 - push esi Core.dll+32B99: 89 46 0C - mov [esi+0C],eax Core.dll+32B9C: FF 15 10 9B 1F 10 - call dword ptr [Core.GNatives+108] // ---------- INJECTING HERE ---------- Core.dll+32BA2: 8B 03 - mov eax,[ebx] // ---------- DONE INJECTING ---------- Core.dll+32BA4: 8B 54 24 10 - mov edx,[esp+10] Core.dll+32BA8: 2B C2 - sub eax,edx Core.dll+32BAA: 89 03 - mov [ebx],eax Core.dll+32BAC: 8B D8 - mov ebx,eax Core.dll+32BAE: 8B 44 24 14 - mov eax,[esp+14] Core.dll+32BB2: 5E - pop esi Core.dll+32BB3: 89 18 - mov [eax],ebx Core.dll+32BB5: 5B - pop ebx Core.dll+32BB6: 59 - pop ecx Core.dll+32BB7: C2 08 00 - ret 0008 } InfiniteAmmo: Спойлер { Game : SplinterCell2.exe Version: Date : 2021-03-06 Author : Templar This script does blah blah blah } [ENABLE] aobscanmodule(InfAmmo,Core.dll,89 0A FF 0F 5F 5E 59) // should be unique alloc(newmem,$1000) label(code) label(return) label(nodec) newmem: code: mov [edx],ecx ///my code ///Фильтр cmp [edi+C],#20 ///пистолет - сравниваем с макс. обоймой je nodec ///перепрыгиваем отнимание если пистолет cmp [edi+C],#30 ///автомат - сравниваем с макс. обоймой je nodec ///перепрыгиваем отнимание если автомат ///my code dec [edi] ///тут отнимает всё остальное nodec: pop edi jmp return InfAmmo: jmp newmem return: registersymbol(InfAmmo) [DISABLE] InfAmmo: db 89 0A FF 0F 5F 5E 59 unregistersymbol(InfAmmo) dealloc(newmem) { // ORIGINAL CODE - INJECTION POINT: Core.dll+32D56 Core.dll+32D3B: 80 38 42 - cmp byte ptr [eax],42 Core.dll+32D3E: 75 10 - jne Core.dll+32D50 Core.dll+32D40: 8B 4E 08 - mov ecx,[esi+08] Core.dll+32D43: 6A 00 - push 00 Core.dll+32D45: 40 - inc eax Core.dll+32D46: 56 - push esi Core.dll+32D47: 89 46 0C - mov [esi+0C],eax Core.dll+32D4A: FF 15 10 9B 1F 10 - call dword ptr [Core.GNatives+108] Core.dll+32D50: 8B 0F - mov ecx,[edi] Core.dll+32D52: 8B 54 24 14 - mov edx,[esp+14] // ---------- INJECTING HERE ---------- Core.dll+32D56: 89 0A - mov [edx],ecx 89 0A FF 0F 5F 5E 59 // ---------- DONE INJECTING ---------- Core.dll+32D58: FF 0F - dec [edi] Core.dll+32D5A: 5F - pop edi Core.dll+32D5B: 5E - pop esi Core.dll+32D5C: 59 - pop ecx Core.dll+32D5D: C2 08 00 - ret 0008 Core.dll+32D60: CC - int 3 Core.dll+32D61: CC - int 3 Core.dll+32D62: CC - int 3 Core.dll+32D63: CC - int 3 Core.dll+32D64: CC - int 3 } NoReload: Спойлер [ENABLE] aobscanmodule(InfAmmoNoReload,Core.dll,89 0A FF 0F 5F 5E 59) // should be unique alloc(newmem,$1000) label(code) label(return) label(next_code) label(wrcode) label(nodec) newmem: code: mov [edx],ecx cmp [edi+C],#20 ///пистолет - сравниваем с статичным смещением je wrcode ///прыгаем если пистолет cmp [edi+C],#30 ///автомат - сравниваем с статичным смещением je wrcode ///прыгаем если автомат jmp next_code ///прыгаем на оригинальный код wrcode: ///my code inc [edi+8] ///NoReload jmp nodec ///перепрыгиваем отнимание next_code: dec [edi] ///тут отнимает всё остальное nodec: pop edi jmp return InfAmmoNoReload: jmp newmem return: registersymbol(InfAmmoNoReload) [DISABLE] InfAmmoNoReload: db 89 0A FF 0F 5F 5E 59 unregistersymbol(InfAmmoNoReload) dealloc(newmem) { // ORIGINAL CODE - INJECTION POINT: Core.dll+32D56 Core.dll+32D3B: 80 38 42 - cmp byte ptr [eax],42 Core.dll+32D3E: 75 10 - jne Core.dll+32D50 Core.dll+32D40: 8B 4E 08 - mov ecx,[esi+08] Core.dll+32D43: 6A 00 - push 00 Core.dll+32D45: 40 - inc eax Core.dll+32D46: 56 - push esi Core.dll+32D47: 89 46 0C - mov [esi+0C],eax Core.dll+32D4A: FF 15 10 9B 1F 10 - call dword ptr [Core.GNatives+108] Core.dll+32D50: 8B 0F - mov ecx,[edi] Core.dll+32D52: 8B 54 24 14 - mov edx,[esp+14] // ---------- INJECTING HERE ---------- Core.dll+32D56: 89 0A - mov [edx],ecx 89 0A FF 0F 5F 5E 59 // ---------- DONE INJECTING ---------- Core.dll+32D58: FF 0F - dec [edi] Core.dll+32D5A: 5F - pop edi Core.dll+32D5B: 5E - pop esi Core.dll+32D5C: 59 - pop ecx Core.dll+32D5D: C2 08 00 - ret 0008 Core.dll+32D60: CC - int 3 Core.dll+32D61: CC - int 3 Core.dll+32D62: CC - int 3 Core.dll+32D63: CC - int 3 Core.dll+32D64: CC - int 3 } SuperAccuracy: Спойлер { Game : SplinterCell2.exe Version: Date : 2021-03-16 Author : Templar This script does blah blah blah } [ENABLE] aobscanmodule(SuperAccuracyV2,Echelon.DLL,8B 86 B4 05 00 00) // should be unique alloc(newmem,$1000) label(code) label(return) newmem: code: mov eax,[esi+000005B4] xor eax,eax ///обнуляем прицел jmp return SuperAccuracyV2: jmp newmem nop return: registersymbol(SuperAccuracyV2) [DISABLE] SuperAccuracyV2: db 8B 86 B4 05 00 00 unregistersymbol(SuperAccuracyV2) dealloc(newmem) { // ORIGINAL CODE - INJECTION POINT: Echelon.AEWeapon::Tick+26F Echelon.AEWeapon::Tick+24A: F7 47 60 00 00 02 00 - test [edi+60],00020000 Echelon.AEWeapon::Tick+251: 75 07 - jne Echelon.AEWeapon::Tick+25A Echelon.AEWeapon::Tick+253: BF 01 00 00 00 - mov edi,00000001 Echelon.AEWeapon::Tick+258: EB 02 - jmp Echelon.AEWeapon::Tick+25C Echelon.AEWeapon::Tick+25A: 33 FF - xor edi,edi Echelon.AEWeapon::Tick+25C: D9 86 B8 05 00 00 - fld dword ptr [esi+000005B8] Echelon.AEWeapon::Tick+262: D8 9E B4 05 00 00 - fcomp dword ptr [esi+000005B4] Echelon.AEWeapon::Tick+268: DF E0 - fnstsw ax Echelon.AEWeapon::Tick+26A: F6 C4 05 - test ah,05 Echelon.AEWeapon::Tick+26D: 7A 0E - jp Echelon.AEWeapon::Tick+27D // ---------- INJECTING HERE ---------- Echelon.AEWeapon::Tick+26F: 8B 86 B4 05 00 00 - mov eax,[esi+000005B4] // ---------- DONE INJECTING ---------- Echelon.AEWeapon::Tick+275: 89 86 B8 05 00 00 - mov [esi+000005B8],eax Echelon.AEWeapon::Tick+27B: EB 7C - jmp Echelon.AEWeapon::Tick+2F9 Echelon.AEWeapon::Tick+27D: D9 86 B4 05 00 00 - fld dword ptr [esi+000005B4] Echelon.AEWeapon::Tick+283: D9 86 B8 05 00 00 - fld dword ptr [esi+000005B8] Echelon.AEWeapon::Tick+289: DA E9 - fucompp Echelon.AEWeapon::Tick+28B: DF E0 - fnstsw ax Echelon.AEWeapon::Tick+28D: F6 C4 44 - test ah,44 Echelon.AEWeapon::Tick+290: 7B 67 - jnp Echelon.AEWeapon::Tick+2F9 Echelon.AEWeapon::Tick+292: D9 86 B8 05 00 00 - fld dword ptr [esi+000005B8] Echelon.AEWeapon::Tick+298: 68 0A D7 23 3C - push 3C23D70A } 4 Ссылка на комментарий Поделиться на другие сайты Поделиться
SerVick Опубликовано 16 февраля, 2022 Поделиться Опубликовано 16 февраля, 2022 (изменено) Блин, вот почему на все версии "Splinter Cell" , что здесь выложили.., во всех стандартный набор функций...?! Для этой игры второстепенный набор. Наверное, только я заметил.., что -эти игры ("Splinter Cell" ) подразумевают режим "стелс", а значит основные функции то... : невидимость, бесшумность для таких игр. Конечно можно и коды разработчиков повесить на клавиши, но очень не удобно, что и перс при невидимости тоже становится невидим. Кстати действительно на эту игру только один трейнер на ПГ, тоже со стандартным набором функций. А за сим думаю будет уместно добавить здесь (чтоб не создавать лишние темы) более нужные функции для этой игры. 1) Невидимость: Спойлер // фильтр не до конща протестирован, возможно заменить из примечания надо будет.В принципе и без фильтра вылета не было, но кто знает, ни один адрес в инструкции... //Перса невидят енеми в любом положении.. стоит, или присел. А самое главное не исчезает.., как в чите от разработчиков... // И ещё не разобрался, в миссии когда на балконе енем с прибором НВ, вообщем видит ГГ, не знай мож кто потом глянет, мне чёт ща эти игры не очень интересны. { Game : splintercell2.exe Version: Date : 2022-02-16 Author : SerVick } [ENABLE] aobscanmodule(My_Invisible_,Echelon.DLL,D9 9E E4 02 00 00 83) // should be unique alloc(newmem,$1000) label(code) label(return) newmem://8C=2(4b); 3A8=500(fl); 34=86002 84002, 370=5346 4240 (hex) cmp dword ptr [esi+0000008C],#2 jne code fld dword ptr [esi+000002E0] code: fstp dword ptr [esi+000002E4] jmp return My_Invisible_: jmp newmem db 90 return: registersymbol(My_Invisible_) [DISABLE] My_Invisible_: db D9 9E E4 02 00 00 unregistersymbol(My_Invisible_) dealloc(newmem) { // ORIGINAL CODE - INJECTION POINT: Echelon.AEPawn::GetVisibilityFactor+21C Echelon.AEPawn::GetVisibilityFactor+1F7: 75 20 - jne Echelon.AEPawn::GetVisibilityFactor+219 Echelon.AEPawn::GetVisibilityFactor+1F9: D8 0D F4 EA CD 04 - fmul dword ptr [Echelon.AESoundVolume::`vftable'+1FC] Echelon.AEPawn::GetVisibilityFactor+1FF: 68 00 00 40 3F - push 3F400000 Echelon.AEPawn::GetVisibilityFactor+204: 51 - push ecx Echelon.AEPawn::GetVisibilityFactor+205: 8B CE - mov ecx,esi Echelon.AEPawn::GetVisibilityFactor+207: D9 1C 24 - fstp dword ptr [esp] Echelon.AEPawn::GetVisibilityFactor+20A: FF 15 00 72 CD 04 - call dword ptr [Echelon.UEGoalTakeHostage::_Run+B610] Echelon.AEPawn::GetVisibilityFactor+210: D9 55 0C - fst dword ptr [ebp+0C] Echelon.AEPawn::GetVisibilityFactor+213: D8 0D 0C B2 CD 04 - fmul dword ptr [Echelon.UETransmissionObj::`vftable'+18C] Echelon.AEPawn::GetVisibilityFactor+219: 8B 46 64 - mov eax,[esi+64] // ---------- INJECTING HERE ---------- Echelon.AEPawn::GetVisibilityFactor+21C: D9 9E E4 02 00 00 - fstp dword ptr [esi+000002E4] // ---------- DONE INJECTING ---------- Echelon.AEPawn::GetVisibilityFactor+222: 83 C8 20 - or eax,20 Echelon.AEPawn::GetVisibilityFactor+225: 89 46 64 - mov [esi+64],eax Echelon.AEPawn::GetVisibilityFactor+228: F7 46 60 00 00 08 00 - test [esi+60],00080000 Echelon.AEPawn::GetVisibilityFactor+22F: 75 71 - jne Echelon.AEPawn::GetVisibilityFactor+2A2 Echelon.AEPawn::GetVisibilityFactor+231: 8B 86 6C 03 00 00 - mov eax,[esi+0000036C] Echelon.AEPawn::GetVisibilityFactor+237: 85 C0 - test eax,eax Echelon.AEPawn::GetVisibilityFactor+239: 74 67 - je Echelon.AEPawn::GetVisibilityFactor+2A2 Echelon.AEPawn::GetVisibilityFactor+23B: 8B 90 C8 08 00 00 - mov edx,[eax+000008C8] Echelon.AEPawn::GetVisibilityFactor+241: 8B 8E E4 02 00 00 - mov ecx,[esi+000002E4] Echelon.AEPawn::GetVisibilityFactor+247: 89 8C 90 A0 08 00 00 - mov [eax+edx*4+000008A0],ecx } 2) Бесшумность: Спойлер // Полностью бесшумный ГГ когда приседает ((включая хрустящие поверхности) не стал разбираться с детектом когда перс стоя перемещается и его слышат енеми т.к. компенсируется читом ниже "скорость ГГ" и можно всегда перемащаться присев, кому надо разбирайтесь, думаю гдет рядом в структуре)) { Game : splintercell2.exe Version: Date : 2022-02-16 Author : SerVick } [ENABLE] aobscanmodule(My_Silence,Echelon.DLL,89 82 BC 03 00 00) // should be unique alloc(newmem,$1000) label(code) label(return) newmem: xor eax,eax code: mov [edx+000003BC],eax jmp return My_Silence: jmp newmem db 90 return: registersymbol(My_Silence) [DISABLE] My_Silence: db 89 82 BC 03 00 00 unregistersymbol(My_Silence) dealloc(newmem) { // ORIGINAL CODE - INJECTION POINT: Echelon.AEPlayerController::execSetGroundSpeed+2A1 Echelon.AEPlayerController::execSetGroundSpeed+272: 89 45 08 - mov [ebp+08],eax Echelon.AEPlayerController::execSetGroundSpeed+275: FF 15 78 72 D9 04 - call dword ptr [Echelon.UEGoalTakeHostage::_Run+B688] Echelon.AEPlayerController::execSetGroundSpeed+27B: D9 5D 08 - fstp dword ptr [ebp+08] Echelon.AEPlayerController::execSetGroundSpeed+27E: 8B 55 08 - mov edx,[ebp+08] Echelon.AEPlayerController::execSetGroundSpeed+281: 8B 86 84 05 00 00 - mov eax,[esi+00000584] Echelon.AEPlayerController::execSetGroundSpeed+287: 89 96 4C 06 00 00 - mov [esi+0000064C],edx Echelon.AEPlayerController::execSetGroundSpeed+28D: 8B CA - mov ecx,edx Echelon.AEPlayerController::execSetGroundSpeed+28F: 89 88 B8 03 00 00 - mov [eax+000003B8],ecx Echelon.AEPlayerController::execSetGroundSpeed+295: 8B 86 4C 06 00 00 - mov eax,[esi+0000064C] Echelon.AEPlayerController::execSetGroundSpeed+29B: 8B 96 84 05 00 00 - mov edx,[esi+00000584] // ---------- INJECTING HERE ---------- Echelon.AEPlayerController::execSetGroundSpeed+2A1: 89 82 BC 03 00 00 - mov [edx+000003BC],eax // ---------- DONE INJECTING ---------- Echelon.AEPlayerController::execSetGroundSpeed+2A7: 8B 86 84 05 00 00 - mov eax,[esi+00000584] Echelon.AEPlayerController::execSetGroundSpeed+2AD: D9 80 B8 03 00 00 - fld dword ptr [eax+000003B8] Echelon.AEPlayerController::execSetGroundSpeed+2B3: 8A 88 70 03 00 00 - mov cl,[eax+00000370] Echelon.AEPlayerController::execSetGroundSpeed+2B9: DC 2D 98 A0 D9 04 - fsubr qword ptr [Echelon.UEReconDataStick::`vftable'+428] Echelon.AEPlayerController::execSetGroundSpeed+2BF: 83 C4 10 - add esp,10 Echelon.AEPlayerController::execSetGroundSpeed+2C2: F6 C1 04 - test cl,04 Echelon.AEPlayerController::execSetGroundSpeed+2C5: 74 0E - je Echelon.AEPlayerController::execSetGroundSpeed+2D5 Echelon.AEPlayerController::execSetGroundSpeed+2C7: D8 8E A8 07 00 00 - fmul dword ptr [esi+000007A8] Echelon.AEPlayerController::execSetGroundSpeed+2CD: D9 86 A0 07 00 00 - fld dword ptr [esi+000007A0] Echelon.AEPlayerController::execSetGroundSpeed+2D3: EB 0C - jmp Echelon.AEPlayerController::execSetGroundSpeed+2E1 } 3) Скорость ГГ: Спойлер //Увеличенная скорость ГГ, положение стоя, присев не влияет. Значение можно выставить по желанию.., 3 думаю самое оптимальное... { Game : splintercell2.exe Version: Date : 2022-02-16 Author : SerVick } [ENABLE] aobscanmodule(HeroSpeed,Echelon.DLL,89 88 B8 03 00 00) // should be unique alloc(newmem,$1000) label(code) label(return) newmem: mov ecx,(float)3 code: mov [eax+000003B8],ecx jmp return HeroSpeed: jmp newmem db 90 return: registersymbol(HeroSpeed) [DISABLE] HeroSpeed: db 89 88 B8 03 00 00 unregistersymbol(HeroSpeed) dealloc(newmem) { // ORIGINAL CODE - INJECTION POINT: Echelon.AEPlayerController::execSetGroundSpeed+28F Echelon.AEPlayerController::execSetGroundSpeed+26B: 68 00 00 80 40 - push 40800000 Echelon.AEPlayerController::execSetGroundSpeed+270: 50 - push eax Echelon.AEPlayerController::execSetGroundSpeed+271: 51 - push ecx Echelon.AEPlayerController::execSetGroundSpeed+272: 89 45 08 - mov [ebp+08],eax Echelon.AEPlayerController::execSetGroundSpeed+275: FF 15 78 72 D9 04 - call dword ptr [Echelon.UEGoalTakeHostage::_Run+B688] Echelon.AEPlayerController::execSetGroundSpeed+27B: D9 5D 08 - fstp dword ptr [ebp+08] Echelon.AEPlayerController::execSetGroundSpeed+27E: 8B 55 08 - mov edx,[ebp+08] Echelon.AEPlayerController::execSetGroundSpeed+281: 8B 86 84 05 00 00 - mov eax,[esi+00000584] Echelon.AEPlayerController::execSetGroundSpeed+287: 89 96 4C 06 00 00 - mov [esi+0000064C],edx Echelon.AEPlayerController::execSetGroundSpeed+28D: 8B CA - mov ecx,edx // ---------- INJECTING HERE ---------- Echelon.AEPlayerController::execSetGroundSpeed+28F: 89 88 B8 03 00 00 - mov [eax+000003B8],ecx // ---------- DONE INJECTING ---------- Echelon.AEPlayerController::execSetGroundSpeed+295: 8B 86 4C 06 00 00 - mov eax,[esi+0000064C] Echelon.AEPlayerController::execSetGroundSpeed+29B: 8B 96 84 05 00 00 - mov edx,[esi+00000584] Echelon.AEPlayerController::execSetGroundSpeed+2A1: 89 82 BC 03 00 00 - mov [edx+000003BC],eax Echelon.AEPlayerController::execSetGroundSpeed+2A7: 8B 86 84 05 00 00 - mov eax,[esi+00000584] Echelon.AEPlayerController::execSetGroundSpeed+2AD: D9 80 B8 03 00 00 - fld dword ptr [eax+000003B8] Echelon.AEPlayerController::execSetGroundSpeed+2B3: 8A 88 70 03 00 00 - mov cl,[eax+00000370] Echelon.AEPlayerController::execSetGroundSpeed+2B9: DC 2D 98 A0 D9 04 - fsubr qword ptr [Echelon.UEReconDataStick::`vftable'+428] Echelon.AEPlayerController::execSetGroundSpeed+2BF: 83 C4 10 - add esp,10 Echelon.AEPlayerController::execSetGroundSpeed+2C2: F6 C1 04 - test cl,04 Echelon.AEPlayerController::execSetGroundSpeed+2C5: 74 0E - je Echelon.AEPlayerController::execSetGroundSpeed+2D5 } Какая досада, что ранее не умел подобное делать.., может в своё время всю игру тогда бы прошёл. Ещё конечно можно найти счёт тревог (чтоб обнулялся), но в принципе и так вполне комфортно можно проходить.. И ещё.. при столкновении с энеми перс детектится. Делал на этой версии игры: Спойлер Год выпуска: 2004 Жанр: Third-Person Action, Stealth Разработчик: Ubisoft Shanghai и Ubisoft Annecy Издатель: Ubi Soft Entertainment Тип издания: RePack Язык интерфейса: Английский, Русский Язык озвучки: Английский, Русский Версия: 1.0 Игра из Splinter.Cell.Anthology.2003-2013 от R.G. Catalyst Коды от Tzeentch (InfiniteHealth, NoReload, SuperAccuracy)на этой версии работают нормально. Изменено 16 февраля, 2022 пользователем SerVick Коды убраны под спойлер 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Tzeentch Опубликовано 25 февраля, 2022 Автор Поделиться Опубликовано 25 февраля, 2022 Бесконечный таймер. Миссия не будет провалена. Но бомба всё равно взрывается) Нужен редко. Но функция может пригодиться. Спойлер { Game : SplinterCell2.exe Version: Date : 2022-02-25 Author : Templar This script does blah blah blah Таймер фиксируется. Бомба всё равно взрывается, но миссия не проваливается. Забавно } [ENABLE] aobscanmodule(InfTimer,Core.dll,D9 17 5F D9 1A 5E 59 C2 ? ? CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC 51 56 8B 74 ? ? 8B 46) // should be unique alloc(newmem,$1000) label(code) label(return) newmem: fst dword ptr [edi] ///my code cmp [edi+10],#1 ///сравниваем с статичным смещением jne code ///прыгаем если не равно mov [edi],(float)540 ///9 минут ///my code code: pop edi fstp dword ptr [edx] jmp return InfTimer: jmp newmem return: registersymbol(InfTimer) [DISABLE] InfTimer: db D9 17 5F D9 1A unregistersymbol(InfTimer) dealloc(newmem) { Address of signature = Core.dll + 0x00033DDC "\xD9\x17\x5F\xD9\x1A\x5E\x59\xC2\x00\x00\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\x51\x56\x8B\x74\x00\x00\x8B\x46", "xxxxxxxx??xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx??xx" "D9 17 5F D9 1A 5E 59 C2 ? ? CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC 51 56 8B 74 ? ? 8B 46" // ORIGINAL CODE - INJECTION POINT: Core.dll+33DDC Core.dll+33DC0: 75 10 - jne Core.dll+33DD2 Core.dll+33DC2: 8B 4E 08 - mov ecx,[esi+08] Core.dll+33DC5: 6A 00 - push 00 Core.dll+33DC7: 40 - inc eax Core.dll+33DC8: 56 - push esi Core.dll+33DC9: 89 46 0C - mov [esi+0C],eax Core.dll+33DCC: FF 15 10 9B 1F 10 - call dword ptr [Core.GNatives+108] Core.dll+33DD2: D9 07 - fld dword ptr [edi] Core.dll+33DD4: 8B 54 24 14 - mov edx,[esp+14] Core.dll+33DD8: D8 64 24 10 - fsub dword ptr [esp+10] // ---------- INJECTING HERE ---------- Core.dll+33DDC: D9 17 - fst dword ptr [edi] // ---------- DONE INJECTING ---------- Core.dll+33DDE: 5F - pop edi Core.dll+33DDF: D9 1A - fstp dword ptr [edx] Core.dll+33DE1: 5E - pop esi Core.dll+33DE2: 59 - pop ecx Core.dll+33DE3: C2 08 00 - ret 0008 Core.dll+33DE6: CC - int 3 Core.dll+33DE7: CC - int 3 Core.dll+33DE8: CC - int 3 Core.dll+33DE9: CC - int 3 Core.dll+33DEA: CC - int 3 } Ссылка на комментарий Поделиться на другие сайты Поделиться
Tzeentch Опубликовано 28 февраля, 2022 Автор Поделиться Опубликовано 28 февраля, 2022 ResetAlarmScore: Спойлер { Game : SplinterCell2.exe Version: Date : 2022-02-27 Author : Templar This script does blah blah blah Данная функция не даёт подниматься счётчику тревоги. Только для миссии с лимитом в три тревоги. В миссиях с лимитом в одну тревогу - это бесполезно. } [ENABLE] aobscanmodule(ResetAlarmScore,Core.dll,8B 08 8B 54 ? ? 89 0A C2 ? ? 33 D2 66 85 ? 76 ? 8B 44 ? ? 56 8B 74 ? ? 57 2B F0 8D 64 ? ? 8B 3C ? 89 38 0F B7 ? ? 42 83 C0 ? 3B D7 7C ? 5F 5E C2 ? ? CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC 8B 44 ? ? 85 C0 74 ? 8B 54) // should be unique alloc(newmem,$1000) label(code) label(return) newmem: cmp [eax+110],#256 ///сравниваем с статичным смещением jne code ///прыгаем если не равно mov [eax],#0 ///заморозка на нуле. значение выше 3х ломает игру code: mov ecx,[eax] mov edx,[esp+04] jmp return ResetAlarmScore: jmp newmem nop return: registersymbol(ResetAlarmScore) [DISABLE] ResetAlarmScore: db 8B 08 8B 54 24 04 unregistersymbol(ResetAlarmScore) dealloc(newmem) { Address of signature = Core.dll + 0x0005E79E "\x8B\x08\x8B\x54\x00\x00\x89\x0A\xC2\x00\x00\x33\xD2\x66\x85\x00\x76\x00\x8B\x44\x00\x00\x56\x8B\x74\x00\x00\x57\x2B\xF0\x8D\x64\x00\x00\x8B\x3C\x00\x89\x38\x0F\xB7\x00\x00\x42\x83\xC0\x00\x3B\xD7\x7C\x00\x5F\x5E\xC2\x00\x00\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\x8B\x44\x00\x00\x85\xC0\x74\x00\x8B\x54", "xxxx??xxx??xxxx?x?xx??xxx??xxxxx??xx?xxxx??xxx?xxx?xxx??xxxxxxxxxxxxxxxxxxxxxxxxxxxx??xxx?xx" "8B 08 8B 54 ? ? 89 0A C2 ? ? 33 D2 66 85 ? 76 ? 8B 44 ? ? 56 8B 74 ? ? 57 2B F0 8D 64 ? ? 8B 3C ? 89 38 0F B7 ? ? 42 83 C0 ? 3B D7 7C ? 5F 5E C2 ? ? CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC 8B 44 ? ? 85 C0 74 ? 8B 54" // ORIGINAL CODE - INJECTION POINT: Core.dll+5E79E Core.dll+5E78A: CC - int 3 Core.dll+5E78B: CC - int 3 Core.dll+5E78C: CC - int 3 Core.dll+5E78D: CC - int 3 Core.dll+5E78E: CC - int 3 Core.dll+5E78F: CC - int 3 Core.dll+5E790: 66 8B 41 38 - mov ax,[ecx+38] Core.dll+5E794: 66 3D 01 00 - cmp ax,0001 Core.dll+5E798: 75 0F - jne Core.dll+5E7A9 Core.dll+5E79A: 8B 44 24 08 - mov eax,[esp+08] // ---------- INJECTING HERE ---------- Core.dll+5E79E: 8B 08 - mov ecx,[eax] // ---------- DONE INJECTING ---------- Core.dll+5E7A0: 8B 54 24 04 - mov edx,[esp+04] Core.dll+5E7A4: 89 0A - mov [edx],ecx Core.dll+5E7A6: C2 0C 00 - ret 000C Core.dll+5E7A9: 33 D2 - xor edx,edx Core.dll+5E7AB: 66 85 C0 - test ax,ax Core.dll+5E7AE: 76 23 - jna Core.dll+5E7D3 Core.dll+5E7B0: 8B 44 24 04 - mov eax,[esp+04] Core.dll+5E7B4: 56 - push esi Core.dll+5E7B5: 8B 74 24 0C - mov esi,[esp+0C] Core.dll+5E7B9: 57 - push edi } Данная функция не даёт подниматься счётчику тревоги. Только для миссии с лимитом в три тревоги. В миссиях с лимитом в одну тревогу - это бесполезно. Ссылка на комментарий Поделиться на другие сайты Поделиться
Tzeentch Опубликовано 1 марта, 2022 Автор Поделиться Опубликовано 1 марта, 2022 Поправил фильтр для счётчика тревоги. С предыдущим скриптом могло вылетать. Работает с лимитом в три тревоги. В миссиях с лимитом в одну тревогу - это бесполезно. NoAlarmScore: Спойлер { Game : SplinterCell2.exe Version: Date : 2022-02-27 Author : Templar This script does blah blah blah Данная функция не даёт подниматься счётчику тревоги. Только для миссии с лимитом в три тревоги. В миссиях с лимитом в одну тревогу - это бесполезно. } [ENABLE] aobscanmodule(NoAlarmScore,Core.dll,8B 08 8B 54 ? ? 89 0A C2 ? ? 33 D2 66 85 ? 76 ? 8B 44 ? ? 56 8B 74 ? ? 57 2B F0 8D 64 ? ? 8B 3C ? 89 38 0F B7 ? ? 42 83 C0 ? 3B D7 7C ? 5F 5E C2 ? ? CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC 8B 44 ? ? 85 C0 74 ? 8B 54) // should be unique alloc(newmem,$1000) label(code) label(return) newmem: cmp [eax+C],#75 ///сравниваем с статичным смещением jne code ///прыгаем если не равно mov [eax],#0 ///обнуляем тревогу code: mov ecx,[eax] mov edx,[esp+04] jmp return NoAlarmScore: jmp newmem nop return: registersymbol(NoAlarmScore) [DISABLE] NoAlarmScore: db 8B 08 8B 54 24 04 unregistersymbol(NoAlarmScore) dealloc(newmem) { Address of signature = Core.dll + 0x0005E79E "\x8B\x08\x8B\x54\x00\x00\x89\x0A\xC2\x00\x00\x33\xD2\x66\x85\x00\x76\x00\x8B\x44\x00\x00\x56\x8B\x74\x00\x00\x57\x2B\xF0\x8D\x64\x00\x00\x8B\x3C\x00\x89\x38\x0F\xB7\x00\x00\x42\x83\xC0\x00\x3B\xD7\x7C\x00\x5F\x5E\xC2\x00\x00\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\x8B\x44\x00\x00\x85\xC0\x74\x00\x8B\x54", "xxxx??xxx??xxxx?x?xx??xxx??xxxxx??xx?xxxx??xxx?xxx?xxx??xxxxxxxxxxxxxxxxxxxxxxxxxxxx??xxx?xx" "8B 08 8B 54 ? ? 89 0A C2 ? ? 33 D2 66 85 ? 76 ? 8B 44 ? ? 56 8B 74 ? ? 57 2B F0 8D 64 ? ? 8B 3C ? 89 38 0F B7 ? ? 42 83 C0 ? 3B D7 7C ? 5F 5E C2 ? ? CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC 8B 44 ? ? 85 C0 74 ? 8B 54" // ORIGINAL CODE - INJECTION POINT: Core.dll+5E79E Core.dll+5E78A: CC - int 3 Core.dll+5E78B: CC - int 3 Core.dll+5E78C: CC - int 3 Core.dll+5E78D: CC - int 3 Core.dll+5E78E: CC - int 3 Core.dll+5E78F: CC - int 3 Core.dll+5E790: 66 8B 41 38 - mov ax,[ecx+38] Core.dll+5E794: 66 3D 01 00 - cmp ax,0001 Core.dll+5E798: 75 0F - jne Core.dll+5E7A9 Core.dll+5E79A: 8B 44 24 08 - mov eax,[esp+08] // ---------- INJECTING HERE ---------- Core.dll+5E79E: 8B 08 - mov ecx,[eax] // ---------- DONE INJECTING ---------- Core.dll+5E7A0: 8B 54 24 04 - mov edx,[esp+04] Core.dll+5E7A4: 89 0A - mov [edx],ecx Core.dll+5E7A6: C2 0C 00 - ret 000C Core.dll+5E7A9: 33 D2 - xor edx,edx Core.dll+5E7AB: 66 85 C0 - test ax,ax Core.dll+5E7AE: 76 23 - jna Core.dll+5E7D3 Core.dll+5E7B0: 8B 44 24 04 - mov eax,[esp+04] Core.dll+5E7B4: 56 - push esi Core.dll+5E7B5: 8B 74 24 0C - mov esi,[esp+0C] Core.dll+5E7B9: 57 - push edi } Ссылка на комментарий Поделиться на другие сайты Поделиться
SerVick Опубликовано 11 марта, 2022 Поделиться Опубликовано 11 марта, 2022 В 28.02.2022 в 7:16 PM, Tzeentch сказал: ResetAlarmScore: Показать контент { Game : SplinterCell2.exe Version: Date : 2022-02-27 Author : Templar This script does blah blah blah Данная функция не даёт подниматься счётчику тревоги. Только для миссии с лимитом в три тревоги. В миссиях с лимитом в одну тревогу - это бесполезно. } [ENABLE] aobscanmodule(ResetAlarmScore,Core.dll,8B 08 8B 54 ? ? 89 0A C2 ? ? 33 D2 66 85 ? 76 ? 8B 44 ? ? 56 8B 74 ? ? 57 2B F0 8D 64 ? ? 8B 3C ? 89 38 0F B7 ? ? 42 83 C0 ? 3B D7 7C ? 5F 5E C2 ? ? CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC 8B 44 ? ? 85 C0 74 ? 8B 54) // should be unique alloc(newmem,$1000) label(code) label(return) newmem: cmp [eax+110],#256 ///сравниваем с статичным смещением jne code ///прыгаем если не равно mov [eax],#0 ///заморозка на нуле. значение выше 3х ломает игру code: mov ecx,[eax] mov edx,[esp+04] jmp return ResetAlarmScore: jmp newmem nop return: registersymbol(ResetAlarmScore) [DISABLE] ResetAlarmScore: db 8B 08 8B 54 24 04 unregistersymbol(ResetAlarmScore) dealloc(newmem) { Address of signature = Core.dll + 0x0005E79E "\x8B\x08\x8B\x54\x00\x00\x89\x0A\xC2\x00\x00\x33\xD2\x66\x85\x00\x76\x00\x8B\x44\x00\x00\x56\x8B\x74\x00\x00\x57\x2B\xF0\x8D\x64\x00\x00\x8B\x3C\x00\x89\x38\x0F\xB7\x00\x00\x42\x83\xC0\x00\x3B\xD7\x7C\x00\x5F\x5E\xC2\x00\x00\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\x8B\x44\x00\x00\x85\xC0\x74\x00\x8B\x54", "xxxx??xxx??xxxx?x?xx??xxx??xxxxx??xx?xxxx??xxx?xxx?xxx??xxxxxxxxxxxxxxxxxxxxxxxxxxxx??xxx?xx" "8B 08 8B 54 ? ? 89 0A C2 ? ? 33 D2 66 85 ? 76 ? 8B 44 ? ? 56 8B 74 ? ? 57 2B F0 8D 64 ? ? 8B 3C ? 89 38 0F B7 ? ? 42 83 C0 ? 3B D7 7C ? 5F 5E C2 ? ? CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC 8B 44 ? ? 85 C0 74 ? 8B 54" // ORIGINAL CODE - INJECTION POINT: Core.dll+5E79E Core.dll+5E78A: CC - int 3 Core.dll+5E78B: CC - int 3 Core.dll+5E78C: CC - int 3 Core.dll+5E78D: CC - int 3 Core.dll+5E78E: CC - int 3 Core.dll+5E78F: CC - int 3 Core.dll+5E790: 66 8B 41 38 - mov ax,[ecx+38] Core.dll+5E794: 66 3D 01 00 - cmp ax,0001 Core.dll+5E798: 75 0F - jne Core.dll+5E7A9 Core.dll+5E79A: 8B 44 24 08 - mov eax,[esp+08] // ---------- INJECTING HERE ---------- Core.dll+5E79E: 8B 08 - mov ecx,[eax] // ---------- DONE INJECTING ---------- Core.dll+5E7A0: 8B 54 24 04 - mov edx,[esp+04] Core.dll+5E7A4: 89 0A - mov [edx],ecx Core.dll+5E7A6: C2 0C 00 - ret 000C Core.dll+5E7A9: 33 D2 - xor edx,edx Core.dll+5E7AB: 66 85 C0 - test ax,ax Core.dll+5E7AE: 76 23 - jna Core.dll+5E7D3 Core.dll+5E7B0: 8B 44 24 04 - mov eax,[esp+04] Core.dll+5E7B4: 56 - push esi Core.dll+5E7B5: 8B 74 24 0C - mov esi,[esp+0C] Core.dll+5E7B9: 57 - push edi } Только для миссии с лимитом в три тревоги. Не знай, я просто далее не проходил. Но думаю в структуре можно посмотреть.., отталкиваясь от этого адреса, по идее не далеко должно быть и с одной тревогой, хотя не факт.. Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Пожалуйста, войдите, чтобы комментировать
Вы сможете оставить комментарий после входа в
Войти