X86Jumps Опубликовано 31 августа, 2017 Поделиться Опубликовано 31 августа, 2017 (изменено) думал, можно ли данные выравнять по 16 байт например? в lua можно только к символам обратиться жаль нельзя label получать список или alloc я набросал такой скрипт хотя хотелось бы избавиться от label лишнего Скрытый текст script = [[ [ENABLE] //code from here to '[DISABLE]' will be used to enable the cheat alloc(newmem,2048) label(returnhere) label(originalcode) label(exit) registerSymbol(align) label(align) label(data) newmem: //this is allocated memory, you have read,write,execute access //place your code here originalcode: movss [esi+0000486C],xmm0 exit: jmp returnhere align: data: dd 0 "BH6.exe"+159DD6: jmp newmem nop nop nop returnhere: [DISABLE] //code from here till the end of the code will be used to disable the cheat dealloc(newmem) "BH6.exe"+159DD6: movss [esi+0000486C],xmm0 //Alt: db F3 0F 11 86 6C 48 00 00 ]]; autoAssemble(script) for i=0,getAddress("align")%16 do writeBytes(getAddress("align"),0x90); end print(string.format("%x",getAddress("align"))) unregisterSymbol("align") но ссылается по-старому получается надо 1 раз вставить определить размер и во второй раз дописать nop'ы Изменено 31 августа, 2017 пользователем X86Jumps Ссылка на комментарий Поделиться на другие сайты Поделиться
X86Jumps Опубликовано 31 августа, 2017 Автор Поделиться Опубликовано 31 августа, 2017 (изменено) что то вроде такого Скрытый текст script = [[ [ENABLE] //code from here to '[DISABLE]' will be used to enable the cheat alloc(newmem,2048) label(returnhere) label(originalcode) label(exit) registerSymbol(align) label(align) label(data) newmem: //this is allocated memory, you have read,write,execute access //place your code here push eax mov eax,(float)255.0 mov [data],eax pop eax originalcode: movss [esi+0000486C],xmm0 exit: jmp returnhere align: //aligndatahere data: dd -1 "BH6.exe"+159DD6: jmp newmem nop nop nop returnhere: [DISABLE] //code from here till the end of the code will be used to disable the cheat dealloc(newmem) "BH6.exe"+159DD6: movss [esi+0000486C],xmm0 //Alt: db F3 0F 11 86 6C 48 00 00 ]]; result, disableinfo = autoAssemble(script) str = string.rep("nop\n", getAddress("align")%16) autoAssemble(script, disableinfo) unregisterSymbol("align") --for i=0,getAddress("align")%16 do writeBytes(getAddress("align"),0x90); end --print(string.format("%x",getAddress("align"))) script2 = string.gsub(string.gsub(string.gsub(string.gsub(script, "//aligndatahere", str), "registerSymbol(align)",""), "label(align)",""), "align","") autoAssemble(script2) без disableinfo почему то не вырубает, можно было бы просто true передавать (я дописал push ... pop чтоб надо было больше вставлять для выравнивания) Изменено 31 августа, 2017 пользователем X86Jumps Ссылка на комментарий Поделиться на другие сайты Поделиться
X86Jumps Опубликовано 1 сентября, 2017 Автор Поделиться Опубликовано 1 сентября, 2017 забыл (точнее не особо и знал)) ) что в gsub reg exp надо было экранировать скобки Цитата script2 = string.gsub(string.gsub(string.gsub(string.gsub(script, "//aligndatahere", str), "registerSymbol%(align%)",""), "label%(align%)",""), Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения