首页
社区
课程
招聘
[求助]关于指令的执行顺序
发表于: 2008-11-23 17:57 4702

[求助]关于指令的执行顺序

2008-11-23 17:57
4702
最近在调试一个ax,用comraider测试了下发现报了异常,异常的详细描述如下:
Exception Code: ACCESS_VIOLATION
Disasm: 7C9210C0        CMP DWORD PTR [EDX+4],-1        (ntdll.dll)

Seh Chain:
--------------------------------------------------
1         16B2FFE         SeFavoritePlug.dll
2         7C839AA8         KERNEL32.dll

Called From                   Returns To                    
--------------------------------------------------
ntdll.7C9210C0                SeFavoritePlug.1550C45        
SeFavoritePlug.1550C45        SeFavoritePlug.15515A6        
SeFavoritePlug.15515A6        SeFavoritePlug.1550ABC        
SeFavoritePlug.1550ABC        KERNEL32.7C80B683            

Registers:
--------------------------------------------------
EIP 7C9210C0
EAX FEEEFEEE
EBX 00FB2188
ECX 00000000
EDX 00FB2190
EDI 01E5FBC4 -> 01E5FCA4
ESI 01E5FAEC -> 01E5FCA4
EBP 01E5FBC4 -> 01E5FCA4
ESP 01E5FAE0 -> FECFAFB5

Block Disassembly:
--------------------------------------------------
7C9210BF        NOP
7C9210C0        CMP DWORD PTR [EDX+4],-1          <--- CRASH
7C9210C4        JE SHORT 7C92108B
7C9210C6        DEC DWORD PTR [ESP]
7C9210C9        JNZ SHORT 7C9210BE
7C9210CB        ADD ESP,4
7C9210CE        MOV ECX,FS:[18]
7C9210D5        JMP 7C921016
7C9210DA        LEA ESP,[ESP]
7C9210E1        LEA ESP,[ESP]

ArgDump:
--------------------------------------------------
EBP+8        01E5FEC8 -> 01E5FFDC
EBP+12        CCCCCCCC
EBP+16        00FB2188
EBP+20        CCCCCCCC
EBP+24        CCCCCCCC
EBP+28        CCCCCCCC

Stack Dump:
--------------------------------------------------
1E5FAE0 B5 AF CF FE AF 0C 55 01 90 21 FB 00 A4 FC E5 01  [......U.........]
1E5FAF0 CC CC CC CC 88 21 FB 00 CC CC CC CC CC CC CC CC  [................]
1E5FB00 CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC  [................]
1E5FB10 CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC  [................]
1E5FB20 CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC  [................]

我在ida中反汇编这个地址,发现是在ntdll.dll中的RrlEnterCriticalSection函数里面发生了异常,由于这个函数是在系统空间,也有不少地方有到了这个函数,我怎么知道在异常发生前是从什么地方调用到这个地方的呢?请指教,工具用的不熟 啊

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 2110
活跃值: (21)
能力值: (RANK:260 )
在线值:
发帖
回帖
粉丝
2
把堆栈DUMP出的数据进行栈回溯,可以得到函数的调用路径。至于具体的执行路径,则需要对代码进行分析了。
2008-11-23 18:14
0
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
能留下您的联系方式吗?qq或msn都行
2008-11-23 21:28
0
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
具体是怎么回溯的?
2008-11-23 21:29
0
雪    币: 1505
能力值: (RANK:210 )
在线值:
发帖
回帖
粉丝
5
Called From                   Returns To                    
--------------------------------------------------
ntdll.7C9210C0                SeFavoritePlug.1550C45        
SeFavoritePlug.1550C45        SeFavoritePlug.15515A6        
SeFavoritePlug.15515A6        SeFavoritePlug.1550ABC        
SeFavoritePlug.1550ABC        KERNEL32.7C80B683
2008-11-24 02:42
0
游客
登录 | 注册 方可回帖
返回
//