Detours.

????, ?????????? ??? Detours ????????????? ??????? Win32 API. ???? ???? ????????. ? ?????? ??????? ??????? ??????????? JMP ?? ??????? ???????????. ??? ????, ????? ??????? ???????????? ???????, ?? ???, ?? ????? ???????? ?????????? JMP, ?????????? ? ????? ? ??????????? ??????????? JMP ?? ?????? ?????????? ??????????.

?????????, ??????, ?? ???, ? ??????? ?????????????? ???????? ????????, ????? ???????? ?????????? ????? ??????:

  1. ??????????, ?? ????????? ?? ????????? ?? ??????????????? ???????, ?? ?? ???? ???????, ? ?? ??????? ??????? ???????. ???? ???, ?? ? ???????? ????????? ??????? imm32 ?? JMP;
  2. ??????????? ????? ???????, ?????? ?????????, ??? ??????? ????? ??????????? RET, JMP (?????? ????????) ??? INT3. ????????? ??? ???????? ?? ????? ????????, ???? ??? ??????? ?? ??? ?????????? ????, ??? ? ????;
  3. ????? JMP, ???????????? ????????????? ?? ??????? ???, ??????? INT3. ?? ??, ?? ?????? ??????;
  4. ??? ????????? ????????????? ???????? ? ??????????. ??????????????? (??? ?????????) ???? ??? ????????????, ???? ?????????? ????????????. ???????, 100% ???????? ??? ??? ????? ?? ????;
  5. ?? ? ???? ?? ????? ?????????????? ??????????? ????????? ?????????????, ??? ??? ????? ???????? ??????? ? ???????????? ??????????.

? ???? ?????? ?? ??????? ?????? ????????? hotpatching. ???, ???????????????? ? ?????????? hotpatching ????? ??????? ????? ?? ????, ?? ???????????? ?????? ? ????????.

Cross-posted from blog.not-a-kernel-guy.com.