Перейти к содержанию

Рекомендуемые сообщения

Всем привет!

Решил пересесть с нупов на инъекцию кода... В качестве подопытной взял игру Metro: Last Light !

Ну и начать хотел с патронов. Но при инъекции на патроны, они почему то не реагируют...

Вот скрипт:


[ENABLE]
alloc(newmem,2048)
label(returnhere)
label(originalcode)
label(exit)
newmem:
mov [edi+000002BC],30
originalcode:
mov [edi+000002BC],eax
exit:
jmp returnhere
"MetroLL.exe"+266D29:
jmp newmem
nop
returnhere:



[DISABLE]
dealloc(newmem)
"MetroLL.exe"+266D29:
mov [edi+000002BC],eax

Что это может быть?

Заранее спасибо.

Ссылка на комментарий
Поделиться на другие сайты

вот эта строчка пугает ))


newmem:
mov [edi+000002BC],0x30
originalcode:
mov [edi+000002BC],eax

Попробуй убрать


originalcode:
mov [edi+000002BC],eax

или заменить на


originalcode:
mov [edi+000002BC],0x30

спасибо, попробую)

Ссылка на комментарий
Поделиться на другие сайты

спасибо, попробую)

Попробуй вот


[ENABLE]
alloc(newmem,2048)
label(returnhere)
label(originalcode)
label(exit)
newmem:

originalcode:
mov [edi+000002BC],0x1E
mov [edi+000002BC],eax
exit:
jmp returnhere
"MetroLL.exe"+266D29:
jmp newmem
nop
returnhere:

[DISABLE]
dealloc(newmem)
"MetroLL.exe"+266D29:
mov [edi+000002BC],eax

Ссылка на комментарий
Поделиться на другие сайты

Попробуй вот


[ENABLE]
alloc(newmem,2048)
label(returnhere)
label(originalcode)
label(exit)
newmem:

originalcode:
mov [edi+000002BC],0x1E
mov [edi+000002BC],eax
exit:
jmp returnhere
"MetroLL.exe"+266D29:
jmp newmem
nop
returnhere:

[DISABLE]
dealloc(newmem)
"MetroLL.exe"+266D29:
mov [edi+000002BC],eax

у меня вышло вот так:


[ENABLE]
alloc(newmem,2048)
label(returnhere)
label(exit)
newmem:
mov [edi+000002BC],45
exit:
jmp returnhere
"MetroLL.exe"+266D29:
jmp newmem
nop
returnhere:
[DISABLE]
dealloc(newmem)
"MetroLL.exe"+266D29:
mov [edi+000002BC],eax

Ссылка на комментарий
Поделиться на другие сайты

Дак правильно, голову-то иногда включать надо. В инъекции ты вбиваешь нужное тебе число, а в секции оригинального кода записываешь то, что игра должна писать "по сценарию". Вот и получается, что твоя запись вообще ни к чему. Уж если на то пошло и нужно сохранить оригинальный код во что бы то ни стало - тогда нужно просто в еах загонять нужное тебе число, и пусть себе дальше выполняется оригинальная инструкция. Эффект будет тот же.

Ссылка на комментарий
Поделиться на другие сайты

Дак правильно, голову-то иногда включать надо. В инъекции ты вбиваешь нужное тебе число, а в секции оригинального кода записываешь то, что игра должна писать "по сценарию". Вот и получается, что твоя запись вообще ни к чему. Уж если на то пошло и нужно сохранить оригинальный код во что бы то ни стало - тогда нужно просто в еах загонять нужное тебе число, и пусть себе дальше выполняется оригинальная инструкция. Эффект будет тот же.


[ENABLE]
alloc(newmem,2048)
label(returnhere)
label(exit)
newmem:
mov eax,#FFFFF
mov [edi+000002BC],eax
exit:
jmp returnhere
"MetroLL.exe"+266D29:
jmp newmem
nop
returnhere:
[DISABLE]
dealloc(newmem)
"MetroLL.exe"+266D29:
mov [edi+000002BC],eax

ты это хотел сказать ?))

Ссылка на комментарий
Поделиться на другие сайты

×
×
  • Создать...

Важная информация

Находясь на нашем сайте, Вы автоматически соглашаетесь соблюдать наши Условия использования.