Fixer Опубликовано 17 ноября, 2013 Поделиться Опубликовано 17 ноября, 2013 Всем привет!Решил пересесть с нупов на инъекцию кода... В качестве подопытной взял игру Metro: Last Light !Ну и начать хотел с патронов. Но при инъекции на патроны, они почему то не реагируют...Вот скрипт:[ENABLE]alloc(newmem,2048)label(returnhere)label(originalcode)label(exit)newmem:mov [edi+000002BC],30originalcode:mov [edi+000002BC],eaxexit:jmp returnhere"MetroLL.exe"+266D29:jmp newmemnopreturnhere:[DISABLE]dealloc(newmem)"MetroLL.exe"+266D29:mov [edi+000002BC],eaxЧто это может быть?Заранее спасибо. Ссылка на комментарий Поделиться на другие сайты Поделиться
DenkA003 Опубликовано 17 ноября, 2013 Поделиться Опубликовано 17 ноября, 2013 вот эта строчка пугает ))newmem:mov [edi+000002BC],0x30originalcode:mov [edi+000002BC],eaxПопробуй убрать originalcode:mov [edi+000002BC],eaxили заменить наoriginalcode:mov [edi+000002BC],0x30 Ссылка на комментарий Поделиться на другие сайты Поделиться
Fixer Опубликовано 17 ноября, 2013 Автор Поделиться Опубликовано 17 ноября, 2013 вот эта строчка пугает ))newmem:mov [edi+000002BC],0x30originalcode:mov [edi+000002BC],eaxПопробуй убрать originalcode:mov [edi+000002BC],eaxили заменить наoriginalcode:mov [edi+000002BC],0x30спасибо, попробую) Ссылка на комментарий Поделиться на другие сайты Поделиться
DenkA003 Опубликовано 17 ноября, 2013 Поделиться Опубликовано 17 ноября, 2013 спасибо, попробую)Попробуй вот[ENABLE]alloc(newmem,2048)label(returnhere)label(originalcode)label(exit)newmem:originalcode:mov [edi+000002BC],0x1Emov [edi+000002BC],eaxexit:jmp returnhere"MetroLL.exe"+266D29:jmp newmemnopreturnhere:[DISABLE]dealloc(newmem)"MetroLL.exe"+266D29:mov [edi+000002BC],eax Ссылка на комментарий Поделиться на другие сайты Поделиться
Fixer Опубликовано 17 ноября, 2013 Автор Поделиться Опубликовано 17 ноября, 2013 Попробуй вот[ENABLE]alloc(newmem,2048)label(returnhere)label(originalcode)label(exit)newmem:originalcode:mov [edi+000002BC],0x1Emov [edi+000002BC],eaxexit:jmp returnhere"MetroLL.exe"+266D29:jmp newmemnopreturnhere:[DISABLE]dealloc(newmem)"MetroLL.exe"+266D29:mov [edi+000002BC],eaxу меня вышло вот так:[ENABLE]alloc(newmem,2048)label(returnhere)label(exit)newmem:mov [edi+000002BC],45exit:jmp returnhere"MetroLL.exe"+266D29:jmp newmemnopreturnhere:[DISABLE]dealloc(newmem)"MetroLL.exe"+266D29:mov [edi+000002BC],eax Ссылка на комментарий Поделиться на другие сайты Поделиться
Xipho Опубликовано 17 ноября, 2013 Поделиться Опубликовано 17 ноября, 2013 Дак правильно, голову-то иногда включать надо. В инъекции ты вбиваешь нужное тебе число, а в секции оригинального кода записываешь то, что игра должна писать "по сценарию". Вот и получается, что твоя запись вообще ни к чему. Уж если на то пошло и нужно сохранить оригинальный код во что бы то ни стало - тогда нужно просто в еах загонять нужное тебе число, и пусть себе дальше выполняется оригинальная инструкция. Эффект будет тот же. Ссылка на комментарий Поделиться на другие сайты Поделиться
DenkA003 Опубликовано 17 ноября, 2013 Поделиться Опубликовано 17 ноября, 2013 Дак правильно, голову-то иногда включать надо. В инъекции ты вбиваешь нужное тебе число, а в секции оригинального кода записываешь то, что игра должна писать "по сценарию". Вот и получается, что твоя запись вообще ни к чему. Уж если на то пошло и нужно сохранить оригинальный код во что бы то ни стало - тогда нужно просто в еах загонять нужное тебе число, и пусть себе дальше выполняется оригинальная инструкция. Эффект будет тот же.[ENABLE]alloc(newmem,2048)label(returnhere)label(exit)newmem:mov eax,#FFFFFmov [edi+000002BC],eaxexit:jmp returnhere"MetroLL.exe"+266D29:jmp newmemnopreturnhere:[DISABLE]dealloc(newmem)"MetroLL.exe"+266D29:mov [edi+000002BC],eaxты это хотел сказать ?)) Ссылка на комментарий Поделиться на другие сайты Поделиться
Xipho Опубликовано 17 ноября, 2013 Поделиться Опубликовано 17 ноября, 2013 Именно. Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения