当前位置: 代码迷 >> 汇编语言 >> 走过路过别错过啊该怎么解决
  详细解决方案

走过路过别错过啊该怎么解决

热度:3737   发布时间:2013-02-26 00:00:00.0
走过路过别错过啊
win32 程序,崩溃了
这段汇编什么意思,一定帮小弟看看,万分感谢!

770F4920 mov edi,edi 
770F4922 push ebp  
770F4923 mov ebp,esp 
770F4925 push esi  
770F4926 mov esi,dword ptr [ebp+8] 
770F4929 mov ax,word ptr [esi] 
770F492C cmp ax,8 
770F4930 push edi  
770F4931 jae 770F493F 
770F4933 and word ptr [esi],0 
770F4937 xor eax,eax 
770F4939 pop edi  
770F493A pop esi  
770F493B pop ebp  
770F493C ret 4  
770F493F movzx edi,ax 
770F4942 mov ecx,edi 
770F4944 and ecx,0FFFF9FFFh 
770F494A cmp ecx,48h 
770F494D je 77126772 
770F4953 cmp ax,0Ch 
770F4957 jae 770F49EE 
770F495D mov eax,edi 
770F495F sub eax,8 
770F4962 je 770F4B0B 
770F4968 dec eax  
770F4969 jne 770F4990 
770F496B mov eax,dword ptr [esi+8] 
770F496E test eax,eax 
770F4970 je 770F4933 
770F4972 mov ecx,dword ptr [eax] 
770F4974 push eax  
770F4975 call dword ptr [ecx+8] 
770F4978 jmp 770F4933

------解决方案--------------------------------------------------------
0 有没有较完整的片断?

1 在哪里崩溃?什么错误?
------解决方案--------------------------------------------------------
?
------解决方案--------------------------------------------------------
是每次都会崩溃还是偶尔才会崩溃?上述代码在什么模块中?
------解决方案--------------------------------------------------------
楼主有源代码没

看看这个函数的返回值定义,返回0表示正确还是错误??
从断的位置找,可以看出--如果没有出错,这里将return 0

再往前找一下,esi原先是指向什么内容的??
[esi]似乎是一个结构体,而且是一个全局的结构体
而[esi+8]是一个指针,这个指针指向了错误的位置


------解决方案--------------------------------------------------------
oleaut32.dll 好像是对象链接与嵌入OLE的功能模块,我觉得不应该是该模块的
问题,而是调用它的应用程序的问题。可能是空悬指针等的错误。建议如果再发生
错误检查线程call stack,回溯到应用程序中的某个函数。
  相关解决方案