首页
社区
课程
招聘
[求助]如果我想完成对应用程序“程序领空”到“系统领空”切换的监视,该如何实现?
2008-7-20 22:24 7776

[求助]如果我想完成对应用程序“程序领空”到“系统领空”切换的监视,该如何实现?

2008-7-20 22:24
7776
想监视一个程序的所有“程序领空”到“系统领空”的切换事件,记录其eip值,该如何实现呢?
高手帮忙指点下。有什么好方法没?

[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

收藏
点赞0
打赏
分享
最新回复 (18)
雪    币: 563
活跃值: (95)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
lixupeng 2008-7-20 22:58
2
0
在OD里跟踪应该可以
雪    币: 2314
活跃值: (129)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
shellwolf 10 2008-7-20 23:12
3
0
多谢
如果自己用程序完成,有什么好的实现方法没?
雪    币: 2314
活跃值: (129)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
shellwolf 10 2008-7-21 08:33
4
0
自己顶一下。
雪    币: 282
活跃值: (31)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
somuch 1 2008-7-21 09:04
5
0
只能模拟所有代码执行。
雪    币: 2362
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
zapline 2008-7-21 09:13
6
0
应该可以写个脚本出来
雪    币: 224
活跃值: (147)
能力值: ( LV9,RANK:970 )
在线值:
发帖
回帖
粉丝
wynney 24 2008-7-21 09:50
7
0
B    T    S
雪    币: 6073
活跃值: (2236)
能力值: (RANK:1060 )
在线值:
发帖
回帖
粉丝
forgot 26 2008-7-21 11:48
8
0
ia32_msr_sysenter
雪    币: 846
活跃值: (221)
能力值: (RANK:570 )
在线值:
发帖
回帖
粉丝
笨笨雄 14 2008-7-21 12:11
9
0
发哥人真好。。。LZ该加声望了
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
zhucheba 2008-7-21 12:54
10
0
关注一下。。。。
雪    币: 339
活跃值: (1510)
能力值: ( LV13,RANK:970 )
在线值:
发帖
回帖
粉丝
nbw 24 2008-7-21 13:12
11
0
可以弄个什么DLL劫持,把加载的系统库给劫持掉,换成自己的接口,不过貌似有些麻烦
雪    币: 2314
活跃值: (129)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
shellwolf 10 2008-7-21 19:20
12
0
多谢诸位,
BTW:发哥是哪位?BTS又是啥呢?
雪    币: 846
活跃值: (221)
能力值: (RANK:570 )
在线值:
发帖
回帖
粉丝
笨笨雄 14 2008-7-21 22:13
13
0
发哥 = FORGOT...

R3到R0的切换,WIN2K的年代用的INT2E, 也就是你挂钩IDT,就基本可以检查所有的R3 到R0的切换了...
XP的年代则是SYSENTER.....你需要挂钩MSR...随便搜索一下,基本也可以找到代码了...

因为你的问题很多搞内核的,以及不搞内核的都知道,我还以为会没人答呢.....

至于BTS是CPU提供的分支记录功能...可以记录所有分支的地址,包括R3 和R0的...前阵子有人发过文章还置顶了的...
雪    币: 282
活跃值: (31)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
somuch 1 2008-7-21 22:37
14
0
程序领空”到“系统领空”的切换
==
R3 到R0的切换

????
雪    币: 846
活跃值: (221)
能力值: (RANK:570 )
在线值:
发帖
回帖
粉丝
笨笨雄 14 2008-7-21 22:49
15
0
哦...明白了...跑题了...把系统DLL的页属性都改成不可执行吧...跑到那个位置产生异常,接收异常之后可以在当前堆栈得到返回地址,也可以用原来的方法,直接在你要监视的进程空间改页属性.....

不过BTS依然可以满足这个需求就是了..

还有的还有,改EXE的输入表,HOOK GETPROCADDRESS,只是这样做对于壳自己模拟的那个API就无效了, 改新加载的系统DLL输出表,使其先转向到你的代码或许也是解决方案之一....只是这样和NBW说的差不多了
雪    币: 2314
活跃值: (129)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
shellwolf 10 2008-7-22 08:26
16
0
非常感谢
雪    币: 6073
活跃值: (2236)
能力值: (RANK:1060 )
在线值:
发帖
回帖
粉丝
forgot 26 2008-7-22 20:46
17
0
===不妥,删除===
雪    币: 846
活跃值: (221)
能力值: (RANK:570 )
在线值:
发帖
回帖
粉丝
笨笨雄 14 2008-7-22 20:59
18
0
膜拜
雪    币: 104
活跃值: (68)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
刘国华 2008-7-22 21:49
19
0
16楼正解…… 如果在OD中可以在所有载入的系统DLL的代码段设置访问断点,一旦执行到就会触发咯。
游客
登录 | 注册 方可回帖
返回