![]() |
eXeL@B —› Вопросы новичков —› Как заменить cmp? |
Посл.ответ | Сообщение |
|
Создано: 13 августа 2011 13:12 · Личное сообщение · #1 Вот кусок кода из IDA: Code:
беда в том что в это сравнивание больше байта не запишешь .text:004C47E3 028 cmp ebx, 4Bh как мне пачнуть его чтобы можно было записывать 2 байта туда, писал такую функцию: Code:
Пытался кусок кода заменить, но все равно ошибка! Code:
Сделал и так, все ровно вылет: Code:
кто знает выход из данной ситуации, пожалуйста помогите! ![]() |
|
Создано: 13 августа 2011 13:21 · Поправил: daFix · Личное сообщение · #2 CMP EBX,4B (83 FB 4B) Тут в вашем распоряжении целых 3 байта. Но приведённый выше код больше похож на мусор. Можете рассказать о жертве и какова конечная цель? Если вы просто хотите через инжект записать туда нужные байты, тогда сделайте так: asm { mov [addr + 00], 01 mov [addr + 01], 02 mov [addr + 02], 03 } Вместо addr + 00 просто запишите нужный адрес. Если аттрибуты секции не позволяют туда писать, тогда надо установить нужные спомощью VirtualProtect, как вы это и делали в приведённом выше посте ----- Research For Food ![]() |
|
Создано: 13 августа 2011 13:22 · Личное сообщение · #3 |
|
Создано: 13 августа 2011 14:00 · Личное сообщение · #4 ТС походу вообще не понимает что делает ----- Yann Tiersen best and do not fuck ![]() |
|
Создано: 13 августа 2011 16:28 · Личное сообщение · #5 |
|
Создано: 13 августа 2011 16:32 · Личное сообщение · #6 |
|
Создано: 13 августа 2011 17:20 · Личное сообщение · #7 |
|
Создано: 13 августа 2011 17:26 · Поправил: reversecode · Личное сообщение · #8 |
|
Создано: 13 августа 2011 17:42 · Личное сообщение · #9 |
|
Создано: 13 августа 2011 21:14 · Личное сообщение · #10 |
|
Создано: 13 августа 2011 21:15 · Личное сообщение · #11 |
|
Создано: 13 августа 2011 21:25 · Личное сообщение · #12 |
|
Создано: 13 августа 2011 21:30 · Личное сообщение · #13 |
|
Создано: 13 августа 2011 22:46 · Поправил: MasterSoft · Личное сообщение · #14 видимо ТС не может сформулировать и внятно изложить то, чего он хочет. ![]() VintProg OKOB пишет: Ты на функцию передаешь управление через JUMP, а возвращаешься через RET. Откуда в стеке возьмется адрес возврата?? я думаю OKOB как бэ намекал тебе, что нужно делать через CALL ![]() это меня ваще убило: VintProg пишет: надо увеличить cmp: Code:
увеличить? легко! Code:
или может я не так понял? тогда вот сойдёт? ![]() ![]() |
|
Создано: 14 августа 2011 06:24 · Личное сообщение · #15 |
|
Создано: 14 августа 2011 06:31 · Поправил: Isaev · Личное сообщение · #16 |
|
Создано: 14 августа 2011 10:49 · Поправил: Veliant · Личное сообщение · #17 Покажу наглядно было Code:
станет Code:
Если повезет, то JMP patch будет локальным и поместится в 2 байта, и тогда nextcommand не надо будет перемещать. Если же дальний, то займет 5 байт, 3 из них попадут на следующие команды, вот их и надо копировать (только не 3 байта, а столько, сколько занимают команды) ![]() |
|
Создано: 14 августа 2011 10:53 · Поправил: MasterSoft · Личное сообщение · #18 VintProg пишет: Беда в том что туда больше байта нельзя писать, теперь понятно? теперь вполне. Code:
![]() |
|
Создано: 14 августа 2011 14:38 · Личное сообщение · #19 |
|
Создано: 14 августа 2011 14:43 · Личное сообщение · #20 |
|
Создано: 14 августа 2011 15:14 · Личное сообщение · #21 |
![]() |
eXeL@B —› Вопросы новичков —› Как заменить cmp? |
Эта тема закрыта. Ответы больше не принимаются. |