首页
社区
课程
招聘
程序自动退出的处理办法[求助]
发表于: 2005-12-15 15:51 4224

程序自动退出的处理办法[求助]

2005-12-15 15:51
4224
0044E348 y>  55               push ebp
0044E349     8BEC             mov ebp,esp
0044E34B     6A FF            push -1
0044E34D     68 803C4500      push ykyCalcu.00453C80
0044E352     68 F0E04400      push ykyCalcu.0044E0F0            ; jmp to msvcrt._except_handler3
0044E357     64:A1 00000000   mov eax,dword ptr fs:[0]
0044E35D     50               push eax
0044E35E     64:8925 00000000 mov dword ptr fs:[0],esp
0044E365     83EC 68          sub esp,68
0044E368     53               push ebx
0044E369     56               push esi
0044E36A     57               push edi
0044E36B     8965 E8          mov dword ptr ss:[ebp-18],esp
0044E36E     33DB             xor ebx,ebx
0044E370     895D FC          mov dword ptr ss:[ebp-4],ebx
0044E373     6A 02            push 2
0044E375     FF15 64064500    call dword ptr ds:[450664]        ; msvcrt.__set_app_type
0044E37B     59               pop ecx
0044E37C     830D 8C984500 FF or dword ptr ds:[45988C],FFFFFFFF
0044E383     830D 90984500 FF or dword ptr ds:[459890],FFFFFFFF
0044E38A     FF15 68064500    call dword ptr ds:[450668]        ; msvcrt.__p__fmode
0044E390     8B0D 80984500    mov ecx,dword ptr ds:[459880]
0044E396     8908             mov dword ptr ds:[eax],ecx
0044E398     FF15 6C064500    call dword ptr ds:[45066C]        ; msvcrt.__p__commode
0044E39E     8B0D 7C984500    mov ecx,dword ptr ds:[45987C]
0044E3A4     8908             mov dword ptr ds:[eax],ecx
0044E3A6     A1 70064500      mov eax,dword ptr ds:[450670]
0044E3AB     8B00             mov eax,dword ptr ds:[eax]
0044E3AD     A3 88984500      mov dword ptr ds:[459888],eax
0044E3B2     E8 1C010000      call ykyCalcu.0044E4D3
0044E3B7     391D 20914500    cmp dword ptr ds:[459120],ebx
0044E3BD     75 0C            jnz short ykyCalcu.0044E3CB
0044E3BF     68 D0E44400      push ykyCalcu.0044E4D0
0044E3C4     FF15 74064500    call dword ptr ds:[450674]        ; msvcrt.__setusermatherr
0044E3CA     59               pop ecx
0044E3CB     E8 EE000000      call ykyCalcu.0044E4BE
0044E3D0     68 14704500      push ykyCalcu.00457014
0044E3D5     68 10704500      push ykyCalcu.00457010
0044E3DA     E8 D9000000      call ykyCalcu.0044E4B8            ; jmp to msvcrt._initterm
0044E3DF     A1 78984500      mov eax,dword ptr ds:[459878]
0044E3E4     8945 94          mov dword ptr ss:[ebp-6C],eax
0044E3E7     8D45 94          lea eax,dword ptr ss:[ebp-6C]
0044E3EA     50               push eax
0044E3EB     FF35 74984500    push dword ptr ds:[459874]
0044E3F1     8D45 9C          lea eax,dword ptr ss:[ebp-64]
0044E3F4     50               push eax
0044E3F5     8D45 90          lea eax,dword ptr ss:[ebp-70]
0044E3F8     50               push eax
0044E3F9     8D45 A0          lea eax,dword ptr ss:[ebp-60]
0044E3FC     50               push eax
0044E3FD     FF15 7C064500    call dword ptr ds:[45067C]        ; msvcrt.__getmainargs
0044E403     68 0C704500      push ykyCalcu.0045700C
0044E408     68 00704500      push ykyCalcu.00457000
0044E40D     E8 A6000000      call ykyCalcu.0044E4B8            ; jmp to msvcrt._initterm
0044E412     83C4 24          add esp,24
0044E415     A1 80064500      mov eax,dword ptr ds:[450680]
0044E41A     8B30             mov esi,dword ptr ds:[eax]
0044E41C     8975 8C          mov dword ptr ss:[ebp-74],esi
0044E41F     803E 22          cmp byte ptr ds:[esi],22
0044E422     75 3A            jnz short ykyCalcu.0044E45E
0044E424     46               inc esi
0044E425     8975 8C          mov dword ptr ss:[ebp-74],esi
0044E428     8A06             mov al,byte ptr ds:[esi]
0044E42A     3AC3             cmp al,bl
0044E42C     74 04            je short ykyCalcu.0044E432
0044E42E     3C 22            cmp al,22
0044E430   ^ 75 F2            jnz short ykyCalcu.0044E424
0044E432     803E 22          cmp byte ptr ds:[esi],22
0044E435     75 04            jnz short ykyCalcu.0044E43B
0044E437     46               inc esi
0044E438     8975 8C          mov dword ptr ss:[ebp-74],esi
0044E43B     8A06             mov al,byte ptr ds:[esi]
0044E43D     3AC3             cmp al,bl
0044E43F     74 04            je short ykyCalcu.0044E445
0044E441     3C 20            cmp al,20
0044E443   ^ 76 F2            jbe short ykyCalcu.0044E437
0044E445     895D D0          mov dword ptr ss:[ebp-30],ebx
0044E448     8D45 A4          lea eax,dword ptr ss:[ebp-5C]
0044E44B     50               push eax
0044E44C     FF15 EC004500    call dword ptr ds:[4500EC]        ; kernel32.GetStartupInfoA
0044E452     F645 D0 01       test byte ptr ss:[ebp-30],1
0044E456     74 11            je short ykyCalcu.0044E469
0044E458     0FB745 D4        movzx eax,word ptr ss:[ebp-2C]
0044E45C     EB 0E            jmp short ykyCalcu.0044E46C
0044E45E     803E 20          cmp byte ptr ds:[esi],20
0044E461   ^ 76 D8            jbe short ykyCalcu.0044E43B
0044E463     46               inc esi
0044E464     8975 8C          mov dword ptr ss:[ebp-74],esi
0044E467   ^ EB F5            jmp short ykyCalcu.0044E45E
0044E469     6A 0A            push 0A
0044E46B     58               pop eax
0044E46C     50               push eax
0044E46D     56               push esi
0044E46E     53               push ebx
0044E46F     53               push ebx
0044E470     FF15 E8004500    call dword ptr ds:[4500E8]        ; kernel32.GetModuleHandleA
0044E476     50               push eax
0044E477     E8 64000000      call ykyCalcu.0044E4E0
0044E47C     8945 98          mov dword ptr ss:[ebp-68],eax
0044E47F     50               push eax
0044E480     FF15 84064500    call dword ptr ds:[450684]        ; msvcrt.exit
程序运行到此处就退出了。请问如何设置。

0044E486     8B45 EC          mov eax,dword ptr ss:[ebp-14]
0044E489     8B08             mov ecx,dword ptr ds:[eax]
0044E48B     8B09             mov ecx,dword ptr ds:[ecx]
0044E48D     894D 88          mov dword ptr ss:[ebp-78],ecx
0044E490     50               push eax
0044E491     51               push ecx
0044E492     E8 1B000000      call ykyCalcu.0044E4B2            ; jmp to msvcrt._XcptFilter
0044E497     59               pop ecx
0044E498     59               pop ecx
0044E499     C3               retn
0044E49A     8B65 E8          mov esp,dword ptr ss:[ebp-18]
0044E49D     FF75 88          push dword ptr ss:[ebp-78]
0044E4A0     FF15 8C064500    call dword ptr ds:[45068C]        ; msvcrt._exit
0044E4A6   - FF25 98064500    jmp dword ptr ds:[450698]         ; msvcrt.terminate
0044E4AC   - FF25 94064500    jmp dword ptr ds:[450694]         ; msvcrt.__dllonexit
0044E4B2   - FF25 88064500    jmp dword ptr ds:[450688]         ; msvcrt._XcptFilter
0044E4B8   - FF25 78064500    jmp dword ptr ds:[450678]         ; msvcrt._initterm
0044E4BE     68 00000300      push 30000
0044E4C3     68 00000100      push 10000                        ; UNICODE "=::=::\"
0044E4C8     E8 07000000      call ykyCalcu.0044E4D4            ; jmp to msvcrt._controlfp
0044E4CD     59               pop ecx
0044E4CE     59               pop ecx
0044E4CF     C3               retn
0044E4D0     33C0             xor eax,eax
0044E4D2     C3               retn
0044E4D3     C3               retn
0044E4D4   - FF25 40074500    jmp dword ptr ds:[450740]         ; msvcrt._controlfp
0044E4DA     CC               int3
0044E4DB     CC               int3
0044E4DC     CC               int3
0044E4DD     CC               int3
0044E4DE     CC               int3
0044E4DF     CC               int3
0044E4E0     FF7424 10        push dword ptr ss:[esp+10]
0044E4E4     FF7424 10        push dword ptr ss:[esp+10]
0044E4E8     FF7424 10        push dword ptr ss:[esp+10]
0044E4EC     FF7424 10        push dword ptr ss:[esp+10]
0044E4F0     E8 43000000      call ykyCalcu.0044E538            ; jmp to mfc42.#1576
0044E4F5     C2 1000          retn 10
0044E4F8     E8 25F5FFFF      call <jmp.&mfc42.#1168>
0044E4FD     8B4C24 04        mov ecx,dword ptr ss:[esp+4]
0044E501     8B5424 08        mov edx,dword ptr ss:[esp+8]
0044E505     85C9             test ecx,ecx
0044E507     8848 14          mov byte ptr ds:[eax+14],cl
0044E50A     8990 40100000    mov dword ptr ds:[eax+1040],edx
0044E510     75 09            jnz short ykyCalcu.0044E51B
0044E512     6A FD            push -3
0044E514     FF15 60064500    call dword ptr ds:[450660]        ; msvcrt._setmbcp
0044E51A     59               pop ecx
0044E51B     6A 01            push 1
0044E51D     58               pop eax
0044E51E     C2 0800          retn 8
0044E521     E9 00000000      jmp ykyCalcu.0044E526
0044E526     68 00060000      push 600
0044E52B     6A 00            push 0
0044E52D     E8 C6FFFFFF      call ykyCalcu.0044E4F8
0044E532     A2 84984500      mov byte ptr ds:[459884],al
0044E537     C3               retn
0044E538   - FF25 58064500    jmp dword ptr ds:[450658]         ; mfc42.#1576
0044E53E     CC               int3
0044E53F     CC               int3
0044E540     8B4D F0          mov ecx,dword ptr ss:[ebp-10]
0044E543   ^ E9 B6F4FFFF      jmp <jmp.&mfc42.#641>
0044E548     8B4D F0          mov ecx,dword ptr ss:[ebp-10]
0044E54B     83C1 60          add ecx,60
0044E54E   ^ E9 8DFAFBFF      jmp ykyCalcu.0040DFE0
0044E553     B8 903C4500      mov eax,ykyCalcu.00453C90
0044E558   ^ E9 43FBFFFF      jmp ykyCalcu.0044E0A0             ; jmp to msvcrt.__CxxFrameHandler
0044E55D     CC               int3
0044E55E     CC               int3
0044E55F     CC               int3
0044E560     8B4D F0          mov ecx,dword ptr ss:[ebp-10]
0044E563   ^ E9 96F4FFFF      jmp <jmp.&mfc42.#641>
0044E568     8B4D F0          mov ecx,dword ptr ss:[ebp-10]
0044E56B     83C1 60          add ecx,60
0044E56E   ^ E9 6DFAFBFF      jmp ykyCalcu.0040DFE0
0044E573     B8 C03C4500      mov eax,ykyCalcu.00453CC0
0044E578   ^ E9 23FBFFFF      jmp ykyCalcu.0044E0A0             ; jmp to msvcrt.__CxxFrameHandler
0044E57D     CC               int3
0044E57E     CC               int3
0044E57F     CC               int3
0044E580     8B4D EC          mov ecx,dword ptr ss:[ebp-14]
0044E583   ^ E9 8EF4FFFF      jmp <jmp.&mfc42.#800>
0044E588     8B4D F0          mov ecx,dword ptr ss:[ebp-10]
0044E58B   ^ E9 86F4FFFF      jmp <jmp.&mfc42.#800>
0044E590     B8 F03C4500      mov eax,ykyCalcu.00453CF0
0044E595   ^ E9 06FBFFFF      jmp ykyCalcu.0044E0A0             ; jmp to msvcrt.__CxxFrameHandler
0044E59A     CC               int3
0044E59B     CC               int3
0044E59C     CC               int3
0044E59D     CC               int3
0044E59E     CC               int3
0044E59F     CC               int3
0044E5A0     8B4D F0          mov ecx,dword ptr ss:[ebp-10]
0044E5A3   ^ E9 56F4FFFF      jmp <jmp.&mfc42.#641>
0044E5A8     8B4D F0          mov ecx,dword ptr ss:[ebp-10]
0044E5AB     83C1 60          add ecx,60
0044E5AE   ^ E9 63F4FFFF      jmp <jmp.&mfc42.#800>
0044E5B3     8B4D F0          mov ecx,dword ptr ss:[ebp-10]
0044E5B6     83C1 64          add ecx,64
0044E5B9   ^ E9 58F4FFFF      jmp <jmp.&mfc42.#800>
0044E5BE     8B4D F0          mov ecx,dword ptr ss:[ebp-10]
0044E5C1     83C1 68          add ecx,68
0044E5C4   ^ E9 4DF4FFFF      jmp <jmp.&mfc42.#800>
0044E5C9     B8 203D4500      mov eax,ykyCalcu.00453D20
0044E5CE   ^ E9 CDFAFFFF      jmp ykyCalcu.0044E0A0             ; jmp to msvcrt.__CxxFrameHandler

如位大侠给解释一下上面的代码。
收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 233
活跃值: (130)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
2
用VC6 的工程向导生成一个MFC程序(对话框即可)
release 模式编译一下
看一下汇编代码
2005-12-15 16:38
0
雪    币: 226
活跃值: (72)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
这是一个被别的程序调用的程序,原来加的是Armadillo 3.78 -> Silicon Realms Toolworks的壳,脱过后就成了这个样子。原来的也是运行后什么也不显示就退出了。
2005-12-16 08:03
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
请高手出来解决一下。
2006-2-25 15:13
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
怎么没有解释的呢
2006-3-11 14:26
0
游客
登录 | 注册 方可回帖
返回
//