当前位置:系统粉 > 电脑问答 > win7系统问答 > 如何删除假的ws2_32.dll?win7系统?

如何删除假的ws2_32.dll?win7系统?

提问者:尊无耻为潮流  |  浏览 次  |  提问时间:2017-08-21  |  回答数量:1

如何删除假的ws2_32.dll?win7系统?下载的游戏打不开,显示:无法正常启动0xc00000ba,了解了一下是因为病毒搞了一个假的ws2_32.dll文件,网上有如何删除的操作说明,但总是有各种问题让我无法照着说明一一执行。

已有1条答案
迁客骚人丨蛋蛋

迁客骚人丨蛋蛋

回答数:47  |  被采纳数:9

2017-08-21 07:31:45
环境:win7 ultimate 32, vs2010 sp1Aheadlib:即时调用/需要时载入/直接跳入我需要在connect中拿到进程要连接的地址端口,通过sock4协议连接到代理服务器上,也就是说我要在AheadLib_connect中使用connect/send/recv这几个函数。考虑到我知道connect函数的参数,我就将AheadLib中的实现替换为如何删除假的ws2_32.dll?win7系统?(1)extern "C" __declspec(dllexport) int __cdecl AheadLib_connect ( SOCKET sock, sockaddr *addr, int nlen ){ connect_ptr foo_connect = (connect_ptr)GetProcAddress(m_hModule, "connect");send_ptr foo_send = (send_ptr)GetProcAddress(m_hModule, "send");recv_ptr foo_recv = (recv_ptr)GetProcAddress(m_hModule, "recv");sockaddr_in addr_proxy;//连接代理服务器的socket地址,代码略去int ret = foo_connect( sock, (sockaddr *)&addr_proxy, sizeof(addr_proxy) );if( 0 == ret ){sock4_header _msg;//赋值代码略去ret = foo_send( sock, (char *)&_msg, sizeof(_msg), 0 );if( ret > 0 ){char buf[128] = {0};ret = foo_recv( sock, buf, 8, 0 );if( ret > 0 && buf[1] == PROXY_RESPONSE_OK ){//OKreturn 0;}}}return -1;}1、在我的台式机上试验成功。对于recv函数,如果我使用GetProcAddress拿到的函数指针,调用的话就会产生ESP错误,应该是参数栈出问题了,直接使用recv则没问题。2、在我的笔记本上(环境相同),执行完毕recv并能够打印出代理连接成功的日志,但我的测试进程在并没有打印connect成功的日志,所以应该是返回之后导致什么地方溢出了。
赞 4
解决方法
版权信息

Copyright @ 2011 系统粉 版权声明 最新发布内容 网站导航