Garik66 Опубликовано 23 января, 2017 Поделиться Опубликовано 23 января, 2017 (изменено) 1. Сам запрос. 2. Скрипт "Infinite time rollback": Показать контент { Game : Prince of Persia.exe Version: Date : 2017-01-23 Author : Garik66 This script does blah blah blah } [ENABLE] aobscanmodule(rollback,Prince of Persia.exe,89 7B 18 56 8B 73 08 80 7E 10 00 74 13) // should be unique alloc(newmem,$1000) label(code) label(return) registersymbol(rollback) newmem: mov edi,[ebx+2c] code: mov [ebx+18],edi push esi mov esi,[ebx+08] jmp return rollback: jmp newmem db 90 90 return: [DISABLE] rollback: db 89 7B 18 56 8B 73 08 unregistersymbol(rollback) dealloc(newmem) { // ORIGINAL CODE - INJECTION POINT: "Prince of Persia.exe"+13FBBA "Prince of Persia.exe"+13FBAA: CC - int 3 "Prince of Persia.exe"+13FBAB: CC - int 3 "Prince of Persia.exe"+13FBAC: CC - int 3 "Prince of Persia.exe"+13FBAD: CC - int 3 "Prince of Persia.exe"+13FBAE: CC - int 3 "Prince of Persia.exe"+13FBAF: CC - int 3 "Prince of Persia.exe"+13FBB0: 53 - push ebx "Prince of Persia.exe"+13FBB1: 8B 5C 24 08 - mov ebx,[esp+08] "Prince of Persia.exe"+13FBB5: 39 7B 18 - cmp [ebx+18],edi "Prince of Persia.exe"+13FBB8: 74 27 - je "Prince of Persia.exe"+13FBE1 // ---------- INJECTING HERE ---------- "Prince of Persia.exe"+13FBBA: 89 7B 18 - mov [ebx+18],edi "Prince of Persia.exe"+13FBBD: 56 - push esi "Prince of Persia.exe"+13FBBE: 8B 73 08 - mov esi,[ebx+08] // ---------- DONE INJECTING ---------- "Prince of Persia.exe"+13FBC1: 80 7E 10 00 - cmp byte ptr [esi+10],00 "Prince of Persia.exe"+13FBC5: 74 13 - je "Prince of Persia.exe"+13FBDA "Prince of Persia.exe"+13FBC7: 8B CE - mov ecx,esi "Prince of Persia.exe"+13FBC9: 8B 01 - mov eax,[ecx] "Prince of Persia.exe"+13FBCB: 8B 50 04 - mov edx,[eax+04] "Prince of Persia.exe"+13FBCE: 8B 76 04 - mov esi,[esi+04] "Prince of Persia.exe"+13FBD1: 57 - push edi "Prince of Persia.exe"+13FBD2: FF D2 - call edx "Prince of Persia.exe"+13FBD4: 80 7E 10 00 - cmp byte ptr [esi+10],00 "Prince of Persia.exe"+13FBD8: 75 ED - jne "Prince of Persia.exe"+13FBC7 } 3. Видео: 4. Табличка: Выложил здесь. Изменено 29 января, 2017 пользователем Garik66 2 Ссылка на комментарий Поделиться на другие сайты Поделиться
SergBrNord Опубликовано 23 января, 2017 Поделиться Опубликовано 23 января, 2017 Гарик, нужно помочь со сломом таймера отмотки, а не числа количества отмоток. Если по простому - то это полукруглая заполняющаяся полоса под красной полоской здоровья. Я вышел на статический адрес значения, которое если приморозить, то морозится вся игра. Вот этот адрес; просто добавь: "Prince of Persia.exe"+D09A08 Сделать, естественно, надо так, чтобы полоска не убывала. P.S. На эту функцию, которая у тебя, надо писать фильтр, т.к. она ещё работает и со здоровьем боссов (по крайней мере с первым - точно). Вот мой, ещё не опубликованный скрипт. Показать контент { Game : Prince of Persia.exe Version: 1.0 Date : 2017-01-14 Author : SergBrNord } [ENABLE] //code from here to '[DISABLE]' will be used to enable the cheat aobscanmodule(ENERGY_SLOTS,Prince of Persia.exe,8B 48 70 89 4C 24 10) // should be unique alloc(newmem,$1000) label(code) label(return) newmem: mov [eax+70], 9 code: mov ecx,[eax+70] mov [esp+10],ecx jmp return ENERGY_SLOTS: jmp newmem nop nop return: registersymbol(ENERGY_SLOTS) [DISABLE] //code from here till the end of the code will be used to disable the cheat ENERGY_SLOTS: db 8B 48 70 89 4C 24 10 unregistersymbol(ENERGY_SLOTS) dealloc(newmem) { // ORIGINAL CODE - INJECTION POINT: "Prince of Persia.exe"+34DAB2 "Prince of Persia.exe"+34DA97: 51 - push ecx "Prince of Persia.exe"+34DA98: E8 73 E5 FA FF - call "Prince of Persia.exe"+2FC010 "Prince of Persia.exe"+34DA9D: EB 31 - jmp "Prince of Persia.exe"+34DAD0 "Prince of Persia.exe"+34DA9F: 33 C9 - xor ecx,ecx "Prince of Persia.exe"+34DAA1: 51 - push ecx "Prince of Persia.exe"+34DAA2: E8 69 E5 FA FF - call "Prince of Persia.exe"+2FC010 "Prince of Persia.exe"+34DAA7: EB 27 - jmp "Prince of Persia.exe"+34DAD0 "Prince of Persia.exe"+34DAA9: A1 58 53 1A 01 - mov eax,["Prince of Persia.exe"+DA5358] "Prince of Persia.exe"+34DAAE: 85 C0 - test eax,eax "Prince of Persia.exe"+34DAB0: 74 09 - je "Prince of Persia.exe"+34DABB // ---------- INJECTING HERE ---------- "Prince of Persia.exe"+34DAB2: 8B 48 70 - mov ecx,[eax+70] "Prince of Persia.exe"+34DAB5: 89 4C 24 10 - mov [esp+10],ecx // ---------- DONE INJECTING ---------- "Prince of Persia.exe"+34DAB9: EB 08 - jmp "Prince of Persia.exe"+34DAC3 "Prince of Persia.exe"+34DABB: C7 44 24 10 00 00 00 00 - mov [esp+10],00000000 "Prince of Persia.exe"+34DAC3: 8D 7C 24 10 - lea edi,[esp+10] "Prince of Persia.exe"+34DAC7: 8D 74 24 14 - lea esi,[esp+14] "Prince of Persia.exe"+34DACB: E8 30 74 D2 FF - call "Prince of Persia.exe"+74F00 "Prince of Persia.exe"+34DAD0: 8B 7D 08 - mov edi,[ebp+08] "Prince of Persia.exe"+34DAD3: 8B 37 - mov esi,[edi] "Prince of Persia.exe"+34DAD5: 8B C6 - mov eax,esi "Prince of Persia.exe"+34DAD7: E8 74 04 01 00 - call "Prince of Persia.exe"+35DF50 "Prince of Persia.exe"+34DADC: 8B 17 - mov edx,[edi] } P.P.S. Про dxwnd узнал на пред-предпоследнем стриме Руслана, а так, в окне ломал. Хардкор, етить его +) Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 23 января, 2017 Автор Поделиться Опубликовано 23 января, 2017 В 23.01.2017 в 19:25, SergBrNord сказал: нужно помочь со сломом таймера отмотки, а не числа количества отмоток. Показать SergBrNord, добрый вечер. Эт я в курсе и в видио, если смотрел, я это сказал. В 23.01.2017 в 19:25, SergBrNord сказал: Сделать, естественно, надо так, чтобы полоска не убывала. Показать Это для тебя естественно - ты в эту игру играешь. Я в эту игру не играю. По моим наблюдениям: Полоска, при нажатии на Q вначале убывает, доходит до какого-то момента (видимо момента, когда принц в безопасности по расчётам игрового кода), а потом течёт по нормальному течению времени. Вот здесь и вопрос - тебе нужно, чтобы убывание происходило быстро, или чтобы восстановление было быстрым? Что именно из этого и поясни на что это в игре влияет. В 23.01.2017 в 19:25, SergBrNord сказал: Я вышел на статический адрес значения, которое если приморозить, то морозится вся игра. Вот этот адрес; просто добавь: "Prince of Persia.exe"+D09A08 Показать Я его добавлял пока видео грузилось, и в нём тоже самое - сперва убывание, а потом возрастание. Это скорее всего адрес, как я тебе и писал, влияющий на всю игру. Но через него (а можно и без него) выйти на адрес именно таймера убывания. Т.е. с поиском я уже давно определился, 4 байта, неизвестное, а вот увеличилось (или уменьшилось, но скорее всего увеличилось) нужно уже смотреть будет в игре. И при достижении момента - это значение равно 0. В 23.01.2017 в 19:25, SergBrNord сказал: На эту функцию, которая у тебя, надо писать фильтр, Показать На какую именно? В моём скрипте "Infinite time rollback"? mov [ebx+18],edi Эту? 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
SergBrNord Опубликовано 25 января, 2017 Поделиться Опубликовано 25 января, 2017 В 23.01.2017 в 20:16, Garik66 сказал: Вот здесь и вопрос - тебе нужно, чтобы убывание происходило быстро, или чтобы восстановление было быстрым? Что именно из этого и поясни на что это в игре влияет. Показать Идеально было бы, чтобы полоска вообще не убывала. В 23.01.2017 в 20:16, Garik66 сказал: Полоска, при нажатии на Q вначале убывает, доходит до какого-то момента (видимо момента, когда принц в безопасности по расчётам игрового кода), а потом течёт по нормальному течению времени. Показать Если смотреть по всем предыдущим играм серии - просто идёт запись действий игрока до определённого времени, около 20 секунд или выше, а при включении функции, обращает все действия игрока, вплоть до восстановления объектов и НПС. В 23.01.2017 в 20:16, Garik66 сказал: mov [ebx+18],edi Показать Да, работает со здоровьем боссов, как ни странно. Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 27 января, 2017 Автор Поделиться Опубликовано 27 января, 2017 В 25.01.2017 в 16:40, SergBrNord сказал: Идеально было бы, чтобы полоска вообще не убывала. Показать Теперь понято. На выходных посмотрю. В 25.01.2017 в 16:40, SergBrNord сказал: Да, работает со здоровьем боссов, как ни странно. Показать Ну фильтр я писать точно не буду (это уже сам - думаю там ничего сложного нет), играть в игру до момента встречи с босом я не буду. Ссылка на комментарий Поделиться на другие сайты Поделиться
SergBrNord Опубликовано 27 января, 2017 Поделиться Опубликовано 27 января, 2017 В 27.01.2017 в 05:39, Garik66 сказал: Ну фильтр я писать точно не буду (это уже сам - думаю там ничего сложного нет), играть в игру до момента встречи с босом я не буду. Показать У меня есть скрипт же свой =) Показать контент Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 27 января, 2017 Автор Поделиться Опубликовано 27 января, 2017 (изменено) В 27.01.2017 в 17:52, SergBrNord сказал: У меня есть скрипт же свой Показать А точно. Тогда тем более. Сегодня посмотрел твой адрес: В 23.01.2017 в 19:25, SergBrNord сказал: Вот этот адрес; просто добавь: "Prince of Persia.exe"+D09A08 Показать Написал пару, тройку скриптов - эффекты интересные (например пол не проваливается при включённом скрипте, проходишь по нему, отключаешь скрипт и идёшь дальше, другой эффект - полное расходование полоски, ну и третий - как ты и описывал ранее - замирание игры), но не то что ты хочешь. В воскресение попробую всё-таки выйти на адрес именно отнимания полоски. В 23.01.2017 в 20:16, Garik66 сказал: выйти на адрес именно таймера убывания Показать Изменено 27 января, 2017 пользователем Garik66 Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 29 января, 2017 Автор Поделиться Опубликовано 29 января, 2017 (изменено) В 27.01.2017 в 20:16, Garik66 сказал: В воскресение попробую всё-таки выйти на адрес именно отнимания полоски. Показать Вот, что получилось: Видео - звук к сожалению (из-за конфликта Bandicam и dxwnd) запаздывает. СкриптЫ: "Без провала пола.": Показать контент { Game : Prince of Persia.exe Version: Date : 2017-01-29 Author : Garik66 This script does blah blah blah } [ENABLE] aobscanmodule(INJECT1,Prince of Persia.exe,8B 4E 18 03 C8 89) // should be unique alloc(newmem,$1000) label(code) label(return) registersymbol(INJECT1) newmem: cmp esi,011099F0 jne code xor eax,eax code: mov ecx,[esi+18] add ecx,eax jmp return INJECT1: jmp newmem return: [DISABLE] INJECT1: db 8B 4E 18 03 C8 unregistersymbol(INJECT1) dealloc(newmem) { // ORIGINAL CODE - INJECTION POINT: "Prince of Persia.exe"+59061 "Prince of Persia.exe"+59038: 89 44 24 0C - mov [esp+0C],eax "Prince of Persia.exe"+5903C: DF 6C 24 08 - fild qword ptr [esp+08] "Prince of Persia.exe"+59040: 81 E1 00 00 00 80 - and ecx,80000000 "Prince of Persia.exe"+59046: 89 4C 24 0C - mov [esp+0C],ecx "Prince of Persia.exe"+5904A: C7 44 24 08 00 00 00 00 - mov [esp+08],00000000 "Prince of Persia.exe"+59052: DF 6C 24 08 - fild qword ptr [esp+08] "Prince of Persia.exe"+59056: D9 E0 - fchs "Prince of Persia.exe"+59058: DE C1 - faddp "Prince of Persia.exe"+5905A: DE C9 - fmulp st(1),st(0) "Prince of Persia.exe"+5905C: E8 45 A7 A4 00 - call "Prince of Persia.exe"+AA37A6 // ---------- INJECTING HERE ---------- "Prince of Persia.exe"+59061: 8B 4E 18 - mov ecx,[esi+18] "Prince of Persia.exe"+59064: 03 C8 - add ecx,eax // ---------- DONE INJECTING ---------- "Prince of Persia.exe"+59066: 89 44 24 08 - mov [esp+08],eax "Prince of Persia.exe"+5906A: 8B 46 1C - mov eax,[esi+1C] "Prince of Persia.exe"+5906D: 13 C2 - adc eax,edx "Prince of Persia.exe"+5906F: 89 54 24 0C - mov [esp+0C],edx "Prince of Persia.exe"+59073: 85 C0 - test eax,eax "Prince of Persia.exe"+59075: 7F 0A - jg "Prince of Persia.exe"+59081 "Prince of Persia.exe"+59077: 7C 04 - jl "Prince of Persia.exe"+5907D "Prince of Persia.exe"+59079: 85 C9 - test ecx,ecx "Prince of Persia.exe"+5907B: 77 04 - ja "Prince of Persia.exe"+59081 "Prince of Persia.exe"+5907D: 33 C9 - xor ecx,ecx } "Без убывания полоски": Показать контент { Game : Prince of Persia.exe Version: Date : 2017-01-29 Author : Garik66 This script does blah blah blah } [ENABLE] aobscanmodule(INJECT,Prince of Persia.exe,D9 44 24 1C 51 D9 1C 24 F3) // should be unique alloc(newmem,$1000) label(code) label(return) registersymbol(INJECT) newmem: mov dword ptr [esp+1C],(float)1 code: fld dword ptr [esp+1C] push ecx jmp return INJECT: jmp newmem return: [DISABLE] INJECT: db D9 44 24 1C 51 unregistersymbol(INJECT) dealloc(newmem) { // ORIGINAL CODE - INJECTION POINT: "Prince of Persia.exe"+34E651 "Prince of Persia.exe"+34E621: F3 0F 5E 44 24 24 - divss xmm0,[esp+24] "Prince of Persia.exe"+34E627: F3 0F 10 4F 60 - movss xmm1,[edi+60] "Prince of Persia.exe"+34E62C: F3 0F 10 15 70 76 FE 00 - movss xmm2,["Prince of Persia.exe"+BE7670] "Prince of Persia.exe"+34E634: 8D 47 4C - lea eax,[edi+4C] "Prince of Persia.exe"+34E637: F3 0F 5C C8 - subss xmm1,xmm0 "Prince of Persia.exe"+34E63B: 0F 54 CA - andps xmm1,xmm2 "Prince of Persia.exe"+34E63E: F3 0F 10 15 70 36 01 01 - movss xmm2,["Prince of Persia.exe"+C13670] "Prince of Persia.exe"+34E646: 0F 2F D1 - comiss xmm2,xmm1 "Prince of Persia.exe"+34E649: F3 0F 11 44 24 1C - movss [esp+1C],xmm0 "Prince of Persia.exe"+34E64F: 73 12 - jae "Prince of Persia.exe"+34E663 // ---------- INJECTING HERE ---------- "Prince of Persia.exe"+34E651: D9 44 24 1C - fld dword ptr [esp+1C] "Prince of Persia.exe"+34E655: 51 - push ecx // ---------- DONE INJECTING ---------- "Prince of Persia.exe"+34E656: D9 1C 24 - fstp dword ptr [esp] "Prince of Persia.exe"+34E659: F3 0F 11 40 14 - movss [eax+14],xmm0 "Prince of Persia.exe"+34E65E: E8 AD C8 D0 FF - call "Prince of Persia.exe"+5AF10 "Prince of Persia.exe"+34E663: 5E - pop esi "Prince of Persia.exe"+34E664: 5B - pop ebx "Prince of Persia.exe"+34E665: 8B E5 - mov esp,ebp "Prince of Persia.exe"+34E667: 5D - pop ebp "Prince of Persia.exe"+34E668: C2 04 00 - ret 0004 "Prince of Persia.exe"+34E66B: CC - int 3 "Prince of Persia.exe"+34E66C: CC - int 3 } Видео: Табличка: Prince of Persia.CT Изменено 29 января, 2017 пользователем Garik66 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Xipho Опубликовано 29 января, 2017 Поделиться Опубликовано 29 января, 2017 Гарик, а зачем Бандикам? Пиши с помощью OBS Studio - она бесплатна и для уроков (как и для стримов, впрочем) - самое оно. Или есть еще платная PlayClaw (я уроки с ее помощью пишу, и одни стрим с ее помощью тоже проводил). Ну и Mirillis Action, тоже платная, но в последнее время я ее почти не использую - перестала нравиться. Ссылка на комментарий Поделиться на другие сайты Поделиться
SergBrNord Опубликовано 29 января, 2017 Поделиться Опубликовано 29 января, 2017 В 29.01.2017 в 11:13, Garik66 сказал: Вот, что получилось Показать Отлично получилось! Я понял в чём ошибка - на каком-то из этапов моих отсевов я постоянно по нулю чистил. Предполагал, что логика та же что и в старых, но почему-то не учёл, что под принцем новый движок. Я бы хотел попросить тебя сломать ещё и опыт.. но как-то совестно =) Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 29 января, 2017 Автор Поделиться Опубликовано 29 января, 2017 В 29.01.2017 в 18:13, SergBrNord сказал: Отлично получилось! Показать Благодарю! В 29.01.2017 в 18:13, SergBrNord сказал: Я бы хотел попросить тебя сломать ещё и опыт Показать Если не к спеху, то посмотрю (на следующих длинных выходных). Если согласен - скинь в личку сейв с опытом, где опыт можно посмотреть и за что он в игре начисляется. Ссылка на комментарий Поделиться на другие сайты Поделиться
SergBrNord Опубликовано 30 января, 2017 Поделиться Опубликовано 30 января, 2017 В 29.01.2017 в 18:31, Garik66 сказал: Благодарю! Если не к спеху, то посмотрю (на следующих длинных выходных). Если согласен - скинь в личку сейв с опытом, где опыт можно посмотреть и за что он в игре начисляется. Показать Согласен, но я пока доламываю таймер времени. То что ты нашёл (огромное спасибо) - это всего лишь визуалка. Но! Вверх по коду есть следующее: Показать контент "Prince of Persia.exe"+34E5F5: 8B 44 24 14 - mov eax,[esp+14] "Prince of Persia.exe"+34E5F9: F3 0F 10 80 98 00 00 00 - movss xmm0,[eax+00000098] "Prince of Persia.exe"+34E601: F3 0F 10 0D 1C 73 10 01 - movss xmm1,["Prince of Persia.exe"+D0731C] [11.50] "Prince of Persia.exe"+34E609: F3 0F 5C 80 94 00 00 00 - subss xmm0,[eax+00000094] "Prince of Persia.exe"+34E611: F3 0F 5C 0D 24 FC FE 00 - subss xmm1,["Prince of Persia.exe"+BEFC24] [0.50] Первый - 100% содержит количество времени, на которое разрешена отмотка. Я записал по "Prince of Persia.exe"+D0731C значение в 20 - и таймер увеличился на 9,5 секунд. Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 31 января, 2017 Автор Поделиться Опубликовано 31 января, 2017 В 30.01.2017 в 18:58, SergBrNord сказал: То что ты нашёл (огромное спасибо) - это всего лишь визуалка. Показать Я об этом в видео сказал что адрес во float - это именно визуалка. Я думал, что через стек передаётся реальное значение, котрое потом используется. Ну ещё я сказал, что это нужно тестить, но я этого делать не буду. И с визуалки теперь легче найти реальное значение. Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения