易语言教程_易语言源码_易语言写挂_易语言论坛_看流星社区

 找回密码
 注册
零基础辅助入门教学 原创 高清 专业课程售后(每日解答)
零基础辅助入门教学 原创 高清 专业课程售后(每日解答)
零基础辅助入门教学 原创 高清 专业课程售后(每日解答)
零基础辅助入门教学 原创 高清 专业课程售后(每日解答)
零基础辅助入门教学 原创 高清 专业课程售后(每日解答)
零基础辅助入门教学 原创 高清 专业课程售后(每日解答)
赞助广告位 请点击这里联系站长 QQ20209081
赞助广告位 请点击这里联系站长 QQ20209081
赞助广告位 请点击这里联系站长 QQ20209081
查看: 1469|回复: 1

一个关于push ret HOOK的问题随记一下。

[复制链接]
发表于 2012-10-17 20:39:12 | 显示全部楼层 |阅读模式
在学习内核HOOK的问题,发现自已的基础就是XX,记录一下!

曾经的问题:

//加入pushad 及popad 这样会不会影响到JMP地址各个寄存器,
//因为以上代码和JMP到的地址代码为同一个函数。会吗?
//以上汇编代码处理后蓝屏,应该是堆栈不平问题。
问题:如何保证破坏后堆栈平衡?
  1. //正常   
  2. lkd> u ObCheckObjectAccess l10  
  3. nt!ObCheckObjectAccess:  
  4. 805c119c 8bff            mov     edi,edi  
  5. 805c119e 55              push    ebp  
  6. 805c119f 8bec            mov     ebp,esp  
  7. 805c11a1 83ec10          sub     esp,10h  
  8. 805c11a4 8b4508          mov     eax,dword ptr [ebp+8]  
  9. 805c11a7 56              push    esi  
  10. 805c11a8 57              push    edi  
  11. 805c11a9 ff7514          push    dword ptr [ebp+14h]  
  12. 805c11ac 8b78f0          mov     edi,dword ptr [eax-10h]  
  13. 805c11af 8d4df0          lea     ecx,[ebp-10h]  
  14. 805c11b2 51              push    ecx  
  15. 805c11b3 8d4dfc          lea     ecx,[ebp-4]  
  16. 805c11b6 33f6            xor     esi,esi  
  17. 805c11b8 51              push    ecx  
  18. 805c11b9 50              push    eax  
  19. 805c11ba 8975f4          mov     dword ptr [ebp-0Ch],esi  
  20.   
  21. //HOOK后   
  22. push    0AB248D18h       //我修改此地址进入我的函数后,直接JMP 805c11a9 以达到目地。   
  23. RET  
  24. in      al,dx  
  25. adc     byte ptr [ebx+57560845h],cl  
  26. 805c11a9 push    dword ptr [ebp+14h]  
  27. 805c11ac mov     edi,dword ptr [eax-10h]  
  28. 805c11af lea     ecx,[ebp-10h]  
  29. 805c11b2  push    ecx  
  30.   
  31.   
  32.   
  33. __declspec(naked) void myhook()  
  34. {  
  35. __asm  
  36. {  
  37. //模拟ObCheckObjectAccess函数头如下   
  38. pushad  
  39. mov     edi,edi  
  40. push    ebp  
  41. mov     ebp,esp  
  42. sub     esp,10h  
  43. mov     eax,dword ptr [ebp+8]  
  44. push    esi  
  45. push    edi  
  46. popad  
  47. //跳转到JMP 805c11a9   
  48. mov ebx,ObCheckObjectAccess  
  49.        add ebx,0xd  
  50. jmp ebx  
  51.          
  52.      }  
  53. }  
复制代码
发表于 2013-5-27 12:53:25 | 显示全部楼层
顶顶顶顶顶顶顶顶顶顶
点击按钮快速添加回复内容: 支持 高兴 激动 给力 加油 苦寻 生气 回帖 路过 感恩
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|看流星社区  |网站地图

GMT+8, 2018-8-21 10:47 易语言论坛 易语言导航

Powered by 看流星社区 X3.2

©2011-2016 最好的辅助编程技术论坛

快速回复 返回顶部 返回列表