首页
社区
课程
招聘
[求助]还是哪个VC的问题
发表于: 2006-12-24 12:24 3838

[求助]还是哪个VC的问题

2006-12-24 12:24
3838
004174F6    E8 7B720000     call <jmp.&MFC42.#540>
004174FB    8B4424 04       mov eax,dword ptr ss:[esp+4]
004174FF    6A 01           push 1
00417501    6A 00           push 0
00417503    50              push eax
00417504    8D4C24 14       lea ecx,dword ptr ss:[esp+14]
00417508    C68424 24010000>mov byte ptr ss:[esp+124],1
00417510    E8 1BACFEFF     call zym13.00402130
00417515    8B2D 30264200   mov ebp,dword ptr ds:[<&SHELL32.ShellExecut>; SHELL32.ShellExecuteA
0041751B    50              push eax
0041751C    6A 00           push 0
0041751E    6A 00           push 0

00417520    FFD5            call ebp
00417522    FF15 84204200   call dword ptr ds:
[<&kernel32.GetLastError>>; KERNEL32.GetLastError

00417528    85C0            test eax,eax
0041752A    0F84 9E000000   je zym13.004175CE
00417530    56              push esi
00417531    8D4C24 10       lea ecx,dword ptr ss:[esp+10]
00417535    57              push edi
00417536    51              push ecx
00417537    68 04010000     push 104
0041753C    FF15 58204200   call dword ptr ds:[<&kernel32.GetTempPathA>>; KERNEL32.GetTempPathA
00417542    BF 68474200     mov edi,zym13.00424768                      ; ASCII "rdrct.html"
00417547    83C9 FF         or ecx,FFFFFFFF

这次是运行到00417520的地方会弹出网页 然后有返回到00417522
可是我把 这三行NOP掉
0041751B    50              push eax
0041751C    6A 00           push 0
0041751E    6A 00           push 0
然后把
00417520    FFD5            call ebp
该为 jmp 00417522
可是保存后运行
就出现 0x77e6b59e指令引用0xffffffff5的内存,该内存不能为Write
也就上程序出错了  可是找半天有找不出问题在那里
请高手指教~~~~

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

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 45
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
0x77e6b59e 应该是某个函数的地址吧  
你NOP掉的会不会是参数???!
2006-12-24 12:47
0
雪    币: 846
活跃值: (221)
能力值: (RANK:570 )
在线值:
发帖
回帖
粉丝
3
HINSTANCE ShellExecute(

    HWND hwnd,        // handle to parent window
    LPCTSTR lpOperation,        // pointer to string that specifies operation to perform
    LPCTSTR lpFile,        // pointer to filename or folder name string
    LPCTSTR lpParameters,        // pointer to string that specifies executable-file parameters
    LPCTSTR lpDirectory,        // pointer to string that specifies default directory
    INT nShowCmd         // whether file is shown when opened
   );

只NOP掉3个,破坏了堆栈平衡
2006-12-24 15:48
0
游客
登录 | 注册 方可回帖
返回
//