| eXeL@B —› Вопросы новичков —› Подмена ф-ции | 
| Посл.ответ | Сообщение | 
| 
 | 
Создано: 22 января 2010 23:28  · Личное сообщение · #1 Есть вызов ф-ции DrawTextA из приложения по определеному адресу, хочу подменить на вызов своей ф-ци NewDrawTextA, пишу на делфях, делаю так: JmpDrawTA.CallOp := $E8; JmpDrawTA.CallArg := @NewDrawTextA; ................................................................... WriteProcessMemory(INVALID_HANDLE_VALUE, AdrDrawTA, @JmpDrawTA, SizeOf(far_jmp_new), Bytes); в итоге вызов идет в никуда, понимаю что ламерский вопрос, но прошу помощи. ![]()  | 
| 
 | 
Создано: 22 января 2010 23:36  · Личное сообщение · #2  | 
| 
 | 
Создано: 22 января 2010 23:42  · Личное сообщение · #3  | 
| 
 | 
Создано: 23 января 2010 00:04  · Личное сообщение · #4  | 
| 
 | 
Создано: 23 января 2010 00:18 · Поправил: yanus0  · Личное сообщение · #5 _ruzmaz_ спасибо, но хендл хендлом, а переход на ф-цию не получается. если делать переход через push: push adr; retn; то все ок, в adr адрес функции тоесть: JmpDrawTA.CallOp := $68; JmpDrawTA.CallArg := @NewDrawTextA; JmpDrawTA.NopOp:= $С3; а через call не получаеться. структура far_jmp_new = packed record CallOp: byte; CallArg: pointer; NopOp:byte; end; ![]()  | 
| 
 | 
Создано: 23 января 2010 00:23 · Поправил: _ruzmaz_  · Личное сообщение · #6  | 
| 
 | 
Создано: 23 января 2010 00:32  · Личное сообщение · #7  | 
| 
 | 
Создано: 23 января 2010 00:47 · Поправил: _ruzmaz_  · Личное сообщение · #8 BoRoV пишет: наверное она и есть в этой длл что инжектится наверно так, да yanus0 пишет: JmpDrawTA.CallOp := $E8; JmpDrawTA.CallArg := @NewDrawTextA; ................................................................... тогда там нужно не @NewDrawTextA, а смещение NewDrawTextA относительно инструкции, следующей за call ![]()  | 
| 
 | 
Создано: 23 января 2010 04:20  · Личное сообщение · #9  | 
| 
 | 
Создано: 23 января 2010 20:56  · Личное сообщение · #10  | 
| eXeL@B —› Вопросы новичков —› Подмена ф-ции | 
| Эта тема закрыта. Ответы больше не принимаются. | 





 Для печати