【转载】刷百度空间访问量、极速提升访问数、有图、有软件、下载
2010-06-10 23:49
295 查看
http://hi.baidu.com/zklhp/blog/item/7b7d4f12a2f40a5df919b863.html
超级无聊~
;********************************
;作者:zklhp
;Email:zklhp@sina.com
;QQ:493165744
;时间:2010.5.16
;版权
所有 转载请保持完整
;********************************
先上图 你要说我是P的我也没办法、、、、、、
2010年5月16日凌晨截图。。
http://hiphotos.baidu.com/zklhp/pic/item/af14a41b2bc26aefad6e751f.jpg
说下怎么弄的 其实就是硬刷的 我提供种简单方法
用我写的一个软件 HTTPProxySend v0.4
可以去这些地方下
http://www.x64asm.com/asmbbs/thread-399-1-6.html
http://bbs.bccn.net/thread-295089-1-1.html
如果你想不注册
直接下也可以去这里 不过不保证稳定
http://stu.ouc.edu.cn/up_files/HTTPProxySend v04.rar
本程序开源 提供的是可编译源码 (你懂得。。。。。)
代码最后会帖出来 怕你们说我不放代码。。。
这里我们可以直接用软件的自动发送功能 操作流程如下
1 下载软件
2 解开压缩包 如图。。。
http://hiphotos.baidu.com/zklhp/pic/item/a1faf4021b6cd5354afb516c.jpg
3 修改AUTO.txt为如下内容
;******************我是分割线**********************
10
500
221.130.162.249:80
221.130.162.247:80
221.130.13.38:80
221.214.27.252:808
221.130.162.248:80
221.130.162.244:80
211.138.124.232:8080
121.10.120.214:80
211.102.90.59:80
211.138.124.198:8080
218.201.21.176:80
220.168.44.22:808
218.201.21.158:80
221.130.7.226:80
155.230.105.156:80
218.201.21.178:80
112.65.135.54:8080
60.190.24.138:80
211.138.124.232:80
221.130.162.243:80
221.214.27.253:808
GET http://hi.baidu.com/zklhp
HTTP/1.1
Host: hi.baidu.com
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.2.4)
Gecko/20100503 Firefox/3.6.4
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-cn,zh;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: GB2312,utf-8;q=0.7,*;q=0.7
Keep-Alive: 9000
Proxy-Connection: keep-alive
;****************** 我是分割线**********************
复制分割线内的全部内容到AUTO.txt 包括最后的空行 当然 最保险的办法是 最后再打几个回车 一定要有回车。。。。 原因我就不解释了
当然解释了你也不一定懂。。。。
顺便说一句 里面的
221.130.162.249:80
221.130.162.247:80
221.130.13.38:80
…………
是代理服务
器的地址和端口 如果你能找到其他的代理可以放进去
但 一定保证格式一致 否则后果自负。。。。。。。。。。。。
怕你不会搞 又说我程序不好用 我给你个例子下载罢
http://stu.ouc.edu.cn/up_files/AUTO.txt
还是不保证一定能下
嘻嘻 你是不是急着下一步了呢 忘说了 你得把
http://hi.baidu.com/zklhp
改成你的 当然 你想刷我的我也没意见
4 执行 自动运行.bat
5 看效果罢
声明 本文章纯属娱乐 本故事纯属虚构 请勿对号入座 不提供任何技术支持 不回答任何问题 不承担任何责任
因本文章及本程序所造成的一切后果与本人无关
另 此方法得到的访问量纯粹是刷出来的 如果你和我一样无聊就用这个罢。。。。。
zklhp
2010.5.16
看清楚啊 我帖代码了
这里帖个最新的版 和里面提供的不一样 功能上强大一点点。。。。。。。。 还未公开版的
;MASMPlus 代码模板 - 以对话框做为主窗口的程序
;*****************************************************************************************************************
;作者:zklhp
;Email:zklhp@sina.com
;QQ:493165744
;时间:2009.12.31
;版权所有 转载请保持完整
;*****************************************************************************************************************
.386
.Model Flat, StdCall
Option Casemap :None
Include windows.inc
Include user32.inc
Include kernel32.inc
Include gdi32.inc
include shell32.inc
include USkin.inc
Include WSock32.inc
include shlwapi.inc
;include libc.inc
includelib gdi32.lib
IncludeLib user32.lib
IncludeLib kernel32.lib
includelib shell32.lib
includelib USkin.lib
Includelib WSock32.Lib
includelib shlwapi.lib
includelib msvcrt.lib
include macro.asm
include _CmdLine.asm
;懒得自己写代码了 用了C的运行时库~
atoi proto C lpszString_IN:DWORD
strchr proto C lpszString_IN:DWORD,char_IN:DWORD
fgets proto C lpBuf_OUT:DWORD,size_IN:DWORD,hFile_IN:DWORD
sscanf proto C hFile_IN:DWORD,lpszFormat_IN:DWORD,var_OUT:VARARG
fopen PROTO C lpszFileName_IN:DWORD,lpszMode_IN:DWORD
fclose PROTO C hFile_IN:DWORD
fread proto C lpBuf_OUT:DWORD,size_IN:DWORD,count_IN:DWORD,hFile_IN:DWORD
ftell proto C hFile_IN:DWORD
_filelength proto C hFile_IN:DWORD
include rsrc.inc
_stPROXY struct
_dwIP dd ?
_dwPort dd ?
_stPROXY ends
DlgProc PROTO :DWORD,:DWORD,:DWORD,:DWORD
ID_TIMER equ 20
ID_WINS equ 10
ID_WINH equ 11
F_STOP equ 0FFFFFFFH
MAX_PROXY equ 1024
.data
szAbout db 'HTTP代理发送器 v0.5',0dh,0ah,'By zklhp Email:zklhp@sina.com QQ:493165744',0dh,0ah,'版权所有 转载请保持完整',0
x FLOAT 210.0f
y FLOAT 1.0f
szSend db 'GET http://www2.ouc.edu.cn/oceanyouth/shsj/showart.asp?id=162 HTTP/1.1',0dh,0ah
db 'Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, */*',0dh,0ah
db 'Accept-Language: zh-cn',0dh,0ah
db 'Accept-Encoding: gzip, deflate',0dh,0ah
db 'User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)',0dh,0ah
db 'Host: www2.ouc.edu.cn',0dh,0ah,0dh,0ah,0
.data?
IsAuto dd ? ;若加参数 auto 则为自动模式
hInstance dd ?
hWin dd ?
stProxy _stPROXY MAX_PROXY dup(<>)
stWSA WSADATA <?>
dwStop dd ?
dwTimeOut dd ?
szSendBuf db 40960 dup(?)
dwThreadID dd ?
.CODE
_SendProc proc uses ebx edi esi _Param:DWORD
local @szBuf[2048]:BYTE
local @stSin:sockaddr_in
local @hSocket:DWORD
assume esi:ptr _stPROXY
mov @stSin.sin_family,AF_INET
invoke Sleep,_Param ;这样把各个线程的发送错开 防止同一时间有很多链接
;每次循环检测停止标志位 若为F_STOP则线程停止
.while dwStop != F_STOP
lea esi,stProxy
.while [esi]._dwIP
@Begin:
mov eax,[esi]._dwPort
mov @stSin.sin_port,ax
mov eax,[esi]._dwIP
mov @stSin.sin_addr,eax
invoke socket,AF_INET,SOCK_STREAM,0
.if eax == INVALID_SOCKET
invoke WSAGetLastError
invoke wsprintf,addr @szBuf,CTXT('DeBug:socket fail WSAGetLastError:%x',0dh,0ah),eax
invoke SendDlgItemMessage,hWin,IDC_EDT3,EM_REPLACESEL,0,addr @szBuf
jmp @Next
.endif
mov @hSocket,eax
invoke connect,@hSocket,addr @stSin,sizeof @stSin
.if eax == SOCKET_ERROR
invoke WSAGetLastError
mov edi,eax ;保存错误码
invoke inet_ntoa,[esi]._dwIP
invoke wsprintf,addr @szBuf,CTXT('DeBug:connect %s fail WSAGetLastError:%x',0dh,0ah),eax,edi
invoke SendDlgItemMessage,hWin,IDC_EDT3,EM_REPLACESEL,0,addr @szBuf
invoke closesocket,@hSocket
jmp @Next
.endif
invoke lstrlen,offset szSendBuf
invoke send,@hSocket,offset szSendBuf,eax,0
invoke closesocket,@hSocket
invoke Sleep,dwTimeOut
;若出错 一般是代理服务器被关了 这样其实是连接超时 所以再睡没意义 应减少无效链接占用的时间
@Next:
add esi,sizeof _stPROXY
.endw
.endw
assume esi:NOTHING
@ExitThread:
xor eax,eax
ret
_SendProc endp
START:
invoke USkinInit,NULL,NULL,CTXT("VistaPerfection.msstyles") ;初使化USkin
invoke USkinApplyColorTheme,x,y
;判断模式
invoke _argc
.if eax == 2
invoke _argv,1,offset szSendBuf,sizeof szSendBuf
invoke lstrcmpi,offset szSendBuf,CTXT('auto') ;自动模式
.if eax != 0 ;不为0 正常
mov IsAuto,FALSE
.else ;为0 自动模式
mov IsAuto,TRUE
.endif
.endif
invoke GetModuleHandle,NULL
mov hInstance,eax
invoke DialogBoxParam,hInstance,IDD_DLG1,0,offset DlgProc,0
invoke USkinExit ;退出USkin
invoke ExitProcess,0
DlgProc proc hWnd,uMsg,wParam,lParam
local @hFile:DWORD
local @szBuf[256]:BYTE
.if uMsg==WM_INITDIALOG
invoke LoadIcon,hInstance,ICON_168
invoke SendMessage,hWnd,WM_SETICON,ICON_SMALL,eax
;限制文字个数
invoke SendDlgItemMessage,hWnd,IDC_EDT1,EM_LIMITTEXT,5,0
invoke SendDlgItemMessage,hWnd,IDC_EDT6,EM_LIMITTEXT,sizeof szSendBuf,0
;注册热键
invoke RegisterHotKey,hWnd,ID_WINS,MOD_WIN,VK_S
invoke RegisterHotKey,hWnd,ID_WINH,MOD_WIN,VK_H
push hWnd
pop hWin
invoke SendMessage,hWnd,WM_HOTKEY,ID_WINH,0
;输出信息
invoke SendDlgItemMessage,hWnd,IDC_EDT3,EM_REPLACESEL,0,CTXT('欢迎使用HTTP代理发送程序 请先阅读说明文件 注意程序的要求 否则出错~',0dh,0ah)
invoke SendDlgItemMessage,hWnd,IDC_EDT6,EM_REPLACESEL,0,offset szSend
invoke WSAStartup,0202h,offset stWSA
;初始化地址列表
assume esi:ptr _stPROXY
lea esi,stProxy
mov [esi]._dwIP,0
assume esi:NOTHING
.if IsAuto == TRUE
invoke SetTimer,hWnd,ID_TIMER,1000d,0
.endif
.elseif uMsg==WM_COMMAND
mov eax,wParam
and eax,0ffffh
.if eax==IDOK
invoke SendMessage,hWnd,WM_COMMAND,IDC_BTN1,0
.elseif eax==IDCANCEL
invoke SendMessage,hWnd,WM_CLOSE,0,0 ;按ESC退出
.elseif eax==IDC_CHK1
invoke IsDlgButtonChecked,hWnd,IDC_CHK1 ;看是否直接发送
.if eax == BST_CHECKED
;直接发送
invoke GetDlgItem,hWnd,IDC_EDT4
invoke EnableWindow,eax,TRUE
invoke GetDlgItem,hWnd,IDC_EDT7
invoke EnableWindow,eax,TRUE
assume esi:ptr _stPROXY
lea esi,stProxy
invoke GetDlgItemText,hWnd,IDC_EDT4,addr @szBuf,sizeof @szBuf
.if eax
invoke inet_addr,addr @szBuf
mov [esi]._dwIP,eax
invoke GetDlgItemInt,hWnd,IDC_EDT7,FALSE,FALSE
invoke htons,eax
mov [esi]._dwPort,eax
add esi,sizeof _stPROXY
mov [esi]._dwIP,0
.else
mov [esi]._dwIP,0
.endif
assume esi:NOTHING
.else
;使用代理列表
invoke GetDlgItem,hWnd,IDC_EDT4
invoke EnableWindow,eax,FALSE
invoke GetDlgItem,hWnd,IDC_EDT7
invoke EnableWindow,eax,FALSE
invoke SetDlgItemText,hWnd,IDC_EDT5,0 ;清空
;用了C函数
invoke fopen,CTXT('PROXY.txt'),CTXT('r')
.if eax == INVALID_HANDLE_VALUE
invoke SendDlgItemMessage,hWnd,IDC_EDT3,EM_REPLACESEL,0,CTXT('fail to open PROXY.txt',0dh,0ah)
jmp @F
.endif
mov @hFile,eax
assume esi:ptr _stPROXY
lea esi,stProxy
.while TRUE
invoke fgets,addr @szBuf,sizeof @szBuf,@hFile
invoke lstrlen,eax
mov edi,eax
.break .if edi < 2 ;若按照要求的格式最后有一个空行 则最后一次此处得到的长度为1 是换行
dec edi
lea ecx,@szBuf
add ecx,edi
mov BYTE ptr [ecx],0 ;除去换行
invoke SendDlgItemMessage,hWin,IDC_EDT5,EM_REPLACESEL,0,addr @szBuf
invoke SendDlgItemMessage,hWin,IDC_EDT5,EM_REPLACESEL,0,CTXT(0dh,0ah)
;找 : 之前为IP 之后为端口
xor eax,eax
mov al,':'
invoke strchr,addr @szBuf,eax
mov edi,eax
mov BYTE ptr [edi],0
invoke inet_addr,addr @szBuf
mov [esi]._dwIP,eax
inc edi
invoke atoi,edi
invoke htons,eax
mov [esi]._dwPort,eax
add esi,sizeof _stPROXY
.endw
mov [esi]._dwIP,0
@@:
invoke fclose,@hFile
assume esi:NOTHING
.endif
.elseif eax==IDC_BTN1
;发送
invoke GetDlgItemText,hWnd,IDC_EDT6,offset szSendBuf,sizeof szSendBuf
@@:
invoke GetDlgItemInt,hWnd,IDC_EDT2,FALSE,FALSE
.if eax
mov dwTimeOut,eax
invoke GetDlgItemInt,hWnd,IDC_EDT1,FALSE,FALSE
.if eax
mov dwStop,0
mov edi,eax
xor ebx,ebx
.while ebx < edi
mov eax,ebx
imul dwTimeOut
;这样把Sleep()放在线程函数开头比较好 避免界面没响应的现象
invoke CreateThread,0,0,offset _SendProc,eax,0,offset dwThreadID ;启动线程
invoke CloseHandle,eax
inc ebx
.endw
.endif
.endif
@@:
assume esi:NOTHING
.elseif eax==IDC_BTN2 ;取消
mov dwStop,F_STOP ;置标志位即可 线程会自动退出
.elseif eax==IDC_BTN3
invoke MessageBox,hWnd,offset szAbout,CTXT('关于'),0
.elseif eax==IDC_BTN4
invoke SendMessage,hWnd,WM_CLOSE,0,0
.endif
.elseif uMsg==WM_TIMER
;只执行一次 设置各参数 然后发送 不过没有一个办法让他停 这个就是方便新手 当然 也可以省点事啦~
;一定注意读取的格式
invoke fopen,CTXT('AUTO.txt'),CTXT('r')
.if eax == INVALID_HANDLE_VALUE
invoke SendDlgItemMessage,hWnd,IDC_EDT3,EM_REPLACESEL,0,CTXT('fail to open AUTO.txt',0dh,0ah)
invoke SendMessage,hWnd,WM_CLOSE,0,0 ;直接退出
.endif
mov @hFile,eax
;第一行 线程数
invoke fgets,addr @szBuf,sizeof @szBuf,@hFile
invoke SetDlgItemText,hWnd,IDC_EDT1,addr @szBuf
;第二行 发送间隔
invoke fgets,addr @szBuf,sizeof @szBuf,@hFile
invoke SetDlgItemText,hWnd,IDC_EDT2,addr @szBuf
;第三行开始 发送IP 这里不区分直接还是用代理 放什么就用什么发送
invoke SetDlgItemText,hWnd,IDC_EDT5,0 ;清空
assume esi:ptr _stPROXY
lea esi,stProxy
.while TRUE
invoke fgets,addr @szBuf,sizeof @szBuf,@hFile
invoke lstrlen,eax
mov edi,eax
.break .if edi < 2 ;若按照要求的格式最后有一个空行 则最后一次此处得到的长度为1 是换行
dec edi
lea ecx,@szBuf
add ecx,edi
mov BYTE ptr [ecx],0 ;除去换行
invoke SendDlgItemMessage,hWin,IDC_EDT5,EM_REPLACESEL,0,addr @szBuf
invoke SendDlgItemMessage,hWin,IDC_EDT5,EM_REPLACESEL,0,CTXT(0dh,0ah)
;找 : 之前为IP 之后为端口
xor eax,eax
mov al,':'
invoke strchr,addr @szBuf,eax
mov edi,eax
mov BYTE ptr [edi],0
invoke inet_addr,addr @szBuf
mov [esi]._dwIP,eax
inc edi
invoke atoi,edi
invoke htons,eax
mov [esi]._dwPort,eax
add esi,sizeof _stPROXY
.endw
mov [esi]._dwIP,0
assume esi:NOTHING
;最后 内容 缓冲区足够大了
invoke SetDlgItemText,hWnd,IDC_EDT6,0 ;清空
.while TRUE
invoke fgets,offset szSendBuf,sizeof szSendBuf,@hFile
invoke lstrlen,eax
mov edi,eax
.break .if edi < 2 ;若按照要求的格式最后有一个空行 则最后一次此处得到的长度为1 是换行
dec edi
lea ecx,szSendBuf
add ecx,edi
mov BYTE ptr [ecx],0
invoke SendDlgItemMessage,hWin,IDC_EDT6,EM_REPLACESEL,0,offset szSendBuf
invoke SendDlgItemMessage,hWin,IDC_EDT6,EM_REPLACESEL,0,CTXT(0dh,0ah)
.endw
invoke SendDlgItemMessage,hWin,IDC_EDT6,EM_REPLACESEL,0,CTXT(0dh,0ah)
invoke SendDlgItemMessage,hWin,IDC_EDT6,EM_REPLACESEL,0,CTXT(0dh,0ah)
invoke SendMessage,hWnd,WM_COMMAND,IDC_BTN1,0 ;相当于点发送
invoke KillTimer,hWnd,ID_TIMER
.elseif uMsg==WM_HOTKEY
.if wParam==ID_WINS
invoke ShowWindow,hWnd,SW_SHOW
.elseif wParam==ID_WINH
invoke AnimateWindow,hWnd,1000,AW_BLEND or AW_HIDE ;渐变退出
invoke ShowWindow,hWnd,SW_HIDE
.endif
.elseif uMsg==WM_CLOSE
invoke AnimateWindow,hWnd,1000,AW_BLEND or AW_HIDE ;渐变退出
;取消热键
invoke UnregisterHotKey,hWnd,ID_WINS
invoke UnregisterHotKey,hWnd,ID_WINH
invoke EndDialog,hWnd,wParam
invoke WSACleanup
.else
mov eax,FALSE
ret
.endif
mov eax,TRUE
ret
DlgProc endp
END START
代码改动相当小。。。 差不多的
想扔板砖现在可以开始了。。。。。。。。。。。。
超级无聊~
;********************************
;作者:zklhp
;Email:zklhp@sina.com
;QQ:493165744
;时间:2010.5.16
;版权
所有 转载请保持完整
;********************************
先上图 你要说我是P的我也没办法、、、、、、
2010年5月16日凌晨截图。。
http://hiphotos.baidu.com/zklhp/pic/item/af14a41b2bc26aefad6e751f.jpg
说下怎么弄的 其实就是硬刷的 我提供种简单方法
用我写的一个软件 HTTPProxySend v0.4
可以去这些地方下
http://www.x64asm.com/asmbbs/thread-399-1-6.html
http://bbs.bccn.net/thread-295089-1-1.html
如果你想不注册
直接下也可以去这里 不过不保证稳定
http://stu.ouc.edu.cn/up_files/HTTPProxySend v04.rar
本程序开源 提供的是可编译源码 (你懂得。。。。。)
代码最后会帖出来 怕你们说我不放代码。。。
这里我们可以直接用软件的自动发送功能 操作流程如下
1 下载软件
2 解开压缩包 如图。。。
http://hiphotos.baidu.com/zklhp/pic/item/a1faf4021b6cd5354afb516c.jpg
3 修改AUTO.txt为如下内容
;******************我是分割线**********************
10
500
221.130.162.249:80
221.130.162.247:80
221.130.13.38:80
221.214.27.252:808
221.130.162.248:80
221.130.162.244:80
211.138.124.232:8080
121.10.120.214:80
211.102.90.59:80
211.138.124.198:8080
218.201.21.176:80
220.168.44.22:808
218.201.21.158:80
221.130.7.226:80
155.230.105.156:80
218.201.21.178:80
112.65.135.54:8080
60.190.24.138:80
211.138.124.232:80
221.130.162.243:80
221.214.27.253:808
GET http://hi.baidu.com/zklhp
HTTP/1.1
Host: hi.baidu.com
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.2.4)
Gecko/20100503 Firefox/3.6.4
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-cn,zh;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: GB2312,utf-8;q=0.7,*;q=0.7
Keep-Alive: 9000
Proxy-Connection: keep-alive
;****************** 我是分割线**********************
复制分割线内的全部内容到AUTO.txt 包括最后的空行 当然 最保险的办法是 最后再打几个回车 一定要有回车。。。。 原因我就不解释了
当然解释了你也不一定懂。。。。
顺便说一句 里面的
221.130.162.249:80
221.130.162.247:80
221.130.13.38:80
…………
是代理服务
器的地址和端口 如果你能找到其他的代理可以放进去
但 一定保证格式一致 否则后果自负。。。。。。。。。。。。
怕你不会搞 又说我程序不好用 我给你个例子下载罢
http://stu.ouc.edu.cn/up_files/AUTO.txt
还是不保证一定能下
嘻嘻 你是不是急着下一步了呢 忘说了 你得把
http://hi.baidu.com/zklhp
改成你的 当然 你想刷我的我也没意见
4 执行 自动运行.bat
5 看效果罢
声明 本文章纯属娱乐 本故事纯属虚构 请勿对号入座 不提供任何技术支持 不回答任何问题 不承担任何责任
因本文章及本程序所造成的一切后果与本人无关
另 此方法得到的访问量纯粹是刷出来的 如果你和我一样无聊就用这个罢。。。。。
zklhp
2010.5.16
看清楚啊 我帖代码了
这里帖个最新的版 和里面提供的不一样 功能上强大一点点。。。。。。。。 还未公开版的
;MASMPlus 代码模板 - 以对话框做为主窗口的程序
;*****************************************************************************************************************
;作者:zklhp
;Email:zklhp@sina.com
;QQ:493165744
;时间:2009.12.31
;版权所有 转载请保持完整
;*****************************************************************************************************************
.386
.Model Flat, StdCall
Option Casemap :None
Include windows.inc
Include user32.inc
Include kernel32.inc
Include gdi32.inc
include shell32.inc
include USkin.inc
Include WSock32.inc
include shlwapi.inc
;include libc.inc
includelib gdi32.lib
IncludeLib user32.lib
IncludeLib kernel32.lib
includelib shell32.lib
includelib USkin.lib
Includelib WSock32.Lib
includelib shlwapi.lib
includelib msvcrt.lib
include macro.asm
include _CmdLine.asm
;懒得自己写代码了 用了C的运行时库~
atoi proto C lpszString_IN:DWORD
strchr proto C lpszString_IN:DWORD,char_IN:DWORD
fgets proto C lpBuf_OUT:DWORD,size_IN:DWORD,hFile_IN:DWORD
sscanf proto C hFile_IN:DWORD,lpszFormat_IN:DWORD,var_OUT:VARARG
fopen PROTO C lpszFileName_IN:DWORD,lpszMode_IN:DWORD
fclose PROTO C hFile_IN:DWORD
fread proto C lpBuf_OUT:DWORD,size_IN:DWORD,count_IN:DWORD,hFile_IN:DWORD
ftell proto C hFile_IN:DWORD
_filelength proto C hFile_IN:DWORD
include rsrc.inc
_stPROXY struct
_dwIP dd ?
_dwPort dd ?
_stPROXY ends
DlgProc PROTO :DWORD,:DWORD,:DWORD,:DWORD
ID_TIMER equ 20
ID_WINS equ 10
ID_WINH equ 11
F_STOP equ 0FFFFFFFH
MAX_PROXY equ 1024
.data
szAbout db 'HTTP代理发送器 v0.5',0dh,0ah,'By zklhp Email:zklhp@sina.com QQ:493165744',0dh,0ah,'版权所有 转载请保持完整',0
x FLOAT 210.0f
y FLOAT 1.0f
szSend db 'GET http://www2.ouc.edu.cn/oceanyouth/shsj/showart.asp?id=162 HTTP/1.1',0dh,0ah
db 'Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, */*',0dh,0ah
db 'Accept-Language: zh-cn',0dh,0ah
db 'Accept-Encoding: gzip, deflate',0dh,0ah
db 'User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)',0dh,0ah
db 'Host: www2.ouc.edu.cn',0dh,0ah,0dh,0ah,0
.data?
IsAuto dd ? ;若加参数 auto 则为自动模式
hInstance dd ?
hWin dd ?
stProxy _stPROXY MAX_PROXY dup(<>)
stWSA WSADATA <?>
dwStop dd ?
dwTimeOut dd ?
szSendBuf db 40960 dup(?)
dwThreadID dd ?
.CODE
_SendProc proc uses ebx edi esi _Param:DWORD
local @szBuf[2048]:BYTE
local @stSin:sockaddr_in
local @hSocket:DWORD
assume esi:ptr _stPROXY
mov @stSin.sin_family,AF_INET
invoke Sleep,_Param ;这样把各个线程的发送错开 防止同一时间有很多链接
;每次循环检测停止标志位 若为F_STOP则线程停止
.while dwStop != F_STOP
lea esi,stProxy
.while [esi]._dwIP
@Begin:
mov eax,[esi]._dwPort
mov @stSin.sin_port,ax
mov eax,[esi]._dwIP
mov @stSin.sin_addr,eax
invoke socket,AF_INET,SOCK_STREAM,0
.if eax == INVALID_SOCKET
invoke WSAGetLastError
invoke wsprintf,addr @szBuf,CTXT('DeBug:socket fail WSAGetLastError:%x',0dh,0ah),eax
invoke SendDlgItemMessage,hWin,IDC_EDT3,EM_REPLACESEL,0,addr @szBuf
jmp @Next
.endif
mov @hSocket,eax
invoke connect,@hSocket,addr @stSin,sizeof @stSin
.if eax == SOCKET_ERROR
invoke WSAGetLastError
mov edi,eax ;保存错误码
invoke inet_ntoa,[esi]._dwIP
invoke wsprintf,addr @szBuf,CTXT('DeBug:connect %s fail WSAGetLastError:%x',0dh,0ah),eax,edi
invoke SendDlgItemMessage,hWin,IDC_EDT3,EM_REPLACESEL,0,addr @szBuf
invoke closesocket,@hSocket
jmp @Next
.endif
invoke lstrlen,offset szSendBuf
invoke send,@hSocket,offset szSendBuf,eax,0
invoke closesocket,@hSocket
invoke Sleep,dwTimeOut
;若出错 一般是代理服务器被关了 这样其实是连接超时 所以再睡没意义 应减少无效链接占用的时间
@Next:
add esi,sizeof _stPROXY
.endw
.endw
assume esi:NOTHING
@ExitThread:
xor eax,eax
ret
_SendProc endp
START:
invoke USkinInit,NULL,NULL,CTXT("VistaPerfection.msstyles") ;初使化USkin
invoke USkinApplyColorTheme,x,y
;判断模式
invoke _argc
.if eax == 2
invoke _argv,1,offset szSendBuf,sizeof szSendBuf
invoke lstrcmpi,offset szSendBuf,CTXT('auto') ;自动模式
.if eax != 0 ;不为0 正常
mov IsAuto,FALSE
.else ;为0 自动模式
mov IsAuto,TRUE
.endif
.endif
invoke GetModuleHandle,NULL
mov hInstance,eax
invoke DialogBoxParam,hInstance,IDD_DLG1,0,offset DlgProc,0
invoke USkinExit ;退出USkin
invoke ExitProcess,0
DlgProc proc hWnd,uMsg,wParam,lParam
local @hFile:DWORD
local @szBuf[256]:BYTE
.if uMsg==WM_INITDIALOG
invoke LoadIcon,hInstance,ICON_168
invoke SendMessage,hWnd,WM_SETICON,ICON_SMALL,eax
;限制文字个数
invoke SendDlgItemMessage,hWnd,IDC_EDT1,EM_LIMITTEXT,5,0
invoke SendDlgItemMessage,hWnd,IDC_EDT6,EM_LIMITTEXT,sizeof szSendBuf,0
;注册热键
invoke RegisterHotKey,hWnd,ID_WINS,MOD_WIN,VK_S
invoke RegisterHotKey,hWnd,ID_WINH,MOD_WIN,VK_H
push hWnd
pop hWin
invoke SendMessage,hWnd,WM_HOTKEY,ID_WINH,0
;输出信息
invoke SendDlgItemMessage,hWnd,IDC_EDT3,EM_REPLACESEL,0,CTXT('欢迎使用HTTP代理发送程序 请先阅读说明文件 注意程序的要求 否则出错~',0dh,0ah)
invoke SendDlgItemMessage,hWnd,IDC_EDT6,EM_REPLACESEL,0,offset szSend
invoke WSAStartup,0202h,offset stWSA
;初始化地址列表
assume esi:ptr _stPROXY
lea esi,stProxy
mov [esi]._dwIP,0
assume esi:NOTHING
.if IsAuto == TRUE
invoke SetTimer,hWnd,ID_TIMER,1000d,0
.endif
.elseif uMsg==WM_COMMAND
mov eax,wParam
and eax,0ffffh
.if eax==IDOK
invoke SendMessage,hWnd,WM_COMMAND,IDC_BTN1,0
.elseif eax==IDCANCEL
invoke SendMessage,hWnd,WM_CLOSE,0,0 ;按ESC退出
.elseif eax==IDC_CHK1
invoke IsDlgButtonChecked,hWnd,IDC_CHK1 ;看是否直接发送
.if eax == BST_CHECKED
;直接发送
invoke GetDlgItem,hWnd,IDC_EDT4
invoke EnableWindow,eax,TRUE
invoke GetDlgItem,hWnd,IDC_EDT7
invoke EnableWindow,eax,TRUE
assume esi:ptr _stPROXY
lea esi,stProxy
invoke GetDlgItemText,hWnd,IDC_EDT4,addr @szBuf,sizeof @szBuf
.if eax
invoke inet_addr,addr @szBuf
mov [esi]._dwIP,eax
invoke GetDlgItemInt,hWnd,IDC_EDT7,FALSE,FALSE
invoke htons,eax
mov [esi]._dwPort,eax
add esi,sizeof _stPROXY
mov [esi]._dwIP,0
.else
mov [esi]._dwIP,0
.endif
assume esi:NOTHING
.else
;使用代理列表
invoke GetDlgItem,hWnd,IDC_EDT4
invoke EnableWindow,eax,FALSE
invoke GetDlgItem,hWnd,IDC_EDT7
invoke EnableWindow,eax,FALSE
invoke SetDlgItemText,hWnd,IDC_EDT5,0 ;清空
;用了C函数
invoke fopen,CTXT('PROXY.txt'),CTXT('r')
.if eax == INVALID_HANDLE_VALUE
invoke SendDlgItemMessage,hWnd,IDC_EDT3,EM_REPLACESEL,0,CTXT('fail to open PROXY.txt',0dh,0ah)
jmp @F
.endif
mov @hFile,eax
assume esi:ptr _stPROXY
lea esi,stProxy
.while TRUE
invoke fgets,addr @szBuf,sizeof @szBuf,@hFile
invoke lstrlen,eax
mov edi,eax
.break .if edi < 2 ;若按照要求的格式最后有一个空行 则最后一次此处得到的长度为1 是换行
dec edi
lea ecx,@szBuf
add ecx,edi
mov BYTE ptr [ecx],0 ;除去换行
invoke SendDlgItemMessage,hWin,IDC_EDT5,EM_REPLACESEL,0,addr @szBuf
invoke SendDlgItemMessage,hWin,IDC_EDT5,EM_REPLACESEL,0,CTXT(0dh,0ah)
;找 : 之前为IP 之后为端口
xor eax,eax
mov al,':'
invoke strchr,addr @szBuf,eax
mov edi,eax
mov BYTE ptr [edi],0
invoke inet_addr,addr @szBuf
mov [esi]._dwIP,eax
inc edi
invoke atoi,edi
invoke htons,eax
mov [esi]._dwPort,eax
add esi,sizeof _stPROXY
.endw
mov [esi]._dwIP,0
@@:
invoke fclose,@hFile
assume esi:NOTHING
.endif
.elseif eax==IDC_BTN1
;发送
invoke GetDlgItemText,hWnd,IDC_EDT6,offset szSendBuf,sizeof szSendBuf
@@:
invoke GetDlgItemInt,hWnd,IDC_EDT2,FALSE,FALSE
.if eax
mov dwTimeOut,eax
invoke GetDlgItemInt,hWnd,IDC_EDT1,FALSE,FALSE
.if eax
mov dwStop,0
mov edi,eax
xor ebx,ebx
.while ebx < edi
mov eax,ebx
imul dwTimeOut
;这样把Sleep()放在线程函数开头比较好 避免界面没响应的现象
invoke CreateThread,0,0,offset _SendProc,eax,0,offset dwThreadID ;启动线程
invoke CloseHandle,eax
inc ebx
.endw
.endif
.endif
@@:
assume esi:NOTHING
.elseif eax==IDC_BTN2 ;取消
mov dwStop,F_STOP ;置标志位即可 线程会自动退出
.elseif eax==IDC_BTN3
invoke MessageBox,hWnd,offset szAbout,CTXT('关于'),0
.elseif eax==IDC_BTN4
invoke SendMessage,hWnd,WM_CLOSE,0,0
.endif
.elseif uMsg==WM_TIMER
;只执行一次 设置各参数 然后发送 不过没有一个办法让他停 这个就是方便新手 当然 也可以省点事啦~
;一定注意读取的格式
invoke fopen,CTXT('AUTO.txt'),CTXT('r')
.if eax == INVALID_HANDLE_VALUE
invoke SendDlgItemMessage,hWnd,IDC_EDT3,EM_REPLACESEL,0,CTXT('fail to open AUTO.txt',0dh,0ah)
invoke SendMessage,hWnd,WM_CLOSE,0,0 ;直接退出
.endif
mov @hFile,eax
;第一行 线程数
invoke fgets,addr @szBuf,sizeof @szBuf,@hFile
invoke SetDlgItemText,hWnd,IDC_EDT1,addr @szBuf
;第二行 发送间隔
invoke fgets,addr @szBuf,sizeof @szBuf,@hFile
invoke SetDlgItemText,hWnd,IDC_EDT2,addr @szBuf
;第三行开始 发送IP 这里不区分直接还是用代理 放什么就用什么发送
invoke SetDlgItemText,hWnd,IDC_EDT5,0 ;清空
assume esi:ptr _stPROXY
lea esi,stProxy
.while TRUE
invoke fgets,addr @szBuf,sizeof @szBuf,@hFile
invoke lstrlen,eax
mov edi,eax
.break .if edi < 2 ;若按照要求的格式最后有一个空行 则最后一次此处得到的长度为1 是换行
dec edi
lea ecx,@szBuf
add ecx,edi
mov BYTE ptr [ecx],0 ;除去换行
invoke SendDlgItemMessage,hWin,IDC_EDT5,EM_REPLACESEL,0,addr @szBuf
invoke SendDlgItemMessage,hWin,IDC_EDT5,EM_REPLACESEL,0,CTXT(0dh,0ah)
;找 : 之前为IP 之后为端口
xor eax,eax
mov al,':'
invoke strchr,addr @szBuf,eax
mov edi,eax
mov BYTE ptr [edi],0
invoke inet_addr,addr @szBuf
mov [esi]._dwIP,eax
inc edi
invoke atoi,edi
invoke htons,eax
mov [esi]._dwPort,eax
add esi,sizeof _stPROXY
.endw
mov [esi]._dwIP,0
assume esi:NOTHING
;最后 内容 缓冲区足够大了
invoke SetDlgItemText,hWnd,IDC_EDT6,0 ;清空
.while TRUE
invoke fgets,offset szSendBuf,sizeof szSendBuf,@hFile
invoke lstrlen,eax
mov edi,eax
.break .if edi < 2 ;若按照要求的格式最后有一个空行 则最后一次此处得到的长度为1 是换行
dec edi
lea ecx,szSendBuf
add ecx,edi
mov BYTE ptr [ecx],0
invoke SendDlgItemMessage,hWin,IDC_EDT6,EM_REPLACESEL,0,offset szSendBuf
invoke SendDlgItemMessage,hWin,IDC_EDT6,EM_REPLACESEL,0,CTXT(0dh,0ah)
.endw
invoke SendDlgItemMessage,hWin,IDC_EDT6,EM_REPLACESEL,0,CTXT(0dh,0ah)
invoke SendDlgItemMessage,hWin,IDC_EDT6,EM_REPLACESEL,0,CTXT(0dh,0ah)
invoke SendMessage,hWnd,WM_COMMAND,IDC_BTN1,0 ;相当于点发送
invoke KillTimer,hWnd,ID_TIMER
.elseif uMsg==WM_HOTKEY
.if wParam==ID_WINS
invoke ShowWindow,hWnd,SW_SHOW
.elseif wParam==ID_WINH
invoke AnimateWindow,hWnd,1000,AW_BLEND or AW_HIDE ;渐变退出
invoke ShowWindow,hWnd,SW_HIDE
.endif
.elseif uMsg==WM_CLOSE
invoke AnimateWindow,hWnd,1000,AW_BLEND or AW_HIDE ;渐变退出
;取消热键
invoke UnregisterHotKey,hWnd,ID_WINS
invoke UnregisterHotKey,hWnd,ID_WINH
invoke EndDialog,hWnd,wParam
invoke WSACleanup
.else
mov eax,FALSE
ret
.endif
mov eax,TRUE
ret
DlgProc endp
END START
代码改动相当小。。。 差不多的
想扔板砖现在可以开始了。。。。。。。。。。。。
相关文章推荐
- 绞车提升能力及钢丝绳验算软件 下载地址
- MongoDB数据访问[C#]附源码下载(查询增删改) 转载
- (转载)做开发的人员必需要用到的------编程常用软件下载及破解
- (转载)做开发的人员必需要用到的------编程常用软件下载及破解
- (转载)将有效的软件QA提升到下一个层次
- 对于用户访问量庞大的业务系统,在提升访问速度方面优化的措施
- 更改pip源至国内镜像,显著提升下载速度(转载)
- 【LuTy推荐】Samba for Android轻松无线访问手机存储,Android安卓软件下载
- 用Java设计下载软件(转载)
- Linux系统yum命令安装软件时保留(下载)rpm包 -- 转载
- 用IDM下载SAP软件,享受风一样的极速下载!
- 【转载】艾蒙三启64M优盘(M-DISK)制作FDD启动盘过程及相关软件下载
- 【转载】常用统计软件下载地址大全
- 好文转载—通过软件来提升你的效率
- 软媒魔方6.13正式版:软件管家开启多线程极速下载
- 〔转载〕eclipse等各种软件下载地址
- [转载]使用本地软件包作为安装源,摆脱对网络的依赖,降低重装系统后下载软件的次数
- 用IDM下载SAP软件,享受风一样的极速下载
- 转载-让PIP源使用国内镜像,提升下载速度和安装成功率
- ubuntu配置软件镜像源(提升下载速度)