Сейчас на форуме: -Sanchez-, barsik, vasilevradislav, vsv1, padad42664, kris_sexy (+6 невидимых) |
eXeL@B —› Крэки, обсуждения —› Inline NsPack3.x |
Посл.ответ | Сообщение |
|
Создано: 19 мая 2007 18:16 · Личное сообщение · #1 Собственно сабж. Дошел до прыга на оеп: 006082EB 61 popad 006082EC 9D popfd 006082ED B8 01000000 mov eax,1 006082F2 C2 0C00 retn 0C 006082F5 61 popad 006082F6 9D popfd 006082F7 -E9 7888F6FF jmp packed.00570B74 <--- прыг 006082FC 8BB5 1BFAFFFF mov esi,dword ptr ss:[ebp-5E5] 00608302 0BF6 or esi,esi После джампа идет всякая ботва которая к лоадеру пакера вроде не относится. Затираю джамп и вписываю: mov byte ptr ds:[0056BF54], 0B8 mov byte ptr ds:[0056BF55], 01 mov byte ptr ds:[0056BF56], 00 mov byte ptr ds:[0056BF57], 00 mov byte ptr ds:[0056BF58], 00 jmp 00570B74 Прога вываливается в ексепшион. Кто знает, в чем косяк? Подскажите. ----- xchg dword [eax], eax |
|
Создано: 19 мая 2007 18:19 · Личное сообщение · #2 |
|
Создано: 19 мая 2007 18:38 · Личное сообщение · #3 |
|
Создано: 19 мая 2007 18:45 · Личное сообщение · #4 |
|
Создано: 19 мая 2007 18:49 · Личное сообщение · #5 |
|
Создано: 19 мая 2007 19:00 · Личное сообщение · #6 |
|
Создано: 19 мая 2007 19:05 · Поправил: FrenFolio · Личное сообщение · #7 Hellspawn пишет: лучше поправь jmp packed.00570B74 на пустое место, а там впиши свой код Вариантов тут может быть несколько. Задет stub распаковщика, - это чревато ошибками при инлайне. Нельзя забывать про один важный момент, - тип перехода, - короткий или длинный. Дело в том, что выбрав свободное место, куда будешь вписывать свой код, может так оказаться, что переход превратится в длинный, для которого используется целых 12 байт, в отличие от короткого с его 2 байтами! В этом случае ты также затрешь команды в коде. Интервал адресного пространства, в пределах которого работает короткий переход = 80 байт. Поэтому нужно по правилам инлайн-патчинга перед передачей управления на OEP сделать прыжок в свободное место кода и выполнить свой патчащий код, а затем уже оттуда и прыгать на предпоследнюю команду перед переходом на OEP. Типа такого jmp packed.<code cave> ;переход на пустое место в коде
Может быть в проге используется контроль целостности? Отсюда и вылет в эксепшн. Попробуй сделать лоадер... ----- Программист SkyNet |
|
Создано: 19 мая 2007 19:13 · Личное сообщение · #8 FrenFolio Ты прав, задет stub распаковщика, я не до конца разобрался и уже полез делать инлайн Инструкции которые идут после джампа на оеп используется в одной из функций распаковщика, так что придется искать свободное место или создавать дополнительную секцию и уже туда прыгать, а уж потом на оеп. ----- xchg dword [eax], eax |
|
Создано: 19 мая 2007 20:19 · Личное сообщение · #9 |
|
Создано: 20 мая 2007 17:03 · Личное сообщение · #10 |
|
Создано: 21 мая 2007 10:45 · Личное сообщение · #11 |
|
Создано: 08 сентября 2007 16:26 · Личное сообщение · #12 |
|
Создано: 08 сентября 2007 20:30 · Личное сообщение · #13 |
eXeL@B —› Крэки, обсуждения —› Inline NsPack3.x |