{"author_name":"i-saint","provider_name":"Hatena Blog","type":"rich","provider_url":"https://hatena.blog","blog_url":"https://i-saint.hatenablog.com/","title":"function hooking","description":"\u3053\u3053\u6570\u30f6\u6708\u3067\u3044\u308d\u3093\u306a\u95a2\u6570 hook \u3092\u8a66\u3057\u305f\u306e\u3067\u30e1\u30e2\u3002Windows \u3067\u3057\u304b\u8a66\u3057\u3066\u3044\u307e\u305b\u3093\u304c\u3001x86/64 \u3067\u3042\u308c\u3070\u4ed6\u306e\u30d7\u30e9\u30c3\u30c8\u30d5\u30a9\u30fc\u30e0\u3067\u3082\u540c\u7b49\u306e\u3053\u3068\u304c\u3067\u304d\u308b\u306f\u305a\u3067\u3059\u3002 \u95a2\u6570 hook \u3068 dll injection \u306f\u89e3\u6790/\u30c7\u30d0\u30c3\u30b0\u30c4\u30fc\u30eb\u3084\u3089\u52d5\u753b\u30ad\u30e3\u30d7\u30c1\u30e3\u30c4\u30fc\u30eb\u306e\u985e\u3092\u4f5c\u308b\u305f\u3081\u306e\u57fa\u790e\u6280\u8853\u306b\u306a\u308a\u307e\u3059\u3002 \u30fbvftable Swapping (sample code) vftable \u3092\u3059\u308a\u66ff\u3048\u308b\u3053\u3068\u3067 virtual \u95a2\u6570\u3092 hook \u3059\u308b\u65b9\u6cd5\u3002vftable \u306e\u69cb\u9020\u304c\u30b3\u30f3\u30d1\u30a4\u30e9\u4f9d\u5b58\u3067\u306f\u3042\u308b\u3082\u306e\u306e\u3001OS \u306e API \u306a\u3069\u3092\u5fc5\u8981\u3068\u305b\u305a\u304a\u624b\u8efd\u3067\u3059\u3002 interface class \u306e\u307f\u304c\u63d0\u4f9b\u3055\u308c\u3001\u5b9f\u88c5\u2026","height":"190","categories":[],"author_url":"https://blog.hatena.ne.jp/i-saint/","url":"https://i-saint.hatenablog.com/entry/2013/07/19/205539","blog_title":"primitive: blog","html":"<iframe src=\"https://hatenablog-parts.com/embed?url=https%3A%2F%2Fi-saint.hatenablog.com%2Fentry%2F2013%2F07%2F19%2F205539\" title=\"function hooking - primitive: blog\" class=\"embed-card embed-blogcard\" scrolling=\"no\" frameborder=\"0\" style=\"display: block; width: 100%; height: 190px; max-width: 500px; margin: 10px 0px;\"></iframe>","published":"2013-07-19 20:55:39","width":"100%","version":"1.0","image_url":null}