首页
社区
课程
招聘
[求助]alloca_probe 检查堆栈时的问题
发表于: 2013-4-2 11:54 6600

[求助]alloca_probe 检查堆栈时的问题

2013-4-2 11:54
6600
今天在分析一个程序的时候,遇到一个奇怪的问题:
原始程序是正常工作的。
我于是在CreateProcess  的时候,插入了一个DLL。开启一个线程。当主程序完成初始化后,再HOOK。如此,正常。

第二个需求,需要在主程序未完成初始化的时候,HOOK。
于时,开工,HOOK。
但是,HOOK后,程序直接退出。
于是用OD跟,发现我HOOK的代码没问题。但是错误在于根本没有执行到我的代码,直接在前面,原始程序有一个初始化的模块,引用了 好像是VC的检查堆栈的:__alloca_probe,在这里报的错。

然后用OD跟,原始程序走到这里的分析,检查内存:
182000
181000,每次递减1000,直到一个最小值。如果在内存列表中没有分配,检查的时候,系统会自动分配。如:
现有内存表:
183000~18f000
没有182000,当执行完  test    [eax], eax,的时候,182000就会自动分配完了。此名没有触发异常。

问题来了:
我的HOOK做完后,再执行到  test    [eax], eax,处理未申请内存时,系统不会自动分配了。而是直接报错。

这是什么机制呢,还是我的DLL破坏了什么机制,没有恢复 ...

求高人指点...

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

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 306
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
可能这个问题比较冷门吧...
2013-4-2 12:31
0
雪    币: 306
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
这个问题不是问题,是我自己造成的。调了半天,是我自己先宿主进程进行了内存扫描,破坏了原有的内存保护机制,在此,很想对宿主程序说声,对不起,是我俺搞坏你了...
2013-4-2 13:43
0
雪    币: 1431
活跃值: (4418)
能力值: ( LV9,RANK:220 )
在线值:
发帖
回帖
粉丝
4
baohongyu 这个问题不是问题,是我自己造成的。调了半天,是我自己先宿主进程进行了内存扫描,破坏了原有的内存保护机制,在此,很想对宿主程序说声,对不起,是我俺搞坏你了...
谢谢,刚好我也遇到了这个问题
2017-8-3 11:56
0
游客
登录 | 注册 方可回帖
返回
//