vs2013编译

//inline hook 实际上就是指 通过改变目标函数头部的代码来使改变后的代码跳转至我们自己设置的一个函数里,产生hook.#include <windows.h>
#include <stdio.h>//定义一个与MessageBoxA类型一致的函数指针。
typedef int (WINAPI * MessageBox_type)(HWND hWnd, LPCSTR lpText, LPCSTR lpCaption, UINT uType);
MessageBox_type RealMessageBox = MessageBoxA;//自定义的MessageBox,每调用MessageBox都要跳到myMessageBox来处理
_declspec(naked) void   MyMessageBox(HWND hWnd, LPCSTR  lpText, LPCSTR  lpCaption, UINT uType)
{__asm{push ebpmov ebp,esppush esi}printf("Hwnd %08x,%s,%s,%d", hWnd, lpText, lpCaption, uType);__asm{pop esimov ebx,RealMessageBoxadd ebx,5jmp ebx}
}#pragma pack(1)
typedef struct _JMPCODE
{BYTE   jmp;DWORD   addr;
}JMPCODE,*PJMPCODE;void HookMessageBoxA()
{JMPCODE    jcode;jcode.jmp = 0xe9;jcode.addr = (DWORD)MyMessageBox - (DWORD)RealMessageBox - 5;::WriteProcessMemory(GetCurrentProcess(), RealMessageBox, &jcode, sizeof(jcode), NULL);
}
int main(int argc, char * argv[])
{HookMessageBoxA();  //hook操作::MessageBoxA(NULL, "InlineHOOK", "Title", MB_OK); //直接加双冒号::表示使用全局函数,当全局函数没有该函数时即指API函数。getchar();return 0;
}

成功劫持到了传入的参数。

inline hook学习相关推荐

  1. Windows驱动开发学习笔记(六)—— Inline HOOK

    Windows驱动开发学习笔记(六)-- Inline HOOK SSDT HOOK Inline Hook 挂钩 执行流程 脱钩 实验一:3环 Inline Hook 实验二:0环 Inline H ...

  2. 学习windows 应用层 inline hook 原理总结

    inline hook 实际上就是指 通过改变目标函数头部的代码来使改变后的代码跳转到我们自己设置的一个函数里,产生hook. 今天就拿MessageBoxA这个api函数来做实验.功能就是当程序调用 ...

  3. PLT hook与Inline hook

    前言 在目前的安卓APP测试中对于Native Hook的需求越来越大,越来越多的APP开始逐渐使用NDK来开发核心或者敏感代码逻辑. 个人认为原因如下: 安全的考虑.各大APP越来越注重安全性,ND ...

  4. 如何写一个Android inline hook框架

    Android_Inline_Hook https://github.com/GToad/Android_Inline_Hook_ARM64 有32和64的实现,但是是分离的,要用的话还要自己把两份代 ...

  5. Windows下x86和x64平台的Inline Hook介绍

    原文链接:https://blog.csdn.net/PeaZomboss/article/details/129095200?spm=1001.2014.3001.5501 前言 我在之前研究文明6 ...

  6. 关于Win7 x64 Shadow SSDT 的探索和 Inline HOOK

    http://bbs.pediy.com/thread-210481.htm 来看雪一年了,在这里面学到了很多知识,非常感谢各位前辈对知识的分享和不懈的研究,也非常感谢各位大神对我们这些小白的照顾,特 ...

  7. API hook原理和实例快速入门(inline hook),以dll线程注入方式使用(win7-64bit)

    一个完整的hook,如果hook程序是以dll形式生成的,是分两步:1.完成dll本身的设计和生成,2.完成dll注入程序的设计和生成 本文完成第一步. 第二步在http://blog.csdn.ne ...

  8. C语言playsoundw函数,使用inline hook实现修改PC微信通知铃声-哥哥微信来了

    本帖最后由 bester 于 2020-2-15 01:20 编辑 原贴:https://www.52pojie.cn/thread-1103441-1-1.html 最近频繁刷某音刷到哥哥微信来了的 ...

  9. Inline Hook

    @author: dlive IAT Hook时如果要钩取的API不在IAT中(LoadLibrary后调用),则无法使用该技术.而Inline Hook不存在这个限制. 0x01 Inline Ho ...

最新文章

  1. cs硕士妹子找工作经历【阿里人搜等互联网】
  2. 【转】Microsoft Graph 概述
  3. Linux触发连锁反应,惠及全球
  4. 你知道应聘上一份机器学习的工作需要哪些条件吗?
  5. eclipse启动不起来,eclipse.ini配置问题(支持大内存64bit问题)
  6. java面对对象 关键字this super
  7. Socket 连接建立过程
  8. 线程安全的set_「Java」 - 多线程四 amp; ThreadLocal
  9. (29)Spring boot 文件上传(多文件上传)【从零开始学Spring Boot】
  10. Python中终端彩色打印输出
  11. SQLServer2012服务无法启动Windows不能在本地计算机启动SQLServer(SQLEXPRESS)
  12. QQ登录界面实现代码
  13. 冥想第二百五十六天。
  14. cmsplus实战之仿[我扫网]之四:安装整站下载器并下载仿站所有数据
  15. read函数和write函数的使用
  16. 程序员如何读懂火焰图
  17. 开放式耳机哪个品牌好?南卡、韶音、索尼、Oladance开放式耳机推荐
  18. 六、React(Component)
  19. java set子集_Java程序来检查一个集合是否是另一个集合的子集
  20. 个人项目github链接及README.md

热门文章

  1. Python之seaborn:利用seaborn的color_palette()函数改变绘图界面风格
  2. Pytorch之CNN:基于Pytorch框架实现经典卷积神经网络的算法(LeNet、AlexNet、VGG、NIN、GoogleNet、ResNet)——从代码认知CNN经典架构
  3. Python之pyspark:pyspark的简介、安装、使用方法之详细攻略
  4. git在实际开发中的应用
  5. python3.6使用chardet模块总是报错ValueError: Expected a bytes object, not a unicode object
  6. python3.4.3将汉字转换为大写拼音首字母
  7. 【转】centos安装vim7.4
  8. 【C#】三维立体验证码 (3DCaptcha)
  9. C++ 虚拟析构函数
  10. DIET:Dual Intent and Entity Transformer