Вход

Просмотр полной версии : [ASM] Манипуляция


VISTALL
28.05.2010, 18:05
Здраствуйте, есть нубский вопрос. Пожалуйста не посылайте читать книги или прочее по ассемблеру, ибо мне легче изучить по опыту...
Есть простенький код
http://i077.radikal.ru/1005/cd/2301eda2a3ae.jpg

вопрос как заменить
call 771B48BE

На вызов своего адреса....типа
call 43434343

Лучше пример на С++(асм вставка(_asm) или методами С++), или чистый асм(нежелаетьно)

slesh
28.05.2010, 18:19
Это код где? В твоей проге или в чужой?
Если в твоей, то делай VirtualProtect на этот адрес чтобы была права на запись
затем просто тупо меняй значения *(ULONG*)addr = NewAddr;
Если это в чужой проге, то юзай WriteProcessMemory

VISTALL
28.05.2010, 18:22
да делаю в середине проги...
Пожалуйста поподробней если что пример набросать

VISTALL
28.05.2010, 18:40
буду очень благодарен

BrainDeaD
28.05.2010, 19:41
да делаю в середине проги...тебе же ясно задали вопрос: в чьей проге твоей или чужой?

VISTALL
28.05.2010, 19:57
сори) тупанул....в своей

BrainDeaD
28.05.2010, 20:29
DWORD OldProtect;
DWORD addr = АДРЕС_МЕСТА_КОТОРОЕ_НУЖНО_П РОПАТЧИТЬ;
VirtualProtect(addr, 4, PAGE_EXECUTE_READWRITE, &OldProtect);

*(ULONG*)addr = НОВОЕ_ЗНАЧЕНИЕ;

VirtualProtect(addr, 4, OldProtect, &OldProtect);

VISTALL
28.05.2010, 20:43
спасиб) посмотри что поправит

miako
29.05.2010, 01:07
Скрин вроде из оли? Там же можно на лету менять, жмякай пробел и пиши свой адресс :)

VISTALL
29.05.2010, 08:56
скрин то да) я то изменю) а дальше?) мне нужно изменения сделать на Си, что б длл засунуть