MasterGH Опубликовано 29 апреля, 2017 Автор Поделиться Опубликовано 29 апреля, 2017 5 минут назад, Garik66 сказал: Error:...les (x86)\Cheat Engine 6.5\autorun\aamaker _V240_G66.lua:819: attempt to perform arithmetic on a string value (local 'tempAddress') Вот эту строчку можно заменить script = string.gsub(script,'{$PrintLog}', GetTextLog(getNameFromAddress(address), getNameFromAddress(length + address))) на эту script = string.gsub(script,'{$PrintLog}', GetTextLog(getAddress(address) ) Функцию GetTextLog можно взять из поста выше. Если не получится, то можно оставить прошлый вариант. Я потом попроавлю Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 29 апреля, 2017 Поделиться Опубликовано 29 апреля, 2017 Не: Ссылка на комментарий Поделиться на другие сайты Поделиться
MasterGH Опубликовано 29 апреля, 2017 Автор Поделиться Опубликовано 29 апреля, 2017 Я забыл скобку добавить Прошу прощения script = string.gsub(script,'{$PrintLog}', GetTextLog(getAddress(address)) ) Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 29 апреля, 2017 Поделиться Опубликовано 29 апреля, 2017 Если не удалять ту строку : Скрытый текст { Game : Tutorial-i386.exe Version: 1.0 Date : 04-30-17 Author : [open aamaker.lua and pastle Author] This script does blah blah blah Make by aamaker Lua plagin Version 2.4.0.G66 :) [EN] Technical support : http://forum.cheatengine.org/viewtopic.php?p=5645967 [RU] Техническая поддержка: https://forum.gamehacklab.ru/index.php?/topic/1415-plugin-aa-maker-создание-аа-скриптов } [ENABLE] aobscanmodule(INJECT0,Tutorial-i386.exe+14DD20,C6 05 F0 E4 54 00 00) alloc(newmem,$1000,Tutorial-i386.exe+14DD20) label(code) label(return) registersymbol(INJECT0) newmem: code: mov byte ptr [0054E4F0],#100 jmp return INJECT0: jmp newmem nop nop return: [DISABLE] INJECT0: db C6 05 F0 E4 54 00 00 unregistersymbol(INJECT0) dealloc(newmem) { // ORIGINAL CODE - INJECTION POINT: 05561632 05561628: - ?? 05561629: - ?? 0556162A: - ?? 0556162B: - ?? 0556162C: - ?? 0556162D: - ?? 0556162E: - ?? 0556162F: - ?? 05561630: - ?? 05561631: - ?? // ---------- INJECTING HERE ----------- 05561632: - ?? // ---------- DONE INJECTING ---------- 05561633: - ?? 05561634: - ?? 05561635: - ?? 05561636: - ?? 05561637: - ?? 05561638: - ?? 05561639: - ?? 0556163A: - ?? 0556163B: - ?? 0556163C: - ?? } Из твоего скрипта, ещё раз спрошу мне нужно вставить же только эту часть: Скрытый текст function GetLine(address) local _,opcode, bytes, address = splitDisassembledString(disassemble(address)) local bytes = bytes..string.rep (' ', 33 - string.len(bytes)) return string.format('%s: %s- %s', getNameFromAddress(address), bytes, opcode) end function GetTextLog(address) local textLog = '{\r\n' textLog = textLog..'// ORIGINAL CODE - INJECTION POINT: '..getNameFromAddress(address)..'\r\n\r\n' local tempAddress = address local tempString = '' for i=1,10 do tempAddress = getPreviousOpcode(tempAddress) tempString = GetLine(tempAddress)..'\r\n'..tempString end textLog = textLog..tempString..'// ---------- INJECTING HERE -----------\r\n' textLog = textLog..GetLine(address)..'\r\n' textLog = textLog..'// ---------- DONE INJECTING ----------\r\n' tempAddress = address for i=1,10 do tempAddress = tempAddress + getInstructionSize(tempAddress) textLog = textLog..GetLine(tempAddress)..'\r\n' end return textLog..'}' end Так как вот эта часть уже есть в плагине выше по коду: Скрытый текст function AddAARecord(script, sciptName) local addresslist = getAddressList() newTableEntry = addresslist.createMemoryRecord(addresslist) newTableEntry.setDescription(sciptName) newTableEntry.setType(vtAutoAssembler) newTableEntry.setScript(newTableEntry, script) return newTableEntry end Ссылка на комментарий Поделиться на другие сайты Поделиться
MasterGH Опубликовано 29 апреля, 2017 Автор Поделиться Опубликовано 29 апреля, 2017 Я сейчас поправлю, проверю и вышлю файл Ссылка на комментарий Поделиться на другие сайты Поделиться
MasterGH Опубликовано 29 апреля, 2017 Автор Поделиться Опубликовано 29 апреля, 2017 Сделал ыложил здесь. Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 29 апреля, 2017 Поделиться Опубликовано 29 апреля, 2017 6 минут назад, MasterGH сказал: Я сейчас поправлю, проверю и вышлю файл Ок. А я пока отдохну - посмотрю "Сплит" (давно хочу, но ни как не получается). А то у меня уже этот LUA-код постоянно перед глазами. Без знания языка всё-таки тяжело редактировать. Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 29 апреля, 2017 Поделиться Опубликовано 29 апреля, 2017 2 минуты назад, MasterGH сказал: Сделал Быстро; Скрытый текст { // ORIGINAL CODE - INJECTION POINT: Tutorial-i386.exe+14DD20 Tutorial-i386.exe+14DCFC: B8 00000001 - mov eax,01000000 Tutorial-i386.exe+14DD01: E8 BA24ECFF - call 004101C0 Tutorial-i386.exe+14DD06: EB 14 - jmp 0054DD1C Tutorial-i386.exe+14DD08: FF 35 00F05400 - push [0054F000] Tutorial-i386.exe+14DD0E: E8 4D35EBFF - call 00401260 Tutorial-i386.exe+14DD13: 85 C0 - test eax,eax Tutorial-i386.exe+14DD15: 74 05 - je 0054DD1C Tutorial-i386.exe+14DD17: E8 8425ECFF - call 004102A0 Tutorial-i386.exe+14DD1C: C9 - leave Tutorial-i386.exe+14DD1D: C2 0C00 - ret 000C // ---------- INJECTING HERE ----------- Tutorial-i386.exe+14DD20: C6 05 F0E45400 00 - mov byte ptr [0054E4F0],00 // ---------- DONE INJECTING ---------- Tutorial-i386.exe+14DD27: B9 00806300 - mov ecx,00638000 Tutorial-i386.exe+14DD2C: BA 04806300 - mov edx,00638004 Tutorial-i386.exe+14DD31: B8 A03D5D00 - mov eax,005D3DA0 Tutorial-i386.exe+14DD36: E8 65FFFFFF - call 0054DCA0 Tutorial-i386.exe+14DD3B: E8 70FFFFFF - call 0054DCB0 Tutorial-i386.exe+14DD40: B8 803D5D00 - mov eax,005D3D80 Tutorial-i386.exe+14DD45: E8 6652ECFF - call 00412FB0 Tutorial-i386.exe+14DD4A: C3 - ret Tutorial-i386.exe+14DD4B: 00 00 - add [eax],al Tutorial-i386.exe+14DD4D: 00 00 - add [eax],al } Скрытый текст { // ORIGINAL CODE - INJECTION POINT: "Tutorial-i386.exe"+14DD20 "Tutorial-i386.exe"+14DCFC: B8 00 00 00 01 - mov eax,01000000 "Tutorial-i386.exe"+14DD01: E8 BA 24 EC FF - call Tutorial-i386.exe+101C0 "Tutorial-i386.exe"+14DD06: EB 14 - jmp Tutorial-i386.exe+14DD1C "Tutorial-i386.exe"+14DD08: FF 35 00 F0 54 00 - push [Tutorial-i386.exe+14F000] "Tutorial-i386.exe"+14DD0E: E8 4D 35 EB FF - call Tutorial-i386.exe+1260 "Tutorial-i386.exe"+14DD13: 85 C0 - test eax,eax "Tutorial-i386.exe"+14DD15: 74 05 - je Tutorial-i386.exe+14DD1C "Tutorial-i386.exe"+14DD17: E8 84 25 EC FF - call Tutorial-i386.exe+102A0 "Tutorial-i386.exe"+14DD1C: C9 - leave "Tutorial-i386.exe"+14DD1D: C2 0C 00 - ret 000C // ---------- INJECTING HERE ---------- "Tutorial-i386.exe"+14DD20: C6 05 F0 E4 54 00 00 - mov byte ptr [Tutorial-i386.exe+14E4F0],00 // ---------- DONE INJECTING ---------- "Tutorial-i386.exe"+14DD27: B9 00 80 63 00 - mov ecx,Tutorial-i386.exe+238000 "Tutorial-i386.exe"+14DD2C: BA 04 80 63 00 - mov edx,Tutorial-i386.exe+238004 "Tutorial-i386.exe"+14DD31: B8 A0 3D 5D 00 - mov eax,Tutorial-i386.exe+1D3DA0 "Tutorial-i386.exe"+14DD36: E8 65 FF FF FF - call Tutorial-i386.exe+14DCA0 "Tutorial-i386.exe"+14DD3B: E8 70 FF FF FF - call Tutorial-i386.exe+14DCB0 "Tutorial-i386.exe"+14DD40: B8 80 3D 5D 00 - mov eax,Tutorial-i386.exe+1D3D80 "Tutorial-i386.exe"+14DD45: E8 66 52 EC FF - call Tutorial-i386.exe+12FB0 "Tutorial-i386.exe"+14DD4A: C3 - ret "Tutorial-i386.exe"+14DD4B: 00 00 - add [eax],al "Tutorial-i386.exe"+14DD4D: 00 00 - add [eax],al } Отлично. Завтра тогда напишу, что нужно поправить в плагине подробно. Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 30 апреля, 2017 Поделиться Опубликовано 30 апреля, 2017 CE Lua Plugin: "AA Maker" Version 2.4.0.G66.1 1. Ошибки версии 2.4.0:G66.1 Теперь нужно решать ошибку "Error:Недопустимый объект класса" на инструкции: В 29.04.2017 в 00:41, Foxhound сказал: В версии 3.2 по адресу Tutorial-i386.exe+1D0551 расположена инструкция add ah,[edx+00]. Сам СЕ 6.5 на ней работает корректно, в Плагине работает только корректно "Injection" при оригинальном code в байтах (как и в СЕ) Мне так и не удалось её решить, хотя вижу код @MasterGH из v 2.4.2 (стр. с 480 по 549 + с 559 по 570) вставить в v 2.4.0:G66.1 (стр. с 515 по 579 + с 590 по 598), но по-видимому нужно ещё что-то. Немного пробовал ещё, рассуждения в этом сообщении. Это единственно что не перенесено из версии 2.4.2. в версию 2.4.0:G66.1 Также эта ошибка появляется (только что обнаружил) на моде Diablo The Hell v1 209 2. Что нового в версии 2.4.0:G66.1 по сравнению с версии 2.4.2.: 2.01. Все плюшки MasterGH, реализованные в версии 2.4.2.добавлены. 2.02. В шапке плагина исправлена ссылка на этот топик. 2.03. В шапке проставлена сегодняшняя дата плагина. 2.04. Подключена, введённая, но не используемая MasterGH, переменная pluginVersion в шапках всех получаемых скриптов и вшита в код. 2.05. Изменены шапки всех получаемых скриптов (Также сегодня 30.04.17сделал шапку компактней и добавил версию СЕ) Скрытый текст { Game : Tutorial-i386.exe Version: 1.0 Date : 04-30-17 Author : [open aamaker.lua and pastle Author] Version CE: 6.5 Make by aamaker Lua plagin Version 2.4.0.G66.1 :) [EN] Technical support: http://forum.cheatengine.org/viewtopic.php?p=5645967 [RU] Техническая поддержка: https://forum.gamehacklab.ru/index.php?/topic/1415-plugin-aa-maker-создание-аа-скриптов } 2.06. Изменены Template (как будет выглядеть) всех получаемых скриптов. Приведены к виду, который я предпочитаю. Если кому не понравится - переделайте под себя - это не сложно. 2.07. Изменён получаемый скрипт "Nop". поэтому добавлена и вшита в код переменная NopCodeTemplate. 2.08. Исправлена ошибка всех получаемых скриптов (кроме Simple и Инжект) для 64-битных игр. 2.09. Исправлен баг: В 29.04.2017 в 00:41, Foxhound сказал: Ладно, попробую показать на примере 3.2, посмотрел сейчас, там тоже такую ошибку можно вызвать. В версии 3.2 по адресу Tutorial-i386.exe+1D0551 расположена инструкция add ah,[edx+00]. Следующая за ней инструкция - lock add ah,[edx+00] и идёт она по адресу Tutorial-i386.exe+1D0554. Если по первой инструкции по адресу Tutorial-i386.exe+1D0551 создать скрипт (например, Injection), который ничего не делает, просто вкл/выкл, то включается он нормально, но вот при выключении первая инструкция возвращается на место где и была по адресу Tutorial-i386.exe+1D0551, а вот вторая встаёт не на Tutorial-i386.exe+1D0554, а на Tutorial-i386.exe+1D0553 и ниже по коду появляются нопы. Проблема, насколько я понимаю, в том, что при отключении скрипта вместо изначального [edx+00] обратно возвращается [edx] без нулевого офсета (это видно в окне дизассемблера), а поскольку он занимает какую-то длину, то без него происходит сдвиг кода. Проверь на указанных мной адресах и убедишься. @partoftheworlD В 29.04.2017 в 02:57, partoftheworlD сказал: 766 строка if origCodeType == true then script = string.gsub(script,"->>originalCode", originalBytes) else script = string.gsub(script,"->>originalCode", originalCode) end на if origCodeType == false then script = string.gsub(script,"->>originalCode", originalBytes) else script = string.gsub(script,"->>originalCode", originalCode) end т.е теперь если ставим галочку, по стандарту везде задается генерация инструкций, то будет генерироваться инструкция. Завтра посмотрю, как можно будет нормально по фиксить и где плагин нули отбрасывает. Поэтому пришлось изменить надпись в окне "Original code in bytes" на "Original code in opcod" Но это @MasterGH нужно проверить 2.10. Выровнены Логи в получаемых скриптах. 2.11. Также я вернул старый AOBScan но так как не помню как он должен выглядеть (имею ввиду сигнатура). @MasterGHЭто тоже лучше проверить. 2.12. Также вернул счётчик адресов при создании новых скриптов будет метка INJECT0 (и т.д.). 3. Что не сделано в версии 2.4.0.G66.1: 3.01. Не работают скрипты Simple и Инжект для 64-битных игр. (может это и не нужно, но тогда лучше сделать эти панели в меню не активными для 64-битных игр.) Думаю, что для знающих, это тоже сделать не сложно. 3.02. Не исправлена ошибка - см. выше 3.03. Чуть не забыл добавляется пустая строка вновь созданный скрипт, если не срабатывает фишка Плагина с Value. Для пояснения скрипты: Value работает: Скрытый текст { Game : Tutorial-i386.exe Version: 1.0 Date : 04-30-17 Author : [open aamaker.lua and pastle Author] Version CE: 6.5 Make by aamaker Lua plagin Version 2.4.0.G66.1 :) [EN] Technical support: http://forum.cheatengine.org/viewtopic.php?p=5645967 [RU] Техническая поддержка: https://forum.gamehacklab.ru/index.php?/topic/1415-plugin-aa-maker-создание-аа-скриптов } [ENABLE] aobscanmodule(INJECT0,Tutorial-i386.exe+23920,89 83 80 04 00 00 8D 55 D4 E8 52) alloc(newmem,$1000,Tutorial-i386.exe+23920) label(code) label(return) registersymbol(INJECT0) newmem: code: mov [ebx+00000480],#100 jmp return INJECT0: jmp newmem nop return: [DISABLE] INJECT0: db 89 83 80 04 00 00 unregistersymbol(INJECT0) dealloc(newmem) { // ORIGINAL CODE - INJECTION POINT: Tutorial-i386.exe+23920 Tutorial-i386.exe+238FC: E8 0F9BFEFF - call 0040D410 Tutorial-i386.exe+23901: E8 1AB6FEFF - call 0040EF20 Tutorial-i386.exe+23906: 50 - push eax Tutorial-i386.exe+23907: 85 C0 - test eax,eax Tutorial-i386.exe+23909: 75 65 - jne 00423970 Tutorial-i386.exe+2390B: B8 05000000 - mov eax,00000005 Tutorial-i386.exe+23910: E8 5BADFEFF - call 0040E670 Tutorial-i386.exe+23915: 8D 50 01 - lea edx,[eax+01] Tutorial-i386.exe+23918: 8B 83 80040000 - mov eax,[ebx+00000480] Tutorial-i386.exe+2391E: 29 D0 - sub eax,edx // ---------- INJECTING HERE ----------- Tutorial-i386.exe+23920: 89 83 80040000 - mov [ebx+00000480],eax // ---------- DONE INJECTING ---------- Tutorial-i386.exe+23926: 8D 55 D4 - lea edx,[ebp-2C] Tutorial-i386.exe+23929: E8 52680100 - call 0043A180 Tutorial-i386.exe+2392E: 8B 55 D4 - mov edx,[ebp-2C] Tutorial-i386.exe+23931: 8B 83 6C040000 - mov eax,[ebx+0000046C] Tutorial-i386.exe+23937: E8 D4DA0600 - call 00491410 Tutorial-i386.exe+2393C: 83 BB 80040000 00 - cmp dword ptr [ebx+00000480],00 Tutorial-i386.exe+23943: 7D 2B - jnl 00423970 Tutorial-i386.exe+23945: A1 C4F15400 - mov eax,[0054F1C4] Tutorial-i386.exe+2394A: E8 A1290F00 - call 005162F0 Tutorial-i386.exe+2394F: B8 64000000 - mov eax,00000064 } Скрытый текст { Game : Tutorial-i386.exe Version: 1.0 Date : 04-30-17 Author : [open aamaker.lua and pastle Author] Version CE: 6.5 Make by aamaker Lua plagin Version 2.4.0.G66.1 :) [EN] Technical support: http://forum.cheatengine.org/viewtopic.php?p=5645967 [RU] Техническая поддержка: https://forum.gamehacklab.ru/index.php?/topic/1415-plugin-aa-maker-создание-аа-скриптов } [ENABLE] aobscanmodule(INJECT1,Tutorial-i386.exe+23918,8B 83 80 04 00 00) alloc(newmem,$1000,Tutorial-i386.exe+23918) label(code) label(return) registersymbol(INJECT1) newmem: code: mov [ebx+00000480],#100 mov eax,[ebx+00000480] jmp return INJECT1: jmp newmem nop return: [DISABLE] INJECT1: db 8B 83 80 04 00 00 unregistersymbol(INJECT1) dealloc(newmem) { // ORIGINAL CODE - INJECTION POINT: Tutorial-i386.exe+23918 Tutorial-i386.exe+238F6: 8D 55 DC - lea edx,[ebp-24] Tutorial-i386.exe+238F9: 8D 4D F4 - lea ecx,[ebp-0C] Tutorial-i386.exe+238FC: E8 0F9BFEFF - call 0040D410 Tutorial-i386.exe+23901: E8 1AB6FEFF - call 0040EF20 Tutorial-i386.exe+23906: 50 - push eax Tutorial-i386.exe+23907: 85 C0 - test eax,eax Tutorial-i386.exe+23909: 75 65 - jne 00423970 Tutorial-i386.exe+2390B: B8 05000000 - mov eax,00000005 Tutorial-i386.exe+23910: E8 5BADFEFF - call 0040E670 Tutorial-i386.exe+23915: 8D 50 01 - lea edx,[eax+01] // ---------- INJECTING HERE ----------- Tutorial-i386.exe+23918: 8B 83 80040000 - mov eax,[ebx+00000480] // ---------- DONE INJECTING ---------- Tutorial-i386.exe+2391E: 29 D0 - sub eax,edx Tutorial-i386.exe+23920: 89 83 80040000 - mov [ebx+00000480],eax Tutorial-i386.exe+23926: 8D 55 D4 - lea edx,[ebp-2C] Tutorial-i386.exe+23929: E8 52680100 - call 0043A180 Tutorial-i386.exe+2392E: 8B 55 D4 - mov edx,[ebp-2C] Tutorial-i386.exe+23931: 8B 83 6C040000 - mov eax,[ebx+0000046C] Tutorial-i386.exe+23937: E8 D4DA0600 - call 00491410 Tutorial-i386.exe+2393C: 83 BB 80040000 00 - cmp dword ptr [ebx+00000480],00 Tutorial-i386.exe+23943: 7D 2B - jnl 00423970 Tutorial-i386.exe+23945: A1 C4F15400 - mov eax,[0054F1C4] } Value не работает: Скрытый текст { Game : Tutorial-i386.exe Version: 1.0 Date : 04-30-17 Author : [open aamaker.lua and pastle Author] Version CE: 6.5 Make by aamaker Lua plagin Version 2.4.0.G66.1 :) [EN] Technical support: http://forum.cheatengine.org/viewtopic.php?p=5645967 [RU] Техническая поддержка: https://forum.gamehacklab.ru/index.php?/topic/1415-plugin-aa-maker-создание-аа-скриптов } [ENABLE] aobscanmodule(INJECT2,Tutorial-i386.exe+23AC3,81 BB 80 04 00 00 E8 03 00 00) alloc(newmem,$1000,Tutorial-i386.exe+23AC3) label(code) label(return) registersymbol(INJECT2) newmem: code: // Вот одна пустая строка cmp [ebx+00000480],000003E8 jmp return INJECT2: jmp newmem db 90 90 90 90 90 return: [DISABLE] INJECT2: db 81 BB 80 04 00 00 E8 03 00 00 unregistersymbol(INJECT2) dealloc(newmem) { // ORIGINAL CODE - INJECTION POINT: Tutorial-i386.exe+23AC3 Tutorial-i386.exe+23AB1: E8 0A9DFEFF - call 0040D7C0 Tutorial-i386.exe+23AB6: 5E - pop esi Tutorial-i386.exe+23AB7: 5B - pop ebx Tutorial-i386.exe+23AB8: C9 - leave Tutorial-i386.exe+23AB9: C3 - ret Tutorial-i386.exe+23ABA: 00 00 - add [eax],al Tutorial-i386.exe+23ABC: 00 00 - add [eax],al Tutorial-i386.exe+23ABE: 00 00 - add [eax],al Tutorial-i386.exe+23AC0: 53 - push ebx Tutorial-i386.exe+23AC1: 89 C3 - mov ebx,eax // ---------- INJECTING HERE ----------- Tutorial-i386.exe+23AC3: 81 BB 80040000 E8030000 - cmp [ebx+00000480],000003E8 // ---------- DONE INJECTING ---------- Tutorial-i386.exe+23ACD: 75 2C - jne 00423AFB Tutorial-i386.exe+23ACF: 8B 83 68040000 - mov eax,[ebx+00000468] Tutorial-i386.exe+23AD5: B2 01 - mov dl,01 Tutorial-i386.exe+23AD7: 8B 8B 68040000 - mov ecx,[ebx+00000468] Tutorial-i386.exe+23ADD: 8B 09 - mov ecx,[ecx] Tutorial-i386.exe+23ADF: FF 91 20020000 - call dword ptr [ecx+00000220] Tutorial-i386.exe+23AE5: 8B 83 78040000 - mov eax,[ebx+00000478] Tutorial-i386.exe+23AEB: B2 00 - mov dl,00 Tutorial-i386.exe+23AED: 8B 8B 78040000 - mov ecx,[ebx+00000478] Tutorial-i386.exe+23AF3: 8B 09 - mov ecx,[ecx] } Если просто во всех Template сместить //Это сейчас: newMem: ->>cheatCode //Сделать так: newMem: ->>cheatCode , то последний скрипт будет без пустой строки, но глюканут первые два. А в коде я не нашёл место, где это можно поправить. Так что @MasterGH посмотри и это тоже пожалуйста. 3.04. Отображение в логах в скриптах адресов в таком виде: Скрытый текст // ---------- INJECTING HERE ---------- "Tutorial-i386.exe"+23ACD: 75 2C - jne Tutorial-i386.exe+23AFB // в СЕ // а не в таком: // ---------- INJECTING HERE ----------- Tutorial-i386.exe+23ACD: 75 2C - jne 00423AFB // Плагин @MasterGHЕсли поправить все недочёты в плагине то версию смело можно поменять на 2.4.3 4. Плагин тестировался на СЕ версии 6.5 и только на Туториалах СЕ 32 и 64 бита. Поэтому просьба - по возможности потестить и писать сюда, 5. Видео-инструкция для новичков: 6, Примеры скриптов: CE: Скрытый текст { Game : Tutorial-i386.exe Version: Date : 2017-04-30 Author : Garik66 This script does blah blah blah } [ENABLE] aobscanmodule(INJECT0,Tutorial-i386.exe,75 2C 8B 83 68 04 00 00) // should be unique registersymbol(INJECT0) INJECT0: db 90 90 [DISABLE] INJECT0: db 75 2C 8B 83 68 04 00 00 unregistersymbol(INJECT0) dealloc(newmem) { // ORIGINAL CODE - INJECTION POINT: "Tutorial-i386.exe"+23ACD "Tutorial-i386.exe"+23AB6: 5E - pop esi "Tutorial-i386.exe"+23AB7: 5B - pop ebx "Tutorial-i386.exe"+23AB8: C9 - leave "Tutorial-i386.exe"+23AB9: C3 - ret "Tutorial-i386.exe"+23ABA: 00 00 - add [eax],al "Tutorial-i386.exe"+23ABC: 00 00 - add [eax],al "Tutorial-i386.exe"+23ABE: 00 00 - add [eax],al "Tutorial-i386.exe"+23AC0: 53 - push ebx "Tutorial-i386.exe"+23AC1: 89 C3 - mov ebx,eax "Tutorial-i386.exe"+23AC3: 81 BB 80 04 00 00 E8 03 00 00 - cmp [ebx+00000480],000003E8 // ---------- INJECTING HERE ---------- "Tutorial-i386.exe"+23ACD: 75 2C - jne Tutorial-i386.exe+23AFB "Tutorial-i386.exe"+23ACF: 8B 83 68 04 00 00 - mov eax,[ebx+00000468] // ---------- DONE INJECTING ---------- "Tutorial-i386.exe"+23AD5: B2 01 - mov dl,01 "Tutorial-i386.exe"+23AD7: 8B 8B 68 04 00 00 - mov ecx,[ebx+00000468] "Tutorial-i386.exe"+23ADD: 8B 09 - mov ecx,[ecx] "Tutorial-i386.exe"+23ADF: FF 91 20 02 00 00 - call dword ptr [ecx+00000220] "Tutorial-i386.exe"+23AE5: 8B 83 78 04 00 00 - mov eax,[ebx+00000478] "Tutorial-i386.exe"+23AEB: B2 00 - mov dl,00 "Tutorial-i386.exe"+23AED: 8B 8B 78 04 00 00 - mov ecx,[ebx+00000478] "Tutorial-i386.exe"+23AF3: 8B 09 - mov ecx,[ecx] "Tutorial-i386.exe"+23AF5: FF 91 D8 00 00 00 - call dword ptr [ecx+000000D8] "Tutorial-i386.exe"+23AFB: 5B - pop ebx } Плагин 2.4.0.G66.1: Туториал 32: Скрытый текст { Game : Tutorial-i386.exe Version: 1.0 Date : 04-30-17 Author : [open aamaker.lua and pastle Author] Version CE: 6.5 Make by aamaker Lua plagin Version 2.4.0.G66.1 :) [EN] Technical support: http://forum.cheatengine.org/viewtopic.php?p=5645967 [RU] Техническая поддержка: https://forum.gamehacklab.ru/index.php?/topic/1415-plugin-aa-maker-создание-аа-скриптов } [ENABLE] aobscanmodule(INJECT1,Tutorial-i386.exe+23ACD,75xx8bxxxxxxxxxxb2xx8bxxxxxxxxxx8bxxffxxxxxxxxxx8bxxxxxxxxxxb2xx8bxxxxxxxxxx8bxxffxxxxxxxxxxxxxx00xx00xxxx89) registersymbol(INJECT1) INJECT1: nop nop [DISABLE] INJECT1: db 75 2C unregistersymbol(INJECT1) { // ORIGINAL CODE - INJECTION POINT: Tutorial-i386.exe+23ACD Tutorial-i386.exe+23AB6: 5E - pop esi Tutorial-i386.exe+23AB7: 5B - pop ebx Tutorial-i386.exe+23AB8: C9 - leave Tutorial-i386.exe+23AB9: C3 - ret Tutorial-i386.exe+23ABA: 00 00 - add [eax],al Tutorial-i386.exe+23ABC: 00 00 - add [eax],al Tutorial-i386.exe+23ABE: 00 00 - add [eax],al Tutorial-i386.exe+23AC0: 53 - push ebx Tutorial-i386.exe+23AC1: 89 C3 - mov ebx,eax Tutorial-i386.exe+23AC3: 81 BB 80040000 E8030000 - cmp [ebx+00000480],000003E8 // ---------- INJECTING HERE ----------- Tutorial-i386.exe+23ACD: 75 2C - jne 00423AFB // ---------- DONE INJECTING ---------- Tutorial-i386.exe+23ACF: 8B 83 68040000 - mov eax,[ebx+00000468] Tutorial-i386.exe+23AD5: B2 01 - mov dl,01 Tutorial-i386.exe+23AD7: 8B 8B 68040000 - mov ecx,[ebx+00000468] Tutorial-i386.exe+23ADD: 8B 09 - mov ecx,[ecx] Tutorial-i386.exe+23ADF: FF 91 20020000 - call dword ptr [ecx+00000220] Tutorial-i386.exe+23AE5: 8B 83 78040000 - mov eax,[ebx+00000478] Tutorial-i386.exe+23AEB: B2 00 - mov dl,00 Tutorial-i386.exe+23AED: 8B 8B 78040000 - mov ecx,[ebx+00000478] Tutorial-i386.exe+23AF3: 8B 09 - mov ecx,[ecx] Tutorial-i386.exe+23AF5: FF 91 D8000000 - call dword ptr [ecx+000000D8] } Туториал 64: Скрытый текст { Game : Tutorial-x86_64.exe Version: 1.0 Date : 04-30-17 Author : [open aamaker.lua and pastle Author] Version CE: 6.5 Make by aamaker Lua plagin Version 2.4.0.G66.1 :) [EN] Technical support: http://forum.cheatengine.org/viewtopic.php?p=5645967 [RU] Техническая поддержка: https://forum.gamehacklab.ru/index.php?/topic/1415-plugin-aa-maker-создание-аа-скриптов } [ENABLE] aobscanmodule(INJECT2,Tutorial-x86_64.exe+2AAA3,75xx48xxxxxxxxxxxxbaxxxxxxxx48xxxxxxxxxxxx48xxxxffxxxxxxxxxx48xxxxxxxxxxxxbaxxxxxxxx48xxxxxxxxxxxx48xxxxffxxxxxxxxxxxx48xxxxxxxxxxxx00xx00xx00xx00xx00xx00xxxx8dxxxxxx48xxxx48xxxx48) registersymbol(INJECT2) INJECT2: nop nop [DISABLE] INJECT2: db 75 38 unregistersymbol(INJECT2) { // ORIGINAL CODE - INJECTION POINT: Tutorial-x86_64.exe+2AAA3 Tutorial-x86_64.exe+2AA84: 00 00 - add [rax],al Tutorial-x86_64.exe+2AA86: 00 00 - add [rax],al Tutorial-x86_64.exe+2AA88: 00 00 - add [rax],al Tutorial-x86_64.exe+2AA8A: 00 00 - add [rax],al Tutorial-x86_64.exe+2AA8C: 00 00 - add [rax],al Tutorial-x86_64.exe+2AA8E: 00 00 - add [rax],al Tutorial-x86_64.exe+2AA90: 53 - push rbx Tutorial-x86_64.exe+2AA91: 48 8D 64 24 E0 - lea rsp,[rsp-20] Tutorial-x86_64.exe+2AA96: 48 89 CB - mov rbx,rcx Tutorial-x86_64.exe+2AA99: 81 BB 90070000 E8030000 - cmp [rbx+00000790],000003E8 // ---------- INJECTING HERE ----------- Tutorial-x86_64.exe+2AAA3: 75 38 - jne 10002AADD // ---------- DONE INJECTING ---------- Tutorial-x86_64.exe+2AAA5: 48 8B 8B 60070000 - mov rcx,[rbx+00000760] Tutorial-x86_64.exe+2AAAC: BA 01000000 - mov edx,00000001 Tutorial-x86_64.exe+2AAB1: 48 8B 83 60070000 - mov rax,[rbx+00000760] Tutorial-x86_64.exe+2AAB8: 48 8B 00 - mov rax,[rax] Tutorial-x86_64.exe+2AABB: FF 90 40040000 - call qword ptr [rax+00000440] Tutorial-x86_64.exe+2AAC1: 48 8B 8B 80070000 - mov rcx,[rbx+00000780] Tutorial-x86_64.exe+2AAC8: BA 00000000 - mov edx,00000000 Tutorial-x86_64.exe+2AACD: 48 8B 83 80070000 - mov rax,[rbx+00000780] Tutorial-x86_64.exe+2AAD4: 48 8B 00 - mov rax,[rax] Tutorial-x86_64.exe+2AAD7: FF 90 B0010000 - call qword ptr [rax+000001B0] } 7. Сам плагин: aamaker V240_G66-1.lua Ссылка на комментарий Поделиться на другие сайты Поделиться
Foxhound Опубликовано 30 апреля, 2017 Поделиться Опубликовано 30 апреля, 2017 1 hour ago, Garik66 said: 2.09. Исправлен баг: Гм... Как я понимаю, он не столько исправлен, сколько "закопан". Т.е. просто по умолчанию без галки в скрипт теперь вставляются не опкоды, а байты, а с опкодами как было неверное восстановление инструкций с нулевыим офсетом, так и осталось? Если не ошибаюсь, это ведь косяк самого СЕ, а не плагина, плагин лишь помог его явно обнаружить. Такие скрипты и на СЕ вообще без установленного плагина не будут корректно работать. Можно ведь и во встроенном шаблоне вручную вписать в [DISABLE] именно опкоды с нулями и СЕ их спокойно примет, не выдаст никаких предупреждений о некорректности скрипта и будет молча восстанавливать инструкции с ошибкой. Может имеет смысл всё-таки как-нибудь дать знать DB, там как раз сейчас беты тестируют? Ссылка на комментарий Поделиться на другие сайты Поделиться
partoftheworlD Опубликовано 30 апреля, 2017 Поделиться Опубликовано 30 апреля, 2017 (изменено) 16 минут назад, Foxhound сказал: это ведь косяк самого СЕ Именно, сам CE так восстанавливает пропуская 00 байты. 16 минут назад, Foxhound сказал: всё-таки как-нибудь дать знать DB Это во всех версиях так, по этому и стандартные скрипты используют байты вместо опкодов, видимо ДБ знает об этом. И вообще генерация байтами откладывает понемногу в мозгу опкоды и это может помочь в чтении Hex дампа и ориентации в коде. Изменено 30 апреля, 2017 пользователем partoftheworlD Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 30 апреля, 2017 Поделиться Опубликовано 30 апреля, 2017 10 минут назад, Foxhound сказал: Гм... Как я понимаю, он не столько исправлен, сколько "закопан". Ну почему же вот два скрипта про которые я пишу: Скрытый текст { Game : Tutorial-i386.exe Version: Date : 2017-04-30 Author : Garik66 This script does blah blah blah } [ENABLE] aobscanmodule(INJECT,Tutorial-i386.exe,02 62 00 F0 02 62 00) // should be unique alloc(newmem,$1000) label(code) label(return) newmem: code: add ah,[edx+00] lock add ah,[edx+00] jmp return INJECT: jmp code nop nop return: registersymbol(INJECT) [DISABLE] INJECT: db 02 62 00 F0 02 62 00 unregistersymbol(INJECT) dealloc(newmem) { // ORIGINAL CODE - INJECTION POINT: "Tutorial-i386.exe"+1D0551 "Tutorial-i386.exe"+1D053A: 62 00 - bound eax,[eax] "Tutorial-i386.exe"+1D053C: D8 02 - fadd dword ptr [edx] "Tutorial-i386.exe"+1D053E: 62 00 - bound eax,[eax] "Tutorial-i386.exe"+1D0540: DC 02 - fadd qword ptr [edx] "Tutorial-i386.exe"+1D0542: 62 00 - bound eax,[eax] "Tutorial-i386.exe"+1D0544: E0 02 - loopne Tutorial-i386.exe+1D0548 "Tutorial-i386.exe"+1D0546: 62 00 - bound eax,[eax] "Tutorial-i386.exe"+1D0548: E4 02 - in al,02 "Tutorial-i386.exe"+1D054A: 62 00 - bound eax,[eax] "Tutorial-i386.exe"+1D054C: E8 02 62 00 EC - call EC5D6753 // ---------- INJECTING HERE ---------- "Tutorial-i386.exe"+1D0551: 02 62 00 - add ah,[edx+00] "Tutorial-i386.exe"+1D0554: F0 02 62 00 - lock add ah,[edx+00] // ---------- DONE INJECTING ---------- "Tutorial-i386.exe"+1D0558: F4 - hlt "Tutorial-i386.exe"+1D0559: 02 62 00 - add ah,[edx+00] "Tutorial-i386.exe"+1D055C: F8 - clc "Tutorial-i386.exe"+1D055D: 02 62 00 - add ah,[edx+00] "Tutorial-i386.exe"+1D0560: FC - cld "Tutorial-i386.exe"+1D0561: 02 62 00 - add ah,[edx+00] "Tutorial-i386.exe"+1D0564: 00 03 - add [ebx],al "Tutorial-i386.exe"+1D0566: 62 00 - bound eax,[eax] "Tutorial-i386.exe"+1D0568: 04 03 - add al,03 "Tutorial-i386.exe"+1D056A: 62 00 - bound eax,[eax] } Скрытый текст { Game : Tutorial-i386.exe Version: 1.0 Date : 04-30-17 Author : [open aamaker.lua and pastle Author] Version CE: 6.5 Make by aamaker Lua plagin Version 2.4.0.G66.1 :) [EN] Technical support: http://forum.cheatengine.org/viewtopic.php?p=5645967 [RU] Техническая поддержка: https://forum.gamehacklab.ru/index.php?/topic/1415-plugin-aa-maker-создание-аа-скриптов } [ENABLE] alloc(newMem,$1000) label(return) newMem: add ah,[edx+00] lock add ah,[edx+00] jmp return Tutorial-i386.exe+1D0551: jmp newMem nop nop return: [DISABLE] Tutorial-i386.exe+1D0551: db 02 62 00 F0 02 62 00 dealloc(newMem) { // ORIGINAL CODE - INJECTION POINT: Tutorial-i386.exe+1D0551 Tutorial-i386.exe+1D053A: 62 00 - bound eax,[eax] Tutorial-i386.exe+1D053C: D8 02 - fadd dword ptr [edx] Tutorial-i386.exe+1D053E: 62 00 - bound eax,[eax] Tutorial-i386.exe+1D0540: DC 02 - fadd qword ptr [edx] Tutorial-i386.exe+1D0542: 62 00 - bound eax,[eax] Tutorial-i386.exe+1D0544: E0 02 - loopne 005D0548 Tutorial-i386.exe+1D0546: 62 00 - bound eax,[eax] Tutorial-i386.exe+1D0548: E4 02 - in al,02 Tutorial-i386.exe+1D054A: 62 00 - bound eax,[eax] Tutorial-i386.exe+1D054C: E8 026200EC - call EC5D6753 // ---------- INJECTING HERE ----------- Tutorial-i386.exe+1D0551: 02 62 00 - add ah,[edx+00] // ---------- DONE INJECTING ---------- Tutorial-i386.exe+1D0554: F0 02 62 00 - lock add ah,[edx+00] Tutorial-i386.exe+1D0558: F4 - hlt Tutorial-i386.exe+1D0559: 02 62 00 - add ah,[edx+00] Tutorial-i386.exe+1D055C: F8 - clc Tutorial-i386.exe+1D055D: 02 62 00 - add ah,[edx+00] Tutorial-i386.exe+1D0560: FC - cld Tutorial-i386.exe+1D0561: 02 62 00 - add ah,[edx+00] Tutorial-i386.exe+1D0564: 00 03 - add [ebx],al Tutorial-i386.exe+1D0566: 62 00 - bound eax,[eax] Tutorial-i386.exe+1D0568: 04 03 - add al,03 } Оба корректно включают и выключают скрипты. Код Туториала не портится Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 30 апреля, 2017 Поделиться Опубликовано 30 апреля, 2017 2 минуты назад, partoftheworlD сказал: видимо ДБ знает об этом. Думаю да. Это было сделать проще, чем перелопачивать весь , разросшийся код СЕ Ссылка на комментарий Поделиться на другие сайты Поделиться
Foxhound Опубликовано 30 апреля, 2017 Поделиться Опубликовано 30 апреля, 2017 3 minutes ago, partoftheworlD said: И вообще генерация байтами откладывает понемногу в мозгу опкоды и это может помочь в чтении Hex дампа и ориентации в коде. Для профильного специалиста - да, согласен. Но для новичка, типа меня, весьма далёкого от программирования, это просто малопонятный набор цифр, знание которого вряд ли пригодится в будущем. Кстати, случайно не подскажешь какую-нибудь небольшую программку по конвертированию этих самых байт в опкод и обратно? Может калькулятор какой. Ну или способ для начинающих, как это быстро сделать. Не в онлайн-конвертере, естественно. 2 minutes ago, Garik66 said: Ну почему же вот два скрипта про которые я пишу Это всё понятно, речь о том, что при вставке опкодов ошибка как была, так и осталась, а галку-то кликнуть несложно. Ну вот представь, скачивает плагин какой-нибудь малограмотный Foxhound и начинает с его помощью генерить скрипты. Посмотрел, что делает галка. В одном положении - какие-то цифры, а в другом - более-менее понятные инструкции. Потыкал - вроде и то и то работает. И, естественно, ставит галку на опкоды, как более понятную для него запись. При том совершенно правильно и логично поступает, ведь он понятия не имеет о возможной ошибке на нулях - никакой информации, никаких больших красных предупреждений с восклицательными знаками об этом нет. Я сужу даже по себе - мне гораздо удобнее и нагляднее видеть в [DISABLE] опкоды, чем ряд цифр, и до сего дня я именно ими и пользовался, причём если бы для этого требовалось нажимать каждый раз галку - нажимал бы. Т.е., фактически, на пути возможной ошибки появилось одно-единственное маленькое препятствие - лишнее нажатие галки, поэтому я и сказал, что баг "закопан". Скорее даже "слегка присыпан". Понимаешь, о чём я? Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 30 апреля, 2017 Поделиться Опубликовано 30 апреля, 2017 5 минут назад, Foxhound сказал: галку-то кликнуть несложно. Галку теперь кликать нет нужды, если у тебя версия плагина 2.4.0.G66,1. Теперь по умолчанию байты. А, если нужны опкоды, то нажимай. 5 минут назад, Foxhound сказал: Ну или способ для начинающих, как это быстро сделать В своих видео неоднократно показывал способ: Ладно сейчас запишу короткое видео и выложу сюда. Писать долго. Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 30 апреля, 2017 Поделиться Опубликовано 30 апреля, 2017 31 минуту назад, Foxhound сказал: Ну или способ для начинающих, как это быстро сделать. 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Foxhound Опубликовано 30 апреля, 2017 Поделиться Опубликовано 30 апреля, 2017 57 minutes ago, Garik66 said: сейчас запишу короткое видео и выложу сюда. Посмотрел, спасибо. Хорошо, но меня интересует вот какой случай: допустим, я где-то скачал готовый скрипт, где в [DISABLE] последовательность байт, иногда довольно длинная. Как мне узнать, какому коду она соответствует? Игры, под которую написан данный скрипт, у меня нет, ничего подключить и активировать я не могу, оригинальный код синим цветом внизу скрипта не приведён. Такое часто бывает. Что делать в этом случае, как конвертировать? Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 30 апреля, 2017 Поделиться Опубликовано 30 апреля, 2017 4 минуты назад, Foxhound сказал: Что делать в этом случае, как конвертировать? Не нужно конвертировать, а перейти в отладчике (редакторе памяти) на адрес интересующей тебя инструкции. Либо по адресу инъекции, который в логах, либо найдя адрес (если нет логов, либо. если адрес инструкции меняется в игре) по сигнатуре с помощью Сканера сигнатур (как это сделать у меня тоже было во многих видео). И смотреть в отладчике: там 4 столбца Адрес Байты Инструкции и Комментарии. Вот в Байтах будут байты твоей инструкции, а в Инструкциях, соответствующие опкода. Также, уважающие код хакеры, не ломают игровой код и поэтому он скорее всего будет в самом скрипте в [ENABLE] сразу же за code: Скрытый текст { Game : Tutorial-i386.exe Version: 1.0 Date : 04-30-17 Author : [open aamaker.lua and pastle Author] Version CE: 6.5 Make by aamaker Lua plagin Version 2.4.0.G66.1 :) [EN] Technical support: http://forum.cheatengine.org/viewtopic.php?p=5645967 [RU] Техническая поддержка: https://forum.gamehacklab.ru/index.php?/topic/1415-plugin-aa-maker-создание-аа-скриптов } [ENABLE] alloc(newMem,$1000) label(return) newMem: add ah,[edx+00] // Соотвествуют lock add ah,[edx+00] // этим инструкциям jmp return Tutorial-i386.exe+1D0551: jmp newMem nop nop return: [DISABLE] Tutorial-i386.exe+1D0551: db 02 62 00 F0 02 62 00 // Вот эти байты dealloc(newMem) // И ещё они в логах приведены: { // ORIGINAL CODE - INJECTION POINT: Tutorial-i386.exe+1D0551 Tutorial-i386.exe+1D053A: 62 00 - bound eax,[eax] Tutorial-i386.exe+1D053C: D8 02 - fadd dword ptr [edx] Tutorial-i386.exe+1D053E: 62 00 - bound eax,[eax] Tutorial-i386.exe+1D0540: DC 02 - fadd qword ptr [edx] Tutorial-i386.exe+1D0542: 62 00 - bound eax,[eax] Tutorial-i386.exe+1D0544: E0 02 - loopne 005D0548 Tutorial-i386.exe+1D0546: 62 00 - bound eax,[eax] Tutorial-i386.exe+1D0548: E4 02 - in al,02 Tutorial-i386.exe+1D054A: 62 00 - bound eax,[eax] Tutorial-i386.exe+1D054C: E8 026200EC - call EC5D6753 // ---------- INJECTING HERE ----------- Tutorial-i386.exe+1D0551: 02 62 00 //1 - add ah,[edx+00] // -1 // ---------- DONE INJECTING ---------- Tutorial-i386.exe+1D0554: F0 02 62 00 //2 - lock add ah,[edx+00] // -2 Tutorial-i386.exe+1D0558: F4 - hlt Tutorial-i386.exe+1D0559: 02 62 00 - add ah,[edx+00] Tutorial-i386.exe+1D055C: F8 - clc Tutorial-i386.exe+1D055D: 02 62 00 - add ah,[edx+00] Tutorial-i386.exe+1D0560: FC - cld Tutorial-i386.exe+1D0561: 02 62 00 - add ah,[edx+00] Tutorial-i386.exe+1D0564: 00 03 - add [ebx],al Tutorial-i386.exe+1D0566: 62 00 - bound eax,[eax] Tutorial-i386.exe+1D0568: 04 03 - add al,03 } Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 30 апреля, 2017 Поделиться Опубликовано 30 апреля, 2017 20 минут назад, Foxhound сказал: Игры, под которую написан данный скрипт, у меня нет, ЗЫ: не заметил, сейчас и это опишу. Хотя нет, это долго - быстрее видео записать, но уже завтра. Ссылка на комментарий Поделиться на другие сайты Поделиться
partoftheworlD Опубликовано 30 апреля, 2017 Поделиться Опубликовано 30 апреля, 2017 (изменено) 2 часа назад, Foxhound сказал: Кстати, случайно не подскажешь какую-нибудь небольшую программку по конвертированию этих самых байт в опкод и обратно? rasm2 входит в фреймворк radare2 D:\Tools\radare2-w32-1.4.0-git>rasm2.exe -a x86 -d -b32 6200D8026200DC026200E0026200E4026200 bound eax, qword [eax] fadd dword [edx] bound eax, qword [eax] fadd qword [edx] bound eax, qword [eax] loopne 0xe bound eax, qword [eax] in al, 2 bound eax, qword [eax] Список поддерживаемых процессоров Скрытый текст _dAe 8 16 6502 LGPL3 6502/NES/C64/Tamagotchi/T-1000 CPU _dA_ 8 8051 PD 8051 Intel CPU _dA_ 16 32 arc GPL3 Argonaut RISC Core a___ 16 32 64 arm.as LGPL3 as ARM Assembler (use ARM_AS environment) adAe 16 32 64 arm BSD Capstone ARM disassembler _dA_ 16 32 64 arm.gnu GPL3 Acorn RISC Machine CPU _d__ 16 32 arm.winedbg LGPL2 WineDBG's ARM disassembler adAe 8 16 avr GPL AVR Atmel adAe 16 32 64 bf LGPL3 Brainfuck (by pancake, nibble) v4.0.0 _dA_ 16 cr16 LGPL3 cr16 disassembly plugin _dA_ 32 cris GPL3 Axis Communications 32-bit embedded processor adA_ 32 64 dalvik LGPL3 AndroidVM Dalvik ad__ 16 dcpu16 PD Mojang's DCPU-16 _dA_ 32 64 ebc LGPL3 EFI Bytecode adAe 16 gb LGPL3 GameBoy(TM) (z80-like) _dAe 16 h8300 LGPL3 H8/300 disassembly plugin _d__ 32 hppa GPL3 HP PA-RISC _dAe i4004 LGPL3 Intel 4004 microprocessor _dA_ 8 i8080 BSD Intel 8080 CPU adA_ 32 java Apache Java bytecode _d__ 32 lanai GPL3 LANAI _d__ 8 lh5801 LGPL3 SHARP LH5801 disassembler _d__ 32 lm32 BSD disassembly plugin for Lattice Micro 32 ISA _d__ 16 32 m68k BSD Capstone M68K disassembler _dA_ 32 malbolge LGPL3 Malbolge Ternary VM _d__ 16 mcs96 LGPL3 condrets car adAe 16 32 64 mips BSD Capstone MIPS disassembler adAe 32 64 mips.gnu GPL3 MIPS CPU _dA_ 16 msp430 LGPL3 msp430 disassembly plugin _dA_ 32 nios2 GPL3 NIOS II Embedded Processor _dAe 8 pic18c LGPL3 pic18c disassembler _dAe 32 64 ppc BSD Capstone PowerPC disassembler _dA_ 32 64 ppc.gnu GPL3 PowerPC _dA_ 32 64 riscv GPL RISC-V _dAe 32 rsp LGPL3 Reality Signal Processor _dA_ 32 sh GPL3 SuperH-4 CPU _dA_ 8 16 snes LGPL3 SuperNES CPU _dAe 32 64 sparc BSD Capstone SPARC disassembler _dA_ 32 64 sparc.gnu GPL3 Scalable Processor Architecture _d__ 16 spc700 LGPL3 spc700, snes' sound-chip _d__ 32 sysz BSD SystemZ CPU disassembler _dA_ 32 tms320 LGPLv3 TMS320 DSP family _d__ 32 tricore GPL3 Siemens TriCore CPU _dAe 32 v810 LGPL3 v810 disassembly plugin _d__ 32 v850 LGPL3 v850 disassembly plugin _dAe 8 32 vax GPL VAX _d__ 32 wasm MIT WebAssembly (by pancake) v0.1.0 _dA_ 32 ws LGPL3 Whitespace esotheric VM a___ 16 32 64 x86.as LGPL3 Intel X86 GNU Assembler _dAe 16 32 64 x86 BSD Capstone X86 disassembler a___ 16 32 64 x86.nasm LGPL3 X86 nasm assembler a___ 16 32 64 x86.nz LGPL3 x86 handmade assembler _dAe 16 32 64 x86.udis BSD udis86 x86-16,32,64 _dA_ 16 xap PD XAP4 RISC (CSR) _dA_ 32 xcore BSD Capstone XCore disassembler _dAe 32 xtensa GPL3 XTensa CPU adA_ 8 z80 GPL Zilog Z80 Изменено 30 апреля, 2017 пользователем partoftheworlD 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 1 мая, 2017 Поделиться Опубликовано 1 мая, 2017 8 часов назад, Foxhound сказал: Как мне узнать, какому коду она соответствует? Игры, под которую написан данный скрипт, у меня нет, ничего подключить и активировать я не могу, оригинальный код синим цветом внизу скрипта не приведён. Ссылка на комментарий Поделиться на другие сайты Поделиться
MasterGH Опубликовано 1 мая, 2017 Автор Поделиться Опубликовано 1 мая, 2017 17 часов назад, Garik66 сказал: Сам СЕ 6.5 на ней работает корректно, в Плагине работает только корректно "Injection" при оригинальном code в байтах (как и в СЕ) Мне так и не удалось её решить, хотя вижу код @MasterGH из v 2.4.2 (стр. с 480 по 549 + с 559 по 570) вставить в v 2.4.0:G66.1 (стр. с 515 по 579 + с 590 по 598), но по-видимому нужно ещё что-то. Немного пробовал ещё, рассуждения в этом сообщении. Это единственно что не перенесено из версии 2.4.2. в версию 2.4.0:G66.1 Также эта ошибка появляется (только что обнаружил) на моде Diablo The Hell v1 209 Вроде исправил. Цитата 2.09. Исправлен баг: (про сдвиг кода с нопом) Поэтому пришлось изменить надпись в окне "Original code in bytes" на "Original code in opcod" Норм. add ah,[edx] и add ah,[edx + 00] отличаются по размеру на 1 байт, но лишний байт все равно бы нопился при восстановлении. Даже если бы не исправляли, то не должно было приводить к ошибке. Исправлено 3.01 3.02 3.03 Исправлена для cmp инструкции. Набор стал таким PATTERN = { ['inc'] = 'mov->>type[x],->>value', ['cmp'] = 'mov->>type[x],->>value\r\n->>originalCode', ['mov'] = 'mov->>type[x],->>value\r\n->>originalCode', ['fld'] = 'mov->>type[x],->>value\r\n->>originalCode', ['fstp'] = '->>originalCode\r\n'..'mov->>type[x],->>value' } На других инструкциям mov [x], value не будет и нужно этот набор заполнять ими. Cmp я добавил Не исправлено: 3.04. Отображение в логах в скриптах адресов в таком виде. Тут проблемка с тем чтобы получить модуль плюс оффест, а не модуль + символьное имя + оффест. Пример print(getNameFromAddress('00439D10')) --Получит Tutorial-i386.exe+39D10 --Но, если будет символьное имя, то мог бы вернуть что-то типа Tutorial-i386.exe+СТРОКА.СТРОКА + 39D10 Покак такой вариант aamaker V240_G66-2.lua Остальным займусь как время будет. Пока можно потестить что есть. Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 1 мая, 2017 Поделиться Опубликовано 1 мая, 2017 7 минут назад, MasterGH сказал: Вроде исправил. Теперь не один скрипт (В версии 3.2 по адресу Tutorial-i386.exe+1D0551) написать нельзя, LUA пишет result == nil. Change "+X-C*W" add ah,[edx+00] lock add ah,[edx+00] @A8 add ah,[edx+00] lock add ah,[edx+00] @A9 Ссылка на комментарий Поделиться на другие сайты Поделиться
MasterGH Опубликовано 1 мая, 2017 Автор Поделиться Опубликовано 1 мая, 2017 Скинь пожалуйста свой Tutorial-i386.exe в архиве. У меня по адресу Tutorial-i386.exe+1D0551 от CE 6.6 другие инструкции и сигнатуру не могу найти. Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 1 мая, 2017 Поделиться Опубликовано 1 мая, 2017 8 часов назад, MasterGH сказал: Tutorial-i386.exe в архиве. Удалил архив. Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения