係統粉 > 電腦問答 > win7係統問答

已解決如何刪除假的ws2_32.dll?win7係統?

提問者:尊無恥為潮流  |  瀏覽次  |  提問時間:2017-08-21  |  回答數量:1

如何刪除假的ws2_32.dll?win7係統?下載的遊戲打不開,顯示:無法正常啟動0xc00000ba,了解了一下是因為病毒搞了一個假的ws2_32.dll文件,網上有如何刪除的操作說明,但總是有各種問題讓我無法照著說明一一執行。

已有1條答案
遷客騷人丨蛋蛋

遷客騷人丨蛋蛋

回答數:47  |  被采納數:9

環境: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成功的日誌,所以應該是返回之後導致什麼地方溢出了。
2017-08-21 07:31:45
讚 4
相關問答
最新win7係統問答
解決方法