社区
C++ 语言
帖子详情
关于HOOK时候的堆栈问题
nightkids_008
2011-07-11 11:39:53
今天看书的时候突然想到的一个问题:原来做HOOK的时候,就是先跳转到了自己的函数那里,然后再执行HOOK的函数(API)什么的,这么做是为了使堆栈平衡。那么在我知道这个被HOOK的函数参数个数的时候,我是不是可以手动来把堆栈指针恢复到正常,这样不调用原来那个函数是不是堆栈就能够平衡了呢?
...全文
261
4
打赏
收藏
关于HOOK时候的堆栈问题
今天看书的时候突然想到的一个问题:原来做HOOK的时候,就是先跳转到了自己的函数那里,然后再执行HOOK的函数(API)什么的,这么做是为了使堆栈平衡。那么在我知道这个被HOOK的函数参数个数的时候,我是不是可以手动来把堆栈指针恢复到正常,这样不调用原来那个函数是不是堆栈就能够平衡了呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
赵4老师
2011-07-12
打赏
举报
回复
VC调试时按Alt+8,TC或BC用TD调试,打开汇编窗口看每句C对应的汇编并单步执行一遍不就啥都明白了吗。
(Linux或Unix下应该也可以在用GDB调试时,看每句C对应的汇编并单步执行。)
nightkids_008
2011-07-12
打赏
举报
回复
[Quote=引用 1 楼 rrrfff 的回复:]
是的。还要看具体的调用方式
[/Quote]
是看stdcall 还是cdelcall么?
白云飘飘飘
2011-07-11
打赏
举报
回复
当然可以
RLib
2011-07-11
打赏
举报
回复
是的。还要看具体的调用方式
利用 RtlWalkFrameChain 回溯调用
堆栈
学习到的知识:。通过RtlWalkFrameChain 回溯调用
堆栈
。通过NtQueryVirtualMemory 查询模块句柄与模块名。@pxiu。
深入Linux网络核心
堆栈
2 - 各种Netfilter
hook
及其用法 2.1 - Linux内核对数据包的处理 2.2 - Netfilter对IPv4的
hook
3 - 注册和注销Netfilter
hook
4 - Netfilter 基本的数据报过滤技术[1] 4.1 - 深入
hook
函数 4.2 - 基于接口进行...
深入理解linux核心
堆栈
介绍netfilter的基本应用,以及Linux的核心
堆栈
,最后介绍了
hook
函数的应用。
C++实现inline
hook
的原理及应用实例
Inline
Hook
通过硬编码的方式向内核API的内存空间(通常是开始的一段字节,且一般在第一个call之前,这么做是为了防止
堆栈
混乱)写入跳转语句,这样,该API只要被调用,程序就会跳转到我们的函数中来,我们在自己写...
MERN-stack-CRUD-
hook
-redux-:使用
hook
和redux.js的Mern-stack-curd
MERN Stack CRUD操作使用React,Node.js,MongoDB和Express进行的无端MERN
堆栈
CRUD操作。获取代码$ git clone https://github.com/CodAffection/MERN-Stack-CRUD.git$ cd MERN-Stack-CRUD/mern-stack-client$ npm ...
C++ 语言
64,686
社区成员
250,505
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章