wininet方式能实现ftp断点续传吗,怎么实现? 网上有完整的ftp文件管理服务端和客服端工具的源码只是都没有续传功能也看到有文章介绍wininet 库本身不支持续传功能要修改其库文件才能实现真是这样吗,那位高手帮帮忙急用!谢过! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 自己记录断点信息,用FtpOpenFile、InternetSetFilePointer、InternetReadFile、InternetCloseHandle等函数下载。 修改Wininet.dll实现FTP断点续传, 需要修改系统Wininet.dllhttp://bbs.pediy.com/showthread.php?p=61151 我也看到过修改wininet.dll的方案不过不知道在哪里修改一下信息像是只有调试时才出现的吧:debug 进入 psdk 的wininet.dll中的FTPOpenFile经过很多个小时的跟踪以后发现以下三个函数入口:761BB256 and ebx,80000000h761BB25C mov eax,761DE8F0h………………………………………………………761BB261 jne 761BB268761BB263 mov eax,761DE8E8h761BB276 call 761BC0A2 format("RETR %s");761BC213 push edi761BC214 mov edi,dword ptr [ebp+70h]761BC217 push eax761BC218 push 761DE9ECh^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^761BC21D push edi761BC21E push 0761BC225 call 761BC1C3 format("TYPE %s");761BC7F9 test eax,eax //没有用761BC7FB jne 761BC89D //没有用761BC801 push dword ptr [ebp+78h]^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ lpstrFileAtServer761BC804 push 761DE93Ch761BC809 push dword ptr [ebp+58h]761BC80C call 761BC003 format("SIZE %s",lpstrFileAtServer)修改DLL成 SIZE %s->REST %s然后就是修改参数调用:761BC7F9 85 C0 0F 85 9C 00 00 ?.?..761BC800 00 FF 75 78761BC7F9 test eax,eax //没有用761BC7FB jne 761BC89D //没有用761BC801 push dword ptr [ebp+78h]的11个字节想办法修改成:、、?怎么改761BC7F9 90 8B C5 05 50 01 00 ?..P..761BC800 00 50 90 90 nop; mov eax, ebp ; add eax, 0x150 ; push eax ; nop; nop;希望高手能指导的详细些,谢了! 对sdk的使用不熟能提供下断点续传的例子吗! 是想在FTP服务器上实现断点续传的功能?http://www.diybl.com/course/3_program/c++/cppsl/200815/95891.html看不出来这是什么东西呀要解决什么问题也不清楚源程序是什么? 给vc界面添加皮肤,让你的界面更加美观 【完成端口】连接建立正常,初始发送数据也正常。但服务端接接收数据发生了问题? Enable3dControls( )问题 想学做MFC程序 如何选定树形控件的某一项? VC++ 中怎么 防止按钮被二次受信??? 极度郁闷???????????? 编辑框的滑块怎么拉动???(VC) ~~~~ 如何加入图标?~~~~~ 如何在VC中调用bios的时间? WSAETIMEDOUT 后如何解决? 单文档问题
http://bbs.pediy.com/showthread.php?p=61151
不过不知道在哪里修改一下信息像是只有调试时才出现的吧:
debug 进入 psdk 的wininet.dll中的FTPOpenFile经过很多个小时的跟
踪以后发现
以下三个函数入口:
761BB256 and ebx,80000000h
761BB25C mov eax,761DE8F0h
………………………………………………………
761BB261 jne 761BB268
761BB263 mov eax,761DE8E8h
761BB276 call 761BC0A2 format("RETR %s");
761BC213 push edi
761BC214 mov edi,dword ptr [ebp+70h]
761BC217 push eax
761BC218 push 761DE9ECh
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
761BC21D push edi
761BC21E push 0
761BC225 call 761BC1C3
format("TYPE %s");761BC7F9 test eax,eax //没有用
761BC7FB jne 761BC89D //没有用
761BC801 push dword ptr [ebp+78h]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ lpstrFileAtServer
761BC804 push 761DE93Ch
761BC809 push dword ptr [ebp+58h]
761BC80C call 761BC003
format("SIZE %s",lpstrFileAtServer)
修改DLL成 SIZE %s->REST %s
然后就是修改参数调用:
761BC7F9 85 C0 0F 85 9C 00 00 ?.?..
761BC800 00 FF 75 78761BC7F9 test eax,eax //没有用
761BC7FB jne 761BC89D //没有用
761BC801 push dword ptr [ebp+78h]的11个字节想办法修改成:、、?怎么改761BC7F9 90 8B C5 05 50 01 00 ?..P..
761BC800 00 50 90 90 nop;
mov eax, ebp ;
add eax, 0x150 ;
push eax ;
nop;
nop;
希望高手能指导的详细些,谢了!
能提供下断点续传的例子吗!
http://www.diybl.com/course/3_program/c++/cppsl/200815/95891.html看不出来这是什么东西呀
要解决什么问题也不清楚
源程序是什么?