首页
社区
课程
招聘
[求助]在虚拟机中如何返回到调用的地方?
发表于: 2009-3-13 12:16 4770

[求助]在虚拟机中如何返回到调用的地方?

2009-3-13 12:16
4770
比如中断在一个函数上,这个函数是在虚拟机中调用的,返回以后就进到了虚拟机中,如何返回到进入虚拟机的地方?

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 2110
活跃值: (21)
能力值: (RANK:260 )
在线值:
发帖
回帖
粉丝
2
不知道你指的是什么虚拟机。

如果是VB的虚拟机,或PB虚拟机等,那么程序会一直在虚拟机里转,因为程序中不存在本机代码,只有所谓的伪指令,或P-CODE。

换句话说,“进入虚拟机的地方”也就是程序入口点,而且是只进不出的。

如果是指VMP之类的壳的虚拟机,如果程序是全部VM了,那跟上面的情况是类似的;如果是个别函数被VM了,那一般通过分析堆栈可以找到返回地址,不过这根本没什么意义,因为被VM掉的代码才是有价值的、需要保护的代码。
2009-3-13 17:54
0
雪    币: 1270
活跃值: (230)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
3
我说的就是VMP的虚拟机,我是想找到虚拟机上一层的函数来直接调用,不用知道虚拟机里的内容。
2009-3-16 10:32
0
雪    币: 2110
活跃值: (21)
能力值: (RANK:260 )
在线值:
发帖
回帖
粉丝
4
你这个思路兴许可行,如果被VM掉的是单个函数的话。不过我没有试验过。

虚拟机引擎的代码应该是有一个比较明显的界限吧,你试一下trace功能有没有可能(不过对于比较长的函数,trace所花的时间也许是不可接受的,特别是被VM后)。
2009-3-16 13:28
0
游客
登录 | 注册 方可回帖
返回
//