首页
社区
课程
招聘
[旧帖] [求助]各位大大,脱壳之后遇到过 msvcrt.__getmainargs 陷入死锁的情况 0.00雪花
发表于: 2007-12-26 04:37 4454

[旧帖] [求助]各位大大,脱壳之后遇到过 msvcrt.__getmainargs 陷入死锁的情况 0.00雪花

2007-12-26 04:37
4454
一个程序,未知壳,脱壳之后修复了 stelon code 之后,发现是标准的VC6程序,F9运行发现会出错,那么就 F8 一步一步走,看看是哪里出错,最后发现

程序在 标准的 VC6 的开头的标准代码中的 msvcrt.__getmainargs 出直接卡死了,
0065A506  |.  50            push    eax
0065A507  |.  8D45 A0       lea     eax, dword ptr [ebp-60]
0065A50A  |.  50            push    eax
0065A50B  |.  FF15 08946600 call    dword ptr [<&msvcrt.__getmainargs>]         ;  MSVCRT.__getmainargs

F7 跟进去之后,发现是在

7C80B508    E8 C8FEFFFF     call    GetModuleFileNameW

这个函数中调用
7C9331D7    E8 29DEFEFF     call    RtlEnterCriticalSection
这个函数的时候

7C921005 >  64:8B0D 1800000>mov     ecx, dword ptr fs:[18]
7C92100C    8B5424 04       mov     edx, dword ptr [esp+4]
7C921010    837A 14 00      cmp     dword ptr [edx+14], 0
7C921014    75 4F           jnz     short 7C921065
7C921016    F0:FF42 04      lock inc dword ptr [edx+4]
7C92101A    75 19           jnz     short 7C921035

7C92101A 这句的跳转了,正常的话是不应该跳转的,那么往上看代码,再跟正常的程序做对比,发现 在 7C92100C    8B5424 04       mov     edx, dword ptr [esp+4] 这句之后 的
edx 中的地址所指向的值,正常的程序应该是 FFFFFFFF, 而我这里是00000000,那么我把这个位置强行改成 FFFFFFFF 就可以通过了,不会死锁。
想问下高手,这是什么问题造成的? 从来没遇过这种情况。
看函数的字面意思 RtlEnterCriticalSection ,难不成是进入了临界区出不来了?

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 241
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
晕倒,怎么移到这来了。。。明显这个不是新兵问题嘛。。。。啊啊啊啊,期待好心的大大帮忙看看。。。。
2007-12-26 14:38
0
游客
登录 | 注册 方可回帖
返回
//