首页
社区
课程
招聘
[求助]为什么OD的run跟踪有的代码记录不到?
发表于: 2009-1-7 16:26 3669

[求助]为什么OD的run跟踪有的代码记录不到?

2009-1-7 16:26
3669
作了个MFC的对话框测试程序,点击按钮执行以下代码:
_asm  
        {
                nop
                nop
                nop
                nop
        }
                char buff[5];
        buff[0] = 'A';
        strcpy(buff,"aaa");
MessageBox(buff,"啊啊啊",MB_OK);
然后在OD中断下MessageBox,使用“跟踪步入”,
并从MessageBox领空返回,查看Run Trace窗口,记录如下:
          ...........
               77D1E84A    E8 7AACFFFF     call    77D194C9  //这应该是系统自动生成的代码
          77D5050B >  8BFF            mov     edi, edi  //这是MessageBox入口
          ...........
          问题是,为什么没有记录MessageBox前的以下代码:
_asm  
        {
                nop
                nop
                nop
                nop
        }
                char buff[5];
        buff[0] = 'A';
        strcpy(buff,"aaa");
兄弟们给解释解释,万分感谢!

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

收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 196
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
我想了一下,可能是OD自身的跟踪是依据CALL指令来记录的,如果是这样有别的办法吗?写插件可以做到吗?
2009-1-7 21:14
0
雪    币: 196
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
怎么没人说话吗?是我问的问题不对吗?
2009-1-8 14:45
0
雪    币: 2110
活跃值: (21)
能力值: (RANK:260 )
在线值:
发帖
回帖
粉丝
4
你没有理解RUN跟踪的作用。

它是记录从开始跟踪到跟踪结束的过程中程序执行的过程,并不能记录开始跟踪之前的状态。

你中断在了MessageBox,然后跟踪,当然只跟到了从MessageBox开始的代码了。
2009-1-8 19:40
0
雪    币: 196
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
谢谢您的回答,那该怎么办?
2009-1-9 09:17
0
雪    币: 205
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
是的debug下的吗?release的会优化指令的,将那些nop去除了
2009-1-9 10:07
0
游客
登录 | 注册 方可回帖
返回
//