首页
社区
课程
招聘
[求助]关于inlineHook跳转的一个问题!!
发表于: 2010-11-27 02:00 4428

[求助]关于inlineHook跳转的一个问题!!

2010-11-27 02:00
4428
最近遇到一些问题,很头疼。。。望大大们能解答一下。小弟不胜感激。。。。
这里有三行代码:
1.0x805cc658        FF75  C8                push  dword ptr [ebp-38]
2.0x805cc65b        FF75  DC                push dword ptr [ebp-24]
3.0x805cc65e       E8 4306FFFF           call ntkrnlpa.ObOpenObjectByPointer

这三行代码是连着的,为了好说明,特别标上了序号,我在第一行处,跳到我自己的函数MyFunction(),我想在我自己的函数里在跳回第二句继续执行,但是怎么编写都是蓝屏。。不知道怎么回事?希望各位路过的高手能留下几字箴言给我一点知道,小弟感激不尽!!!!

我的代码,不知道怎么回事,跳转回第二句总是蓝屏。这些代码是在我的函数里的。
               
mov ebx,RealNtOpenProcessAddr   //RealNtOpenProcessAddr 为0x805cc65b
push DWORD ptr [ebp-38h]
mov WORD ptr [ebx],0xdc75
mov BYTE ptr [ebx+2],0xff
jmp ebx

问题已经解决,因为重写,会造成与原来的字节不符。。JMP XXXX的机器码本身总共就要占用5个字节,原第一行只有3个字节的大小,剩余字节会占用到下一行的空间。
所以,再次跳转回来会发生蓝屏。

怎么编辑过后,帖子上方会出现那些什么招聘信息的字样?

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 191
活跃值: (345)
能力值: ( LV9,RANK:450 )
在线值:
发帖
回帖
粉丝
2
pushad
pushfd

popfd
popad

保护现场了吗执行你代码前?
2010-11-27 03:10
0
雪    币: 33
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
谢谢楼上的热心解答。。。保护现场的工作已经做过了。。。

昨天晚上找了一晚上问题所在,找到了原因,在第一句JMP到自己函数的时候,JMP工作会占用5个字节,所以导致了错误。。。。

但是好像还是不能解决问题。。。我尝试着直接在自己的函数里直接压入那两个数值,然后跳转到第三行,还是蓝屏,不知道为什么。。。望高手们能再次帮忙解答下。。
2010-11-27 13:16
0
雪    币: 67
活跃值: (66)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
4
1.0x805cc658        FF75  C8                push  dword ptr [ebp-38]
2.0x805cc65b        FF75  DC                push dword ptr [ebp-24]
3.0x805cc65e       E8 4306FFFF           call ntkrnlpa.ObOpenObjectByPointer

mov ebx,RealNtOpenProcessAddr   //RealNtOpenProcessAddr 为0x805cc65b
push DWORD ptr [ebp-38h]
mov WORD ptr [ebx],0xdc75
mov BYTE ptr [ebx+2],0xff
jmp ebx

假设ebx未被使用
mov ebx, 0x805cc65e //跳到3
push DWORD ptr [ebp-38h]
push dword ptr [ebp-24]
mov WORD ptr [ebx],0xdc75 //不知道这两行汇编功能 从代码看 会重写0x805cc65e的内容 肯定会挂掉吧
mov BYTE ptr [ebx+2],0xff
jmp ebx
2010-11-27 19:19
0
雪    币: 386
活跃值: (46)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
5
用eax会可靠些吧,eax是用来保存返回值的
LZ应该详细跟一下前后堆栈是否完全一致,要保存某些信息最好放到全局变量中去
2010-12-1 20:21
0
游客
登录 | 注册 方可回帖
返回
//