Garik66 Опубликовано 3 апреля, 2019 Поделиться Опубликовано 3 апреля, 2019 Скрипт: "Эмуляция" Спойлер { Game : Tutorial-i386.exe Version: Date : 2019-04-03 Author : Garik66 This script does blah blah blah } [ENABLE] aobscanmodule(INJECT,Tutorial-i386.exe,81 BB 80 04 00 00 E8 03 00 00) // should be unique alloc(newmem,$1000) label(code) label(return) label(Value) registersymbol(Value) label(Value1) registersymbol(Value1) label(Value2) registersymbol(Value2) label(Value3) registersymbol(Value3) label(Cikl) registersymbol(INJECT) newmem: lea ecx,[Value2] mov [Value],ecx push edx mov edx,0 lea ecx,[Value] Cikl: push [ecx+edx*4] pop [Value3] inc edx cmp edx,3 je @f jmp Cikl @@: pop edx code: cmp [ebx+00000480],000003E8 jmp return Value: dd 0 Value1: dd 7 Value2: dd #66 Value3: dd 0 INJECT: jmp newmem db 90 90 90 90 90 return: [DISABLE] INJECT: db 81 BB 80 04 00 00 E8 03 00 00 unregistersymbol(Value) unregistersymbol(Value1) unregistersymbol(Value2) unregistersymbol(Value3) unregistersymbol(INJECT) dealloc(newmem) { // ORIGINAL CODE - INJECTION POINT: "Tutorial-i386.exe"+24073 "Tutorial-i386.exe"+24061: C9 - leave "Tutorial-i386.exe"+24062: C3 - ret "Tutorial-i386.exe"+24063: 00 00 - add [eax],al "Tutorial-i386.exe"+24065: 00 00 - add [eax],al "Tutorial-i386.exe"+24067: 00 00 - add [eax],al "Tutorial-i386.exe"+24069: 00 00 - add [eax],al "Tutorial-i386.exe"+2406B: 00 00 - add [eax],al "Tutorial-i386.exe"+2406D: 00 00 - add [eax],al "Tutorial-i386.exe"+2406F: 00 53 89 - add [ebx-77],dl "Tutorial-i386.exe"+24072: C3 - ret // ---------- INJECTING HERE ---------- "Tutorial-i386.exe"+24073: 81 BB 80 04 00 00 E8 03 00 00 - cmp [ebx+00000480],000003E8 // ---------- DONE INJECTING ---------- "Tutorial-i386.exe"+2407D: 75 2C - jne Tutorial-i386.exe+240AB "Tutorial-i386.exe"+2407F: 8B 83 68 04 00 00 - mov eax,[ebx+00000468] "Tutorial-i386.exe"+24085: B2 01 - mov dl,01 "Tutorial-i386.exe"+24087: 8B 8B 68 04 00 00 - mov ecx,[ebx+00000468] "Tutorial-i386.exe"+2408D: 8B 09 - mov ecx,[ecx] "Tutorial-i386.exe"+2408F: FF 91 20 02 00 00 - call dword ptr [ecx+00000220] "Tutorial-i386.exe"+24095: 8B 83 78 04 00 00 - mov eax,[ebx+00000478] "Tutorial-i386.exe"+2409B: B2 00 - mov dl,00 "Tutorial-i386.exe"+2409D: 8B 8B 78 04 00 00 - mov ecx,[ebx+00000478] "Tutorial-i386.exe"+240A3: 8B 09 - mov ecx,[ecx] } "Фильтрование" Спойлер { Game : Tutorial-i386.exe Version: Date : 2019-04-03 Author : Garik66 This script does blah blah blah } [ENABLE] aobscan(INJECT1,FF 34 91 8F 05 XX XX XX XX 42) // should be unique alloc(newmem,$1000) label(code) registersymbol(code) label(return) label(Value4) registersymbol(Value4) label(Value66) registersymbol(Value66) registersymbol(INJECT1) newmem: push eax /*cmp edx,0 jne code*/ mov eax,[ecx+edx*4] mov [Value4],eax {$LUA} function CheckAddress(Value4) return readInteger('Value4') ~= nil end {$ASM} mov eax,[eax] mov [Value66],eax code: pop eax readmem(INJECT1,9) jmp return Value4: dd 0 Value66: dd 0 INJECT1: jmp newmem db 90 90 90 90 return: [DISABLE] INJECT1: readmem(code+1,9) unregistersymbol(Value4) unregistersymbol(Value66) unregistersymbol(code) unregistersymbol(INJECT1) dealloc(newmem) { // ORIGINAL CODE - INJECTION POINT: 000E0018 ""+DFFFB: - ?? ""+DFFFC: - ?? ""+DFFFD: - ?? ""+DFFFE: - ?? ""+DFFFF: - ?? ""+E0000: 8D 0D 45 00 0E 00 - lea ecx,[000E0045] ""+E0006: 89 0D 3D 00 0E 00 - mov [000E003D],ecx ""+E000C: 52 - push edx ""+E000D: BA 00 00 00 00 - mov edx,00000000 ""+E0012: 8D 0D 3D 00 0E 00 - lea ecx,[000E003D] // ---------- INJECTING HERE ---------- ""+E0018: FF 34 91 - push [ecx+edx*4] ""+E001B: 8F 05 49 00 0E 00 - pop [000E0049] // ---------- DONE INJECTING ---------- ""+E0021: 42 - inc edx ""+E0022: 83 FA 03 - cmp edx,03 ""+E0025: 0F 84 02 00 00 00 - je 000E002D ""+E002B: EB EB - jmp 000E0018 ""+E002D: 5A - pop edx ""+E002E: 81 BB 80 04 00 00 E8 03 00 00 - cmp [ebx+00000480],000003E8 ""+E0038: E9 40 40 34 00 - jmp Tutorial-i386.exe+2407D ""+E003D: 45 - inc ebp ""+E003E: 00 0E - add [esi],cl ""+E0040: 00 07 - add [edi],al } Ссылка на тему обсуждения - ТЫК Видео: Табличка: Tutorial-i386_030419.CT 1 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Antonshka Опубликовано 3 апреля, 2019 Поделиться Опубликовано 3 апреля, 2019 @Garik66 Я не совсем понял как работает эта часть скрипта Спойлер {$LUA} function CheckAddress(Value4) return readInteger(Value4) ~= nil end В мануале по Луа такое описание: Value4 - область видимости этого параметра только функция CheckAddress. То есть Value4 в функции и Value4 созданный в АА скрипте - это разные переменные. return - возврат результата. Например вызов такой функции Спойлер function CheckAddress(Value4) local a = 2 return Value4 + a end CheckAddress(111) вернет 113. CheckAddress(111) - метод вызова функции с передачей в параметр Value4 значения 111 readInteger(Value4) ~= nil - это операция отношения, следовательно return readInteger(Value4) ~= nil вернет либо false, либо true. Такие вот описания там. @Garik66 В написанных тобою скриптах AA я не увидел вызова функции CheckAddress. Также на видео хотелось бы увидеть поведение туториала в случае если указатель указывает на nil. Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 3 апреля, 2019 Автор Поделиться Опубликовано 3 апреля, 2019 1 час назад, Antonshka сказал: Также на видео хотелось бы увидеть поведение туториала в случае если указатель указывает на nil. Ты прав, похоже эксперимент не удался, нужно будет тестировать на чем-то другом Добиться вылета из туториала не удалось, если в [ecx+edx*4] не указатель, то доходит до инструкции mov eax,[eax] и прыгает назад на push eax по-видимому Дарк Байт в Туториал уже встроил обработку исключений. ЗЫ: сейчас ТС предыдущей темы обсуждения, зайдет, спишемся с ним и попробуем поэскпериментировать в его игре. ЗЫ1 или @MasterGH глянет. Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 3 апреля, 2019 Автор Поделиться Опубликовано 3 апреля, 2019 1 час назад, Antonshka сказал: Value4 - область видимости этого параметра только функция CheckAddress. То есть Value4 в функции и Value4 созданный в АА скрипте - это разные переменные. Не разные при использовании registersymbol(Value3) Value3 глобальная. Ссылка на комментарий Поделиться на другие сайты Поделиться
Antonshka Опубликовано 3 апреля, 2019 Поделиться Опубликовано 3 апреля, 2019 С ковычками да, будет читать адрес переменной созданной в АА скрипте. Вот примеры разных результатов, если кому интересно Спойлер function CheckAddress(Value4) print(readInteger("Value4")) -- Напечатает 7 (в таблице СЕ значение 7). Читает адрес созданный в АА скрипте. print(readInteger(Value4)) -- Ничего не напечатает, так как Value4 = 111, и по адресу 111 ничего нет. print(Value4) -- Напечатает 111 Value4 = getAddress("Value4") print(Value4) -- Напечатает 917535 (в Hex будет адрес 000E001F) print(readInteger(Value4)) -- Напечатает 7 (в таблице СЕ значение 7) end CheckAddress(111) Если я правильно понял из мануала, переменная Value4, которая объявлена здесь - function CheckAddress(Value4), видна только в теле этой функции, но не за её пределами. Это тоже что и объявить local value4 внутри функции. Спойлер a = 1 local b = 2 function CheckAddress(c) local d = 4 end здесь переменная "a" является глобальной, и видна во всем проекте, во всех функциях. "b" - видна только в этом файле и в любых функциях этого файла "с" и "d"- видны только в этой функции Видны только в этой функции- значит вне этой функции невозможно получить доступ к этим переменным. Кроме того чтобы похвастаться, я написал это ещё и с тою целью, чтобы знающие люди найдя здесь неточности, указали мне на них, тем самым сделав наши познания более верными.? Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 3 апреля, 2019 Автор Поделиться Опубликовано 3 апреля, 2019 20 минут назад, Antonshka сказал: С ковычками да Я тебя понял, ошибку в скрипте поправил: Спойлер mov [Value4],eax {$LUA} function CheckAddress(Value4) return readInteger('Value4') ~= nil end {$ASM} mov eax,[eax] ЗЫ: не могу вспомнить, в каких из установленных у меня игр, есть подобная же ситуация с указателями, чтобы довести дело до конца. Как и написал выше на Туториале вылета получить не удалось. Ссылка на комментарий Поделиться на другие сайты Поделиться
Alex2411 Опубликовано 4 апреля, 2019 Поделиться Опубликовано 4 апреля, 2019 В 03.04.2019 в 10:27, Garik66 сказал: Как и написал выше на Туториале вылета получить не удалось. почему ? туториал то же вылетает когда не правильные адреса . вот простой скрипт на шаг 4 туториала срабатывает на кнопку Hit Me . сразу вылетает . Спойлер [ENABLE] aobscanmodule(INJECT,Tutorial-i386.exe+24BCF,D9 9E 94 04 00 00) alloc(newmem,2048) label(code) label(return) registersymbol(INJECT) newmem: push eax mov eax,[ebx] // краш здесь. ebx = 00000004 или другое маленькое mov eax,[eax+04] mov eax,[eax+08] pop eax code: fstp dword ptr [esi+00000494] jmp return INJECT: jmp newmem nop return: [DISABLE] INJECT: db D9 9E 94 04 00 00 unregistersymbol(INJECT) dealloc(newmem) { // ORIGINAL CODE - INJECTION POINT: Tutorial-i386.exe+24BCF Tutorial-i386.exe+24BAB: DB 7D C0 - fstp tword ptr [ebp-40] Tutorial-i386.exe+24BAE: B8 04000000 - mov eax,00000004 Tutorial-i386.exe+24BB3: E8 589DFEFF - call 0040E910 Tutorial-i386.exe+24BB8: 89 45 D0 - mov [ebp-30],eax Tutorial-i386.exe+24BBB: DB 45 D0 - fild dword ptr [ebp-30] Tutorial-i386.exe+24BBE: DB 6D C0 - fld tword ptr [ebp-40] Tutorial-i386.exe+24BC1: DEC1 - faddp Tutorial-i386.exe+24BC3: D9 5D FC - fstp dword ptr [ebp-04] Tutorial-i386.exe+24BC6: D9 45 FC - fld dword ptr [ebp-04] Tutorial-i386.exe+24BC9: D8 AE 94040000 - fsubr dword ptr [esi+00000494] // ---------- INJECTING HERE ---------- Tutorial-i386.exe+24BCF: D9 9E 94040000 - fstp dword ptr [esi+00000494] // ---------- DONE INJECTING ---------- Tutorial-i386.exe+24BD5: FF B6 94040000 - push [esi+00000494] Tutorial-i386.exe+24BDB: 8D 45 BC - lea eax,[ebp-44] Tutorial-i386.exe+24BDE: 50 - push eax Tutorial-i386.exe+24BDF: B9 04000000 - mov ecx,00000004 Tutorial-i386.exe+24BE4: BA 04000000 - mov edx,00000004 Tutorial-i386.exe+24BE9: B8 00000000 - mov eax,00000000 Tutorial-i386.exe+24BEE: E8 BD8C0100 - call 0043D8B0 Tutorial-i386.exe+24BF3: 8B 55 BC - mov edx,[ebp-44] Tutorial-i386.exe+24BF6: 8B 86 80040000 - mov eax,[esi+00000480] Tutorial-i386.exe+24BFC: E8 7FFB0600 - call 00494780 } Ссылка на комментарий Поделиться на другие сайты Поделиться
partoftheworlD Опубликовано 4 апреля, 2019 Поделиться Опубликовано 4 апреля, 2019 Почему бы не погуглить? Обработчик исключений был бы идеальным решением, проверки адресов. https://wiki.cheatengine.org/index.php?title=Auto_Assembler:TRY_EXCEPT Там даже пример есть. Ох уж любители костылей. Цитата In this example, if any error occurs - for example, ecx is zero or ecx+10 is unreadable -, eax will be set to zero: {$try} mov eax,[ecx+10] jmp short noerror {$except} xor eax,eax noerror: Ссылка на комментарий Поделиться на другие сайты Поделиться
MasterGH Опубликовано 7 апреля, 2019 Поделиться Опубликовано 7 апреля, 2019 В 04.04.2019 в 20:58, partoftheworlD сказал: Почему бы не погуглить? Обработчик исключений был бы идеальным решением, проверки адресов. https://wiki.cheatengine.org/index.php?title=Auto_Assembler:TRY_EXCEPT Там даже пример есть. Ох уж любители костылей. Этот пример стоит попробовать, я и забыл про этот синтаксис, но только исключение может быть в другом участке кода, например, из-за записи значения вместо указателя и другой участок кода вызовет исключение. Так что решили проблему? По Lua я не помогу, т.к. пока очень мало времени. По Lua я бы сделал иначе. Там нужно вызывать Lua функцию через AA. Если будет время, покажу пример. Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 7 апреля, 2019 Автор Поделиться Опубликовано 7 апреля, 2019 В 04.04.2019 в 20:29, Alex2411 сказал: вот простой скрипт на шаг 4 туториала срабатывает на кнопку Hit Me . сразу вылетает . вот попробуй Спойлер { Game : Tutorial-i386.exe Version: Date : 2019-04-07 Author : Garik66 This script does blah blah blah } [ENABLE] {$LUA} timer = createTimer(true) timer:setInterval(1) timer.OnTimer = function() Value8 = readInteger('Value') if readInteger('Value8') ~= 0 and readInteger('Value8') ~= nil then writeInteger('Flag',1) end end {$ASM} aobscanmodule(INJECT,Tutorial-i386.exe,D9 9E 94 04 00 00) // should be unique alloc(newmem,$1000) label(code) label(return) label(Value) registersymbol(Value) label(Value8) registersymbol(Value8) label(Flag) registersymbol(Flag) registersymbol(INJECT) newmem: mov [Value],ebx cmp [Flag],0 je code mov eax,[ebx] // краш здесь. ebx = 00000004 или другое маленькое mov eax,[eax+04] mov eax,[eax+08] code: fstp dword ptr [esi+00000494] jmp return Value: dd 0 Value8: dd 0 Flag: dd 0 INJECT: jmp newmem db 90 return: [DISABLE] {$LUA} timer:setEnabled(false) {$ASM} INJECT: db D9 9E 94 04 00 00 unregistersymbol(Value) unregistersymbol(Value8) unregistersymbol(Flag) unregistersymbol(INJECT) dealloc(newmem) { // ORIGINAL CODE - INJECTION POINT: "Tutorial-i386.exe"+24BCF "Tutorial-i386.exe"+24BAB: DB 7D C0 - fstp tword ptr [ebp-40] "Tutorial-i386.exe"+24BAE: B8 04 00 00 00 - mov eax,00000004 "Tutorial-i386.exe"+24BB3: E8 58 9D FE FF - call Tutorial-i386.exe+E910 "Tutorial-i386.exe"+24BB8: 89 45 D0 - mov [ebp-30],eax "Tutorial-i386.exe"+24BBB: DB 45 D0 - fild dword ptr [ebp-30] "Tutorial-i386.exe"+24BBE: DB 6D C0 - fld tword ptr [ebp-40] "Tutorial-i386.exe"+24BC1: DE C1 - faddp "Tutorial-i386.exe"+24BC3: D9 5D FC - fstp dword ptr [ebp-04] "Tutorial-i386.exe"+24BC6: D9 45 FC - fld dword ptr [ebp-04] "Tutorial-i386.exe"+24BC9: D8 AE 94 04 00 00 - fsubr dword ptr [esi+00000494] // ---------- INJECTING HERE ---------- "Tutorial-i386.exe"+24BCF: D9 9E 94 04 00 00 - fstp dword ptr [esi+00000494] // ---------- DONE INJECTING ---------- "Tutorial-i386.exe"+24BD5: FF B6 94 04 00 00 - push [esi+00000494] "Tutorial-i386.exe"+24BDB: 8D 45 BC - lea eax,[ebp-44] "Tutorial-i386.exe"+24BDE: 50 - push eax "Tutorial-i386.exe"+24BDF: B9 04 00 00 00 - mov ecx,00000004 "Tutorial-i386.exe"+24BE4: BA 04 00 00 00 - mov edx,00000004 "Tutorial-i386.exe"+24BE9: B8 00 00 00 00 - mov eax,00000000 "Tutorial-i386.exe"+24BEE: E8 BD 8C 01 00 - call Tutorial-i386.exe+3D8B0 "Tutorial-i386.exe"+24BF3: 8B 55 BC - mov edx,[ebp-44] "Tutorial-i386.exe"+24BF6: 8B 86 80 04 00 00 - mov eax,[esi+00000480] "Tutorial-i386.exe"+24BFC: E8 7F FB 06 00 - call Tutorial-i386.exe+94780 } Ссылка на комментарий Поделиться на другие сайты Поделиться
Alex2411 Опубликовано 7 апреля, 2019 Поделиться Опубликовано 7 апреля, 2019 В 04.04.2019 в 17:58, partoftheworlD сказал: Почему бы не погуглить? Обработчик исключений был бы идеальным решением это появилось только в чит енжин 6.8 1 час назад, MasterGH сказал: Этот пример стоит попробовать, у меня с этой проверкой скрипт вообше не реаботает . даже не включаеться пробовал сравнивать трасеры как ты говорил . постоянно крашилось . оказываеться что нельзя сравнивать тарсеры когда сохранил стек , а не где про это не сказано . если записать трасер с стеком , а потом загрузить для сравнение то чит енжин сразу виснет и вылетает . баг наверно 1 час назад, Garik66 сказал: вот попробуй это не вылетает , но с приавильными адресми этот скрипт то же не работает . все уходит в фильтр Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 7 апреля, 2019 Автор Поделиться Опубликовано 7 апреля, 2019 Только что, Alex2411 сказал: все уходит в фильтр да тупанул. Короче нужно высыпаться. Через недельку посмотрю. Пока из-за работы - не получается. Нужно все-таки найти будет реальную игровую ситуацию и на ней тестить. Ссылка на комментарий Поделиться на другие сайты Поделиться
Alex2411 Опубликовано 7 апреля, 2019 Поделиться Опубликовано 7 апреля, 2019 19 минут назад, Garik66 сказал: Нужно все-таки найти будет реальную игровую ситуацию и на ней тестить. для туториала я добавлял метку для ebx что бы с начала записывать в ebx разные значения , а потом проверять на вылет. на реальных играх у меня вылетало на Omerta City of Gangsters Tales of Maj'Eyal Poker Night 2 Battle Brothers . еще вроде на играх RPG Maker . Ссылка на комментарий Поделиться на другие сайты Поделиться
MasterGH Опубликовано 7 апреля, 2019 Поделиться Опубликовано 7 апреля, 2019 6 часов назад, Alex2411 сказал: у меня с этой проверкой скрипт вообше не реаботает . даже не включаеться try/except на последней версии CE 6.8.3 должно работать {$try} mov eax,[ecx+10] jmp short noerror {$except} xor eax,eax noerror: Может быть, ты свой скрипт покажешь, если хочешь конечно Под except нужно восстановить оригинальное значение. Хотя я думаю, не поможет этот try/catch. Будет вылетать на других инструкциях Ссылка на комментарий Поделиться на другие сайты Поделиться
partoftheworlD Опубликовано 7 апреля, 2019 Поделиться Опубликовано 7 апреля, 2019 По докам вообще не понятно, какие исключения будет отлавливать except, если все, то может вызывать проблемы, а если можно задавать, то как. Хотя я все так же убежден, что проще сделать чит на другой инструкции, чем использовать текущую с кучей фильтров. Ссылка на комментарий Поделиться на другие сайты Поделиться
Alex2411 Опубликовано 7 апреля, 2019 Поделиться Опубликовано 7 апреля, 2019 28 минут назад, MasterGH сказал: try/except на последней версии CE 6.8.3 должно работать у меня 6.8.3. 6 . качал здесь https://github.com/cheat-engine/cheat-engine/releases там она уже наверное месяц не обновлялась. когда вписывыю в скрипт {$try} {$except} он вобще перестает активироаться по этому я не знаю работает проверка или неь . надписи эти выделяються оранжевым цветом как регистры и подчеркиваються. читал не помню где что если инструкции срабатывает очень часто то эта проверка может сильно тормозать и даже крашить игру если можно лучше бы какую то другую проверку сделать , а то скрипт удругих геймеров на других версиях чит енжин не будет работать. скрипт из игры я выладывал здесь https://gamehacklab.ru/topic/7243-как-исключить-не-действительные-адреса-из-фильтра/?do=findComment&comment=58547 я пробовал в него добавить проверку try except , но скрипт после этого не включаеться пысы . когда будет время посмотри пожалуйста тему про плагин aa maker Ссылка на комментарий Поделиться на другие сайты Поделиться
MasterGH Опубликовано 7 апреля, 2019 Поделиться Опубликовано 7 апреля, 2019 Все работает Спойлер [ENABLE] //code from here to '[DISABLE]' will be used to enable the cheat alloc(newmem,2048) label(returnhere) label(originalcode) label(exit) newmem: //this is allocated memory, you have read,write,execute access //place your code here originalcode: {$try} mov eax,[0] //mov eax,[ebx+00000480] jmp short noerror {$except} noerror: mov eax,[ebx+00000480] exit: jmp returnhere "Tutorial-i386.exe"+23EA8: jmp newmem nop returnhere: [DISABLE] //code from here till the end of the code will be used to disable the cheat dealloc(newmem) "Tutorial-i386.exe"+23EA8: mov eax,[ebx+00000480] //Alt: db 8B 83 80 04 00 00 Если делать без try/except, то естественный crash Спойлер 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
partoftheworlD Опубликовано 7 апреля, 2019 Поделиться Опубликовано 7 апреля, 2019 5 минут назад, MasterGH сказал: jmp short noerror хм, видимо short/far надо обязательно указывать. Ссылка на комментарий Поделиться на другие сайты Поделиться
MasterGH Опубликовано 7 апреля, 2019 Поделиться Опубликовано 7 апреля, 2019 12 минут назад, partoftheworlD сказал: хм, видимо short/far надо обязательно указывать. Я проверил. Это без разницы. Вообще я думал кода будет больше, когда я давно писал SEH я еще инструкции добавлял. Я беру убираю эти директивы и получается точно такой же код, однако вылет)) Похоже CE прячет байты и инструкции того самого SEH Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 7 апреля, 2019 Автор Поделиться Опубликовано 7 апреля, 2019 3 часа назад, Alex2411 сказал: я не знаю работает проверка или неь У меня как и 1 час назад, MasterGH сказал: Все работает тоже работает: Проверял на твоем скрипте для 4 шага туториала. Спойлер Ссылка на комментарий Поделиться на другие сайты Поделиться
Alex2411 Опубликовано 7 апреля, 2019 Поделиться Опубликовано 7 апреля, 2019 2 часа назад, MasterGH сказал: Все работает 29 минут назад, Garik66 сказал: тоже работает еще раз проверял . не работает у меня. не включаеться этот скрипт может что бы работал нужне dvbm ? у меня ос старая не подерживает (( Ссылка на комментарий Поделиться на другие сайты Поделиться
Pitronic Опубликовано 8 сентября, 2020 Поделиться Опубликовано 8 сентября, 2020 похоже на новой версии скрипт не работает, просто не включается. Может переделаешь с уникальным аоб Ссылка на комментарий Поделиться на другие сайты Поделиться
Pitronic Опубликовано 8 сентября, 2020 Поделиться Опубликовано 8 сентября, 2020 (изменено) всё нашёл сам вот уникальная сигнатура 81 * * * * * * * * * 75 * 8B * * * * * B2 в смысле на табличке в первом скрипте Изменено 8 сентября, 2020 пользователем Pitronic Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения