| 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   | Сообщение посчитали полезным: MasterSoft | 
| 
 | 
Создано: 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? | 
| Эта тема закрыта. Ответы больше не принимаются. | 




















 Для печати